[ferret-vis] 01/01: Upstream release 7.3
Alastair McKinstry
mckinstry at moszumanska.debian.org
Sat Dec 9 08:52:10 UTC 2017
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to tag upstream/7.3
in repository ferret-vis.
commit b335186648f7f0ee99517483803aa0f7cd2eda29
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Sat Dec 9 08:51:10 2017 +0000
Upstream release 7.3
---
Makefile | 5 -
README.md | 25 +
README_build_ferret | 4 +-
bench/README | 76 -
bench/README.md | 130 +
bench/RUN_TESTS.sh | 54 +-
bench/TEST_SCRIPTS | 4 +
bench/ansley_official.rhel6-64_err | 294 +-
bench/ansley_official.rhel6-64_log | 6924 +++++++++++---------
bench/bench_environment | 14 -
bench/bench_environment.csh | 10 +
bench/bench_environment.sh | 10 +
bench/bn_modulo_attribute.jnl | 11 -
bench/coads_clim.003 | Bin 132536 -> 0 bytes
.../123456789000101_100101_test_numeric.nc | Bin
.../39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc | Bin
bench/{ => data}/492C19881104.nc | Bin
bench/{ => data}/6dfile.nc | Bin
bench/{ => data}/EZ.DAT | 0
bench/{ => data}/TAO_SST_clim.cdf | Bin
...estCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc | Bin
bench/{ => data}/a1478.nc | Bin
bench/{ => data}/a_cartesian_bug1179.nc | Bin
bench/{ => data}/adouble.nc | Bin
bench/{ => data}/adouble_2D.nc | Bin
bench/{ => data}/aggT_5d1.nc | Bin
bench/{ => data}/aggT_5d2.nc | Bin
bench/{ => data}/anew_global.cdl | 0
bench/{ => data}/append_pack.nc | Bin
bench/{ => data}/axes_subspan.nc | Bin
bench/{ => data}/b1478.nc | Bin
bench/{ => data}/bad_taxis.nc | Bin
bench/{ => data}/badbounds.nc | Bin
bench/{ => data}/badbounds_even.nc | Bin
bench/{ => data}/badbounds_non_enclose.nc | Bin
bench/{ => data}/badbounds_uneven.nc | Bin
bench/{ => data}/bn_delimited_read_1.dat | 0
bench/{ => data}/bn_delimited_read_2.dat | 0
bench/{ => data}/bn_delimited_read_CO2.dat | 0
bench/{ => data}/bn_delimited_read_date_time.dat | 0
bench/{ => data}/bn_set_axis_regular.nc | Bin
bench/{ => data}/bn_strides.cdf | Bin
bench/{ => data}/bn_strides.cdl | 0
bench/{ => data}/bounds_noenclose.nc | Bin
bench/{ => data}/bounds_overlapping.nc | Bin
bench/{ => data}/bug1421_a.nc | Bin
bench/{ => data}/bug1421_b.nc | Bin
bench/{ => data}/bug1845.nc | Bin
bench/{ => data}/bug2445.nc | Bin
bench/{ => data}/bug_save_subset.nc | Bin
bench/{ => data}/byte.dat | Bin
bench/{ => data}/byteSwapped.dat | Bin
bench/{ => data}/cc_irreg.nc | Bin
bench/{ => data}/clim_airt_lev.cdf | Bin
bench/{ => data}/climatological_axes.cdf | Bin
bench/{ => data}/co_emac.nc | Bin
bench/{ => data}/coads_clim.001 | Bin
bench/{ => data}/coads_clim.002 | Bin
bench/data/coads_clim.003 | Bin 0 -> 132528 bytes
bench/{ => data}/coads_clim.003b | Bin
bench/{ => data}/coads_clim.1000 | Bin
bench/{ => data}/coads_clim.1001 | Bin
bench/{ => data}/coads_clim.999 | Bin
bench/{ => data}/coads_clim.des | 0
bench/{ => data}/coads_clim_4digit.des | 0
bench/{ => data}/coads_clim_bad_delta.des | 0
bench/{ => data}/coads_clim_irreg.des | 0
bench/{ => data}/coads_clim_missing_step1.des | 0
bench/{ => data}/coads_clim_missing_stepN.des | 0
bench/{ => data}/coads_clim_step_order.des | 0
bench/{ => data}/coads_climatology.cdf | Bin
bench/{ => data}/coads_slice.nc | Bin
bench/{ => data}/coads_uw.nc | Bin
bench/{ => data}/coads_vwnd.cdf | Bin
bench/{ => data}/conventions_history_in.nc | Bin
bench/{ => data}/dates_bug.dat | 0
bench/{ => data}/degrees.nc | Bin
bench/{ => data}/delim_datetime.csv | 0
bench/{ => data}/delim_prec.dat | 0
bench/{ => data}/delim_yyyy.csv | 0
bench/{ => data}/des.mc | 0
bench/{ => data}/des.my_descriptor | 0
bench/{ => data}/dims_not_coord.nc | Bin
bench/{ => data}/double.dat | Bin
bench/{ => data}/doubleSwapped.dat | Bin
bench/{ => data}/dsg.nc | Bin
bench/{ => data}/dstitle.nc | Bin
bench/{ => data}/duplicate.cdf | Bin
bench/{ => data}/duplicate.des | 0
bench/{ => data}/duplicate.nc | Bin
bench/{ => data}/edge.nc | Bin
bench/{ => data}/ens1.nc | Bin
bench/{ => data}/ens2.nc | Bin
bench/{ => data}/ens3.nc | Bin
bench/{ => data}/ens4.nc | Bin
bench/{ => data}/epic_formatted_file.nc | Bin
bench/{ => data}/err491_attval.cdf | Bin
bench/{ => data}/err542_poly_over_calendar.nc | Bin
bench/{ => data}/err600_upcase.nc | Bin
bench/{ => data}/err608_bug1556.nc | Bin
bench/{ => data}/err62_string_write.nc | Bin
bench/{ => data}/err64_packed_data.nc | Bin
bench/{ => data}/err64_small_latlon.nc | Bin
bench/{ => data}/err67_axis_order.nc | Bin
bench/{ => data}/err682_scale_no_offset.nc | Bin
bench/{ => data}/err684_packed_output.nc | Bin
bench/{ => data}/err693_save_packed.nc | Bin
bench/{ => data}/err700_coords.nc | Bin
bench/{ => data}/err700_vs_data.nc | Bin
bench/data/err721_ascii_size.dat | 4 +
bench/data/err721_dup_labels.nc | Bin 0 -> 4048 bytes
bench/{ => data}/err_calendar.nc | Bin
bench/{ => data}/euro_dates_bug.dat | 0
bench/{ => data}/fill_value_int.nc | Bin
bench/{ => data}/finale.dat | Bin
bench/{ => data}/fine_x_axis.nc | Bin
bench/{ => data}/float.dat | Bin
bench/{ => data}/floatSwapped.dat | Bin
bench/{ => data}/forecast24.nc | Bin
bench/{ => data}/forecast25.nc | Bin
bench/{ => data}/forecast26.nc | Bin
bench/{ => data}/forecast27.nc | Bin
bench/{ => data}/ft_cal_mixed.nc | Bin
bench/{ => data}/ft_cal_one.nc | Bin
bench/{ => data}/fxdata.dat | 0
bench/{ => data}/gappy_bounds.nc | Bin
bench/{ => data}/geo_borders.cdf | Bin
bench/{ => data}/global.nc | Bin
bench/{ => data}/grads_bug_file.nc | Bin
bench/{ => data}/gt160w011_nts30.des | 0
bench/{ => data}/gt4d011.cdf | Bin
bench/{ => data}/gtbc011.cdf | Bin
bench/{ => data}/gtsa056_1.cdf | Bin
bench/{ => data}/gtsa056_1_ef.nc | Bin
bench/{ => data}/gtsa056_2.cdf | Bin
bench/data/heat_00.nc | Bin 0 -> 44700 bytes
bench/data/heat_01.nc | Bin 0 -> 44706 bytes
bench/data/heat_0a.nc | Bin 0 -> 1568 bytes
bench/data/heat_0b.nc | Bin 0 -> 1596 bytes
bench/{ => data}/hourst.nc | Bin
bench/{ => data}/illeg_axname.nc | Bin
bench/{ => data}/int.dat | Bin
bench/{ => data}/intSwapped.dat | Bin
bench/{ => data}/latestOb.nc | Bin
bench/{ => data}/lev_rev_up.nc | Bin
bench/{ => data}/lev_v_bug.nc | Bin
bench/{ => data}/levitus_3d_subset.nc | Bin
bench/{ => data}/levitus_climatology.cdf | Bin
bench/{ => data}/longtitle1000.nc | Bin
bench/{ => data}/longvarnames.tsv | 0
bench/{ => data}/lowercaseTime.nc | Bin
bench/{ => data}/maize_1.nc | Bin
bench/{ => data}/maize_2.nc | Bin
bench/{ => data}/maize_3.nc | Bin
bench/{ => data}/mc_test.des | 0
bench/{ => data}/missing_scale_off.nc | Bin
bench/{ => data}/modax.nc | Bin
bench/{ => data}/modfalse.nc | Bin
bench/{ => data}/modulo_lon_time.nc | Bin
bench/{ => data}/mylon.nc | Bin
bench/{ => data}/nan_missing.nc | Bin
bench/{ => data}/navy_uw.nc | Bin
bench/{ => data}/nc5d.nc | Bin
bench/{ => data}/no_miss_att.nc | Bin
bench/{ => data}/nodim.nc | Bin
bench/{ => data}/noglobalhistory.nc | Bin
bench/{ => data}/non_COARDS.cdf | Bin
bench/{ => data}/non_COARDS.cdl | 0
bench/{ => data}/numstring.nc | Bin
bench/{ => data}/ocean_atlas_temp.cdf | Bin
bench/{ => data}/proleptic_gregorian.nc | Bin
bench/{ => data}/repeat_t_coord.nc | Bin
bench/{ => data}/reverse_axes.cdf | Bin
bench/{ => data}/reverse_z_bnds.nc | Bin
bench/{ => data}/run1.nc | Bin
bench/{ => data}/run2.nc | Bin
bench/{ => data}/run3.nc | Bin
bench/{ => data}/run4.nc | Bin
bench/{ => data}/scat2grid.nc | Bin
bench/{ => data}/short.dat | Bin
bench/{ => data}/shortSwapped.dat | Bin
bench/{ => data}/shorttemp.nc | Bin
bench/{ => data}/shorttest.dat | 0
bench/{ => data}/skip.dat | Bin
bench/{ => data}/ss_small.nc | Bin
bench/{ => data}/sstnok_short.nc | Bin
bench/{ => data}/sstok_short.nc | Bin
bench/{ => data}/strdimfile.nc | Bin
bench/{ => data}/stream10by5_i386-apple-darwin.unf | Bin
bench/{ => data}/stream10by5_ia64-linux.unf | Bin
bench/{ => data}/stream10by5_ia64-sles9.unf | Bin
bench/{ => data}/stream10by5_linux.unf | Bin
bench/{ => data}/stream10by5_x86_64-darwin.unf | Bin
bench/{ => data}/stream10by5_x86_64-linux.unf | Bin
bench/{ => data}/string5d.nc | Bin
bench/{ => data}/test0.nc | Bin
bench/{ => data}/test_axes.nc | Bin
bench/{ => data}/test_nan.nc | Bin
bench/{ => data}/test_save_dsg_in.nc | Bin
bench/{ => data}/time_axis_seconds.nc | Bin
bench/{ => data}/timemissing.nc | Bin
bench/{ => data}/timesec.nc | Bin
bench/{ => data}/tnok_short.des | 0
bench/{ => data}/tok_short.des | 0
bench/{ => data}/toolong.nc | Bin
bench/{ => data}/trajectory_trajectory_name.nc | Bin
bench/{ => data}/tripolar_subset.nc | Bin
bench/{ => data}/truemonth.nc | Bin
bench/{ => data}/twoType.dat | Bin
bench/{ => data}/twodtime.nc | Bin
bench/{ => data}/uncentered.nc | Bin
bench/{ => data}/vary_scale.des | 0
bench/{ => data}/varyscale_1.nc | Bin
bench/{ => data}/varyscale_2.nc | Bin
bench/{ => data}/weird_name1.cdf | Bin
bench/{ => data}/write_int_att.nc | Bin
bench/{ => data}/xsz.nc | Bin
bench/{ => data}/xz_nozattrib.nc | Bin
bench/{ => data}/z_wide_variation.nc | Bin
bench/ferret_startup | 2 +-
bench/{ => genjnls}/bench_add_9.jnl | 0
bench/{ => genjnls}/bench_avet.jnl | 0
bench/{ => genjnls}/bench_examples.jnl | 0
bench/{ => genjnls}/bench_pass_thru.jnl | 0
bench/{ => genjnls}/bench_storage.jnl | 0
bench/{ => genjnls}/bench_subtract.jnl | 0
bench/{ => genjnls}/bn_all.jnl | 16 +-
bench/{ => genjnls}/bn_all_ef.jnl | 0
bench/{ => genjnls}/bn_all_ef_shell.jnl | 0
bench/{ => genjnls}/bn_all_shell.jnl | 0
bench/{ => genjnls}/bn_batch_metafile.jnl | 0
bench/{ => genjnls}/bn_batch_metafile_shell.jnl | 0
bench/{ => genjnls}/bn_ef_external_functions.jnl | 0
bench/{ => genjnls}/bn_external_functions.jnl | 0
bench/{ => genjnls}/bn_fcn_calls.jnl | 0
bench/{ => genjnls}/bn_gif.jnl | 0
bench/{ => genjnls}/bn_gif_shell.jnl | 0
bench/{ => genjnls}/bn_hovmuller_overlays.jnl | 0
bench/{ => genjnls}/bn_labels_on_taxis.jnl | 0
bench/{ => genjnls}/bn_ps.jnl | 0
bench/{ => genjnls}/bn_ps_shell.jnl | 0
bench/{ => genjnls}/bn_reset.jnl | 1 +
bench/{ => genjnls}/bn_startupfile.jnl | 0
bench/{ => genjnls}/bn_startupfile_shell.jnl | 0
bench/{ => genjnls}/ddsg_socat3.jnl | 0
bench/metafile_masters_64bit_rh6/bat.plt_6 | 26 +-
bench/metafile_masters_64bit_rh6/bnplot-3.plt | 6 +-
bench/metafile_masters_64bit_rh6/bnplot-4.plt | 838 +--
.../multi_line_labels.plt | 67 +-
bench/run_all | 39 +-
bench/test_results/bn_axis_vs.gif | Bin 6645 -> 6645 bytes
bench/test_results/bn_contour_conset.gif | Bin 17361 -> 17361 bytes
bench/test_results/bn_hovmuller_overlays.gif | Bin 51920 -> 51920 bytes
bench/test_results/bn_labels_on_taxis.gif | Bin 35123 -> 35123 bytes
bench/test_results/bn_ribbon_vlog.gif | Bin 12468 -> 12468 bytes
bench/test_results/bn_subspan_mod_strides.gif | Bin 24061 -> 24061 bytes
bench/test_results/bn_vs_const_value.gif | Bin 10917 -> 10917 bytes
bench/test_results/bnplot_2.gif | Bin 56113 -> 56113 bytes
bench/test_results/bnplot_3.gif | Bin 27755 -> 27755 bytes
bench/test_results/err700_key.gif | Bin 32596 -> 32596 bytes
bench/test_results/ferret_run_tests_err | 233 +-
bench/test_results/ferret_run_tests_log | 3982 ++++++-----
bench/test_results/ferret_run_tests_ncdump | 146 +-
bench/test_results/forecast_actual.gif | Bin 15839 -> 15839 bytes
bench/test_results/forecast_diagview.gif | Bin 14385 -> 14385 bytes
bench/test_results/forecast_leadview.gif | Bin 12293 -> 12293 bytes
bench/test_results/gif_dashbug.gif | Bin 1625 -> 1625 bytes
bench/test_results/legend_1d_plots.gif | Bin 10422 -> 10422 bytes
bench/test_results/levels_one_level.gif | Bin 17452 -> 17452 bytes
bench/test_results/lon_lat_label_controls.gif | Bin 10898 -> 10898 bytes
bench/test_results/testbackground.gif | Bin 46738 -> 46738 bytes
bench/test_results/vs_lon_over.gif | Bin 11380 -> 11380 bytes
bench/{ => unused}/NORM_CDF.DAT | Bin
bench/{ => unused}/bench_add_9_visual.jnl | 0
bench/{ => unused}/bench_avet_visual.jnl | 0
bench/{ => unused}/bench_extrema.jnl | 0
bench/{ => unused}/bench_fft_visual.jnl | 0
bench/{ => unused}/bench_gridding_visual.jnl | 0
bench/{ => unused}/bench_pass_thru_visual.jnl | 0
bench/{ => unused}/bench_sorti_visual.jnl | 0
bench/{ => unused}/bench_sortj_visual.jnl | 0
bench/{ => unused}/bench_sortk_visual.jnl | 0
bench/{ => unused}/bench_sortl_visual.jnl | 0
bench/{ => unused}/bench_storage_visual.jnl | 0
bench/{ => unused}/bench_subtract_visual.jnl | 0
bench/{ => unused}/bn301_mem_mgmt.jnl | 0
bench/{ => unused}/bn_1d_gather.jnl | 0
bench/{ => unused}/bn_all_dods.jnl | 0
bench/{ => unused}/bn_appende.jnl | 0
bench/{ => unused}/bn_ax_attrib.jnl | 0
bench/{ => unused}/bn_dods_strides.jnl | 0
bench/{ => unused}/bn_encode_url.jnl | 0
bench/{ => unused}/bn_gather_4d_ave.jnl | 0
bench/{ => unused}/bn_gather_4d_din.jnl | 0
bench/{ => unused}/bn_gather_4d_var.jnl | 0
bench/{ => unused}/bn_keep_axnames.jnl | 0
bench/{ => unused}/bn_mn_fcns.jnl | 0
bench/{ => unused}/bn_nco_functions.jnl | 0
bench/{ => unused}/bn_packed_coordinates.jnl | 0
bench/{ => unused}/bn_ppl_errors.jnl | 0
bench/{ => unused}/bn_samplexz.jnl | 0
bench/{ => unused}/bn_sampleyz.jnl | 0
bench/{ => unused}/bn_sho_att_longnames.jnl | 0
bench/{ => unused}/bn_warn_subspan.jnl | 0
bench/{ => unused}/bn_zaxr_fcns.jnl | 0
bench/{ => unused}/err491_cdf_childax.jnl | 0
bench/{ => unused}/err491_days1900.jnl | 0
bench/{ => unused}/err491_gt_syntax.jnl | 0
bench/{ => unused}/err491_interp.jnl | 0
bench/{ => unused}/err491_mc.jnl | 0
bench/{ => unused}/err491_reshape_limits.jnl | 0
bench/{ => unused}/err491_shade_lev_roundoff.jnl | 0
bench/{ => unused}/err491_zaxreplace.jnl | 0
bench/{ => unused}/err500_logcontour.jnl | 0
bench/{ => unused}/err580_def_t_norange.jnl | 0
bench/{ => unused}/err684_cancel_att.jnl | 0
bench/{ => unused}/err693_check_edges.jnl | 0
bench/{ => unused}/err69_if_then_split.jnl | 0
bench/{ => unused}/err69_repeat_in_if.jnl | 0
bench/{ => unused}/objective.jnl | 0
bench/{ => unused}/outside_the_lines.jnl | 0
bench/{ => unused}/run_all.sh | 0
bench/{ => unused}/test | 0
bench/{ => v4jnls}/bn491_bug_fixes.jnl | 0
bench/{ => v4jnls}/bn_axis_limits.jnl | 0
bench/{ => v4jnls}/bn_axis_limits.sub1 | 0
bench/{ => v4jnls}/bn_axis_limits.sub2 | 0
bench/{ => v4jnls}/bn_cdf.jnl | 0
bench/{ => v4jnls}/bn_cdf.sub1 | 0
bench/{ => v4jnls}/bn_cdf.sub2 | 0
bench/{ => v4jnls}/bn_cdf.sub3 | 0
bench/{ => v4jnls}/bn_cdf.sub4 | 0
bench/{ => v4jnls}/bn_cdf_reversed.sub | 0
bench/{ => v4jnls}/bn_comma_delimited.jnl | 0
bench/{ => v4jnls}/bn_comma_delimited.sub | 0
bench/{ => v4jnls}/bn_compress.jnl | 0
bench/{ => v4jnls}/bn_compress.sub_v | 0
bench/{ => v4jnls}/bn_curv.jnl | 0
bench/{ => v4jnls}/bn_dollar.jnl | 0
bench/{ => v4jnls}/bn_dollar.sub | 0
bench/{ => v4jnls}/bn_dynamic_grids.jnl | 0
bench/{ => v4jnls}/bn_expressions.jnl | 0
bench/{ => v4jnls}/bn_ez.jnl | 0
bench/{ => v4jnls}/bn_ez_order.jnl | 0
bench/{ => v4jnls}/bn_gc_functions.jnl | 0
bench/{ => v4jnls}/bn_geometry.jnl | 0
bench/{ => v4jnls}/bn_geometry.sub | 0
bench/{ => v4jnls}/bn_grave.jnl | 0
bench/{ => v4jnls}/bn_if.jnl | 0
bench/{ => v4jnls}/bn_if.sub | 0
bench/{ => v4jnls}/bn_in_plane.jnl | 0
bench/{ => v4jnls}/bn_in_plane.sub | 0
bench/{ => v4jnls}/bn_interpolate.jnl | 0
bench/{ => v4jnls}/bn_interpolate.sub | 0
bench/{ => v4jnls}/bn_letd.jnl | 0
bench/{ => v4jnls}/bn_mc.jnl | 0
bench/{ => v4jnls}/bn_movie.jnl | 0
bench/{ => v4jnls}/bn_mp_zoo.jnl | 0
bench/{ => v4jnls}/bn_negative_t.jnl | 0
bench/{ => v4jnls}/bn_negative_t.sub | 0
bench/{ => v4jnls}/bn_output.jnl | 0
bench/{ => v4jnls}/bn_output.sub | 0
bench/{ => v4jnls}/bn_plot.jnl | 0
bench/{ => v4jnls}/bn_regrid.jnl | 0
bench/{ => v4jnls}/bn_regrid.sub | 0
bench/{ => v4jnls}/bn_regrid_transforms.jnl | 0
bench/{ => v4jnls}/bn_stream.jnl | 0
bench/{ => v4jnls}/bn_symbols.jnl | 0
bench/{ => v4jnls}/bn_syntax.jnl | 2 +-
bench/{ => v4jnls}/bn_user.jnl | 0
bench/{ => v4jnls}/bn_xact_regrid.jnl | 0
bench/{ => v4jnls}/bn_xact_regrid.sub | 0
bench/{ => v4jnls}/err490_cdf_childax.jnl | 0
bench/{ => v4jnls}/err490_command_parser.jnl | 0
bench/{ => v4jnls}/err490_fixed_var_size.jnl | 0
bench/{ => v4jnls}/err490_l_ave.jnl | 0
bench/{ => v4jnls}/err490_neg_time_show_grid.jnl | 0
bench/{ => v4jnls}/err490_repeat_first_echo.jnl | 0
bench/{ => v4jnls}/err490_tilde.jnl | 0
bench/{ => v4jnls}/err491_RESHAPE_ctx.jnl | 0
bench/{ => v4jnls}/err491_asn.jnl | 0
bench/{ => v4jnls}/err491_attrib_dp.jnl | 0
bench/{ => v4jnls}/err491_delete_child_var.jnl | 0
bench/{ => v4jnls}/err491_dp_time_write.jnl | 0
bench/{ => v4jnls}/err491_explicit_limits.jnl | 0
bench/{ => v4jnls}/err491_gmax.jnl | 0
bench/{ => v4jnls}/err491_grid_from_name.jnl | 0
bench/{ => v4jnls}/err491_let_d.jnl | 0
bench/{ => v4jnls}/err491_long_gif_name.jnl | 0
bench/{ => v4jnls}/err491_sh_var_templates.jnl | 0
bench/{ => v4jnls}/err491_single_char_replace.jnl | 0
bench/{ => v4jnls}/err491_spawn_quotes.jnl | 0
bench/{ => v4jnls}/err491_time_regridding.jnl | 0
bench/{ => v4jnls}/err491_unknown_function.jnl | 0
bench/{ => v5jnls}/bench_compress.jnl | 0
bench/{ => v5jnls}/bench_compress_by.jnl | 0
bench/{ => v5jnls}/bench_eof.jnl | 3 +-
bench/{ => v5jnls}/bench_fft.jnl | 0
bench/{ => v5jnls}/bench_gridding.jnl | 0
.../bench_internal_string_functions.jnl | 0
bench/{ => v5jnls}/bench_samplet_date.jnl | 0
bench/{ => v5jnls}/bench_samplexy.jnl | 0
bench/{ => v5jnls}/bench_sort.jnl | 0
bench/{ => v5jnls}/bench_sorti.jnl | 0
bench/{ => v5jnls}/bench_sortj.jnl | 0
bench/{ => v5jnls}/bench_sortk.jnl | 0
bench/{ => v5jnls}/bench_sortl.jnl | 0
bench/{ => v5jnls}/bn500_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn541_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn542_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn550_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn551_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn552_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn553_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn554_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn570_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn580_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn581_bug_fixes.jnl | 0
bench/{ => v5jnls}/bn_abstract_axis_names.jnl | 0
bench/{ => v5jnls}/bn_all_leap.jnl | 0
bench/{ => v5jnls}/bn_axcontrol.jnl | 0
bench/{ => v5jnls}/bn_axis_viewports.jnl | 0
bench/{ => v5jnls}/bn_bounds.jnl | 0
bench/{ => v5jnls}/bn_cache_hits.jnl | 0
bench/{ => v5jnls}/bn_cache_hits.sub | 0
bench/{ => v5jnls}/bn_cache_hits_gcfcn.sub | 0
bench/{ => v5jnls}/bn_calendar.jnl | 0
bench/{ => v5jnls}/bn_cancel_axes.jnl | 0
bench/{ => v5jnls}/bn_cancel_axes_1.sub | 0
bench/{ => v5jnls}/bn_cancel_axes_2.sub | 0
bench/{ => v5jnls}/bn_curv_mod.jnl | 0
bench/{ => v5jnls}/bn_dash_dot.jnl | 0
bench/{ => v5jnls}/bn_define_axes.jnl | 0
bench/{ => v5jnls}/bn_delimited_read.jnl | 8 +-
bench/{ => v5jnls}/bn_dots.jnl | 0
bench/{ => v5jnls}/bn_ef_bench_extrema.jnl | 0
bench/{ => v5jnls}/bn_ef_curv_to_rect.jnl | 0
bench/{ => v5jnls}/bn_ef_err541_date_delim.jnl | 0
bench/{ => v5jnls}/bn_ef_zaxr_fcns.jnl | 0
bench/{ => v5jnls}/bn_eof_4d.jnl | 3 +-
bench/{ => v5jnls}/bn_exit_cycle.jnl | 0
bench/{ => v5jnls}/bn_exit_script.jnl | 0
bench/{ => v5jnls}/bn_fill_irregular.jnl | 0
bench/{ => v5jnls}/bn_flowlines.jnl | 0
bench/{ => v5jnls}/bn_graticules.jnl | 0
bench/{ => v5jnls}/bn_illegal_axisname.jnl | 0
bench/{ => v5jnls}/bn_inf_levels.jnl | 0
.../bn_internal_external_functions.jnl | 0
bench/{ => v5jnls}/bn_labwid.jnl | 0
bench/{ => v5jnls}/bn_lev_symbols.jnl | 0
bench/{ => v5jnls}/bn_logaxes.jnl | 0
bench/{ => v5jnls}/bn_longvarnames.jnl | 0
bench/{ => v5jnls}/bn_many_polygons.jnl | 0
bench/{ => v5jnls}/bn_mc_vary_scale.jnl | 0
bench/{ => v5jnls}/bn_mode_logo_lab.jnl | 0
bench/{ => v5jnls}/bn_modstats.jnl | 0
bench/v5jnls/bn_modulo_attribute.jnl | 10 +
bench/{ => v5jnls}/bn_modulo_strides.jnl | 0
bench/{ => v5jnls}/bn_multi_line_labels.jnl | 0
bench/{ => v5jnls}/bn_non_COARDS_netCDF.jnl | 0
bench/{ => v5jnls}/bn_odd_variable_name.jnl | 0
bench/{ => v5jnls}/bn_pattern.jnl | 0
bench/{ => v5jnls}/bn_plot_nokey.jnl | 0
bench/{ => v5jnls}/bn_polygon.jnl | 0
bench/{ => v5jnls}/bn_redefine_taxis_mc.jnl | 0
bench/{ => v5jnls}/bn_regrid_to_user.jnl | 0
bench/{ => v5jnls}/bn_regulart.jnl | 0
bench/{ => v5jnls}/bn_repeat_range.jnl | 0
bench/{ => v5jnls}/bn_reset_attributes.jnl | 0
bench/{ => v5jnls}/bn_sample.jnl | 0
bench/{ => v5jnls}/bn_samplexy_sampleij.jnl | 0
bench/{ => v5jnls}/bn_scat2grid_gl.jnl | 0
bench/{ => v5jnls}/bn_scat2grid_nobs.jnl | 0
bench/{ => v5jnls}/bn_scat2grid_t.jnl | 0
bench/{ => v5jnls}/bn_scat2grid_test.jnl | 0
.../{ => v5jnls}/bn_scat2gridlaplace_tarasoff.jnl | 0
bench/{ => v5jnls}/bn_set_var_scale_off.jnl | 0
bench/{ => v5jnls}/bn_shade_keycont.jnl | 0
bench/{ => v5jnls}/bn_shakey.jnl | 0
bench/{ => v5jnls}/bn_strides_revs_perms.jnl | 0
bench/{ => v5jnls}/bn_strings.jnl | 0
bench/{ => v5jnls}/bn_subspan_modulo.jnl | 0
bench/{ => v5jnls}/bn_subspan_modulo.sub1 | 0
bench/{ => v5jnls}/bn_subspan_modulo.sub2 | 0
bench/{ => v5jnls}/bn_test_nan.jnl | 0
bench/{ => v5jnls}/bn_test_stream_big.jnl | 0
bench/{ => v5jnls}/bn_test_stream_little.jnl | 0
bench/{ => v5jnls}/bn_transpose.jnl | 0
bench/{ => v5jnls}/bn_unique_str2int.jnl | 0
bench/{ => v5jnls}/bn_vec_curv.jnl | 0
bench/{ => v5jnls}/bn_xml_output.jnl | 0
bench/{ => v5jnls}/err500_IF_THEN_ELSE_quote.jnl | 0
bench/{ => v5jnls}/err540_ax_ave.jnl | 0
bench/{ => v5jnls}/err540_axis_symbols.jnl | 0
bench/{ => v5jnls}/err540_axset.jnl | 0
bench/{ => v5jnls}/err540_cd_use_recdim.jnl | 0
bench/{ => v5jnls}/err540_data_type.jnl | 0
bench/{ => v5jnls}/err540_dods_bad_dataset.jnl | 0
bench/{ => v5jnls}/err540_dods_bad_strides.jnl | 0
bench/{ => v5jnls}/err540_ill_format.jnl | 0
bench/{ => v5jnls}/err540_modscat.jnl | 0
bench/{ => v5jnls}/err540_parse_repeat.jnl | 0
bench/{ => v5jnls}/err540_poly_overlay.jnl | 0
bench/{ => v5jnls}/err540_polymissing.jnl | 0
bench/{ => v5jnls}/err540_samplexy_missing.jnl | 0
bench/{ => v5jnls}/err540_strides_rev.jnl | 0
bench/{ => v5jnls}/err540_use.jnl | 0
bench/{ => v5jnls}/err540_vs_dash.jnl | 0
bench/{ => v5jnls}/err540_write_order.jnl | 0
bench/{ => v5jnls}/err541_cancel_axes.jnl | 0
bench/{ => v5jnls}/err541_date_delim.jnl | 0
bench/{ => v5jnls}/err541_fill_tics.jnl | 0
bench/{ => v5jnls}/err541_non_gregorian.jnl | 0
bench/{ => v5jnls}/err541_string4d.jnl | 0
bench/{ => v5jnls}/err542_poly_over_calendar.jnl | 0
.../{ => v5jnls}/err550_define_axis_expression.jnl | 0
bench/{ => v5jnls}/err550_dots_thickpens.jnl | 0
bench/{ => v5jnls}/err550_nc_seconds.jnl | 2 +-
.../{ => v5jnls}/err550_redefine_calendar_axis.jnl | 0
bench/{ => v5jnls}/err550_shade_limits.jnl | 0
bench/{ => v5jnls}/err550_view_axes_fill.jnl | 0
bench/{ => v5jnls}/err550_view_axes_position.jnl | 0
bench/{ => v5jnls}/err551_2dave.jnl | 0
bench/{ => v5jnls}/err551_axes_set.jnl | 0
bench/{ => v5jnls}/err551_colorkey.jnl | 0
bench/{ => v5jnls}/err551_fft_freqaxis.jnl | 0
bench/{ => v5jnls}/err551_invalid_calendar.jnl | 0
bench/{ => v5jnls}/err551_modulo_nc_regrid.jnl | 0
bench/{ => v5jnls}/err551_no_taxis_errmsg.jnl | 0
bench/{ => v5jnls}/err551_num_levels.jnl | 0
bench/{ => v5jnls}/err551_regrid_undef_grid.jnl | 0
bench/{ => v5jnls}/err551_repeat_sym.jnl | 0
bench/{ => v5jnls}/err551_return_message.jnl | 0
bench/{ => v5jnls}/err551_streamread_directory.jnl | 0
bench/{ => v5jnls}/err551_strings.jnl | 0
bench/{ => v5jnls}/err553_axis_too_long.jnl | 0
bench/{ => v5jnls}/err553_contour_fine_grid.jnl | 0
bench/{ => v5jnls}/err553_lev_c.jnl | 0
bench/{ => v5jnls}/err553_list_string_numeric.jnl | 0
bench/{ => v5jnls}/err553_list_width.jnl | 0
bench/{ => v5jnls}/err553_lon_ax_0_label.jnl | 0
bench/{ => v5jnls}/err553_long_string_var_name.jnl | 0
bench/{ => v5jnls}/err553_numeric_filename.jnl | 0
bench/{ => v5jnls}/err553_regionname_lengths.jnl | 0
bench/{ => v5jnls}/err553_set_axis_depth.jnl | 0
bench/{ => v5jnls}/err553_shakey_labels.jnl | 0
bench/{ => v5jnls}/err553_stride_def_grid.jnl | 0
bench/{ => v5jnls}/err553_stride_modulo.jnl | 0
bench/{ => v5jnls}/err553_symbol_lev.jnl | 0
bench/{ => v5jnls}/err553_symsize.jnl | 0
bench/{ => v5jnls}/err553_timeregion.jnl | 0
bench/{ => v5jnls}/err553_xaxis_nsmtc.jnl | 0
bench/{ => v5jnls}/err553_year_yr.jnl | 0
bench/{ => v5jnls}/err560_century.jnl | 0
bench/{ => v5jnls}/err560_leap_years.jnl | 0
bench/{ => v5jnls}/err560_mc_irreg_t.jnl | 0
bench/{ => v5jnls}/err560_regridding_gaps.jnl | 0
bench/{ => v5jnls}/err560_shade_levels.jnl | 0
bench/{ => v5jnls}/err560_shade_noleap.jnl | 0
bench/{ => v5jnls}/err570_cnnn_multiline.jnl | 0
bench/{ => v5jnls}/err570_coaching.jnl | 0
bench/{ => v5jnls}/err570_compressk_by.jnl | 0
bench/{ => v5jnls}/err570_digit_filename.jnl | 0
bench/{ => v5jnls}/err570_dods_url_label.jnl | 0
bench/{ => v5jnls}/err570_dollar_zero.jnl | 0
bench/{ => v5jnls}/err570_fine_grid_list.jnl | 0
bench/{ => v5jnls}/err570_hlimit_onepoint.jnl | 0
bench/{ => v5jnls}/err570_illegal_stride.jnl | 0
bench/{ => v5jnls}/err570_index111.jnl | 0
bench/{ => v5jnls}/err570_keylabels.jnl | 0
bench/{ => v5jnls}/err570_list_tab_coords.jnl | 0
bench/{ => v5jnls}/err570_long_label.jnl | 0
bench/{ => v5jnls}/err570_many_variables.jnl | 0
bench/{ => v5jnls}/err570_null_symbol.jnl | 0
bench/{ => v5jnls}/err570_parse_labelcommand.jnl | 0
bench/{ => v5jnls}/err570_poly_lonlat_axis.jnl | 0
bench/{ => v5jnls}/err570_poly_over_julian.jnl | 0
bench/{ => v5jnls}/err570_ppl_poly.jnl | 0
bench/{ => v5jnls}/err570_sh_dat_nan.jnl | 0
bench/{ => v5jnls}/err570_shakeylab.jnl | 0
bench/{ => v5jnls}/err570_singlecolor.jnl | 0
bench/{ => v5jnls}/err570_thick_colors.jnl | 0
bench/{ => v5jnls}/err570_time_range.jnl | 0
bench/{ => v5jnls}/err580_arg_case.jnl | 0
bench/{ => v5jnls}/err580_cal360_region.jnl | 0
bench/{ => v5jnls}/err580_cartesian_depth.jnl | 0
bench/{ => v5jnls}/err580_cdb.jnl | 0
bench/{ => v5jnls}/err580_cdc_timeaxis.jnl | 0
bench/{ => v5jnls}/err580_def_tax_norange.jnl | 0
bench/{ => v5jnls}/err580_def_view_axes.jnl | 0
bench/{ => v5jnls}/err580_irreg_bounds.jnl | 0
bench/{ => v5jnls}/err580_lev_del.jnl | 0
bench/{ => v5jnls}/err580_long_dsettitle.jnl | 0
bench/{ => v5jnls}/err580_long_title.jnl | 0
bench/{ => v5jnls}/err580_long_veckey.jnl | 0
bench/{ => v5jnls}/err580_show_axis_t.jnl | 0
bench/{ => v5jnls}/err580_strfloat_errors.jnl | 0
bench/{ => v5jnls}/err580_use_des.jnl | 0
bench/{ => v5jnls}/err581_cal_dates_output.jnl | 0
bench/{ => v5jnls}/err581_cancel_data.jnl | 0
bench/{ => v5jnls}/err581_command_cx.jnl | 0
bench/{ => v5jnls}/err581_contour_zero_lev.jnl | 0
bench/{ => v5jnls}/err581_define_1pt_bounds.jnl | 0
bench/{ => v5jnls}/err581_des_scale.jnl | 0
bench/{ => v5jnls}/err581_exp_spaces.jnl | 0
bench/{ => v5jnls}/err581_hlim_axislab.jnl | 0
bench/{ => v5jnls}/err581_if_conditional.jnl | 0
bench/{ => v5jnls}/err581_illegal_trans.jnl | 0
bench/{ => v5jnls}/err581_list_stray_chars.jnl | 0
bench/{ => v5jnls}/err581_missing_scale_off.jnl | 0
bench/{ => v5jnls}/err581_nlev.jnl | 0
bench/{ => v5jnls}/err581_noleap_mod.jnl | 0
bench/{ => v5jnls}/err581_poly_rev.jnl | 0
bench/{ => v5jnls}/err581_shakey_inf.jnl | 0
.../{ => v5jnls}/err581_sho_func_pattern_match.jnl | 0
bench/{ => v5jnls}/err581_since_units.jnl | 0
bench/{ => v5jnls}/err581_strrindex.jnl | 0
bench/{ => v5jnls}/err581_subspanx_fill_bug.jnl | 0
bench/{ => v5jnls}/err581_use_bounds.jnl | 0
bench/{ => v5jnls}/err581_vs_poly_axis.jnl | 0
bench/{ => v5jnls}/exit_script_1.jnl | 0
bench/{ => v5jnls}/exit_script_if.jnl | 0
bench/{ => v5jnls}/exit_script_if_loop.jnl | 0
bench/{ => v5jnls}/exit_script_inloop.jnl | 0
bench/{ => v5jnls}/exit_script_loop.jnl | 0
bench/{ => v5jnls}/exit_script_twolev.jnl | 0
bench/{ => v5jnls}/non_std_refmap.jnl | 0
bench/{ => v6jnls}/bn600_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn601_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn602_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn603_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn605_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn608_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn611_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn614_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn61_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn62_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn63_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn64_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn65_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn663_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn665_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn66_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn671_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn67_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn682_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn683_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn685_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn686_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn68_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn691_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn694_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn695_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn696_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn697_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn69_bug_fixes.jnl | 0
bench/{ => v6jnls}/bn_6d_lab_mode.jnl | 0
bench/{ => v6jnls}/bn_DQ.jnl | 20 +-
bench/{ => v6jnls}/bn_DQ.sub | 0
bench/{ => v6jnls}/bn_NaN_note.jnl | 0
bench/{ => v6jnls}/bn_aggregate_e.jnl | 0
bench/{ => v6jnls}/bn_aggregate_f.jnl | 0
bench/{ => v6jnls}/bn_aggregate_f.sub | 0
bench/{ => v6jnls}/bn_aggregate_t.jnl | 0
bench/{ => v6jnls}/bn_aggregate_tef.jnl | 0
bench/{ => v6jnls}/bn_annotate.jnl | 0
bench/{ => v6jnls}/bn_append_dsg.jnl | 2 +-
bench/{ => v6jnls}/bn_attributes.jnl | 2 +-
bench/{ => v6jnls}/bn_auto_tprec.jnl | 0
bench/{ => v6jnls}/bn_auxiliary.jnl | 0
bench/{ => v6jnls}/bn_auxiliary.sub | 0
bench/{ => v6jnls}/bn_axis_cf.jnl | 0
bench/{ => v6jnls}/bn_axis_dir_symbols.jnl | 0
bench/{ => v6jnls}/bn_axis_nonmonotonic.jnl | 0
bench/{ => v6jnls}/bn_axis_outtype.jnl | 0
bench/{ => v6jnls}/bn_axis_reversed_syms.jnl | 0
bench/{ => v6jnls}/bn_bad_axis_bounds.jnl | 0
bench/{ => v6jnls}/bn_bin_regrid.jnl | 0
bench/{ => v6jnls}/bn_bin_regrid.sub | 0
bench/{ => v6jnls}/bn_bounds_defineax.jnl | 0
bench/{ => v6jnls}/bn_can_var_noerr.jnl | 0
bench/{ => v6jnls}/bn_cancel_upcase_uservar.jnl | 0
bench/{ => v6jnls}/bn_cat_string.jnl | 0
bench/{ => v6jnls}/bn_cdf_errmsg.jnl | 0
bench/{ => v6jnls}/bn_cdf_keepax.jnl | 0
bench/{ => v6jnls}/bn_cdf_keepax.sub1 | 0
bench/{ => v6jnls}/bn_cdf_keepax.sub2 | 0
bench/{ => v6jnls}/bn_cdf_keepax.sub3 | 0
bench/{ => v6jnls}/bn_cdf_keepax.sub4 | 0
bench/{ => v6jnls}/bn_cdf_reversed_keepax.sub | 0
bench/{ => v6jnls}/bn_center_key_labels.jnl | 0
bench/{ => v6jnls}/bn_climatology_attr.jnl | 0
bench/{ => v6jnls}/bn_clock_syms.jnl | 0
bench/{ => v6jnls}/bn_conventions_history.jnl | 2 +-
bench/{ => v6jnls}/bn_convolve.jnl | 0
bench/{ => v6jnls}/bn_coordvars_atts.jnl | 0
bench/{ => v6jnls}/bn_dataset_qualifier.jnl | 0
bench/{ => v6jnls}/bn_date1900_array.jnl | 0
bench/{ => v6jnls}/bn_deg_min.jnl | 0
bench/{ => v6jnls}/bn_descr_4digit.jnl | 0
bench/{ => v6jnls}/bn_descriptor_mc.jnl | 0
bench/{ => v6jnls}/bn_direction_fcns_6d.jnl | 0
bench/{ => v6jnls}/bn_dp_readscale.jnl | 0
bench/{ => v6jnls}/bn_dsg_e_x.jnl | 0
bench/{ => v6jnls}/bn_element_functions.jnl | 0
bench/{ => v6jnls}/bn_enter_exit_GO.jnl | 0
bench/{ => v6jnls}/bn_eof_simple.jnl | 106 +-
bench/{ => v6jnls}/bn_eof_simple2.jnl | 101 +-
bench/{ => v6jnls}/bn_expressions_6d.jnl | 0
bench/{ => v6jnls}/bn_f_tax_fcns.jnl | 0
bench/{ => v6jnls}/bn_fifty_files.jnl | 0
bench/{ => v6jnls}/bn_floatstr.jnl | 0
bench/{ => v6jnls}/bn_floatstr_extended.jnl | 0
bench/{ => v6jnls}/bn_fmrc.jnl | 0
bench/{ => v6jnls}/bn_global_atts.jnl | 6 +-
bench/{ => v6jnls}/bn_grads_z.jnl | 0
bench/{ => v6jnls}/bn_ifv.jnl | 0
bench/{ => v6jnls}/bn_interpolate_6d.jnl | 0
bench/{ => v6jnls}/bn_interpolate_6d.sub | 0
bench/{ => v6jnls}/bn_isdepth.jnl | 0
bench/{ => v6jnls}/bn_keep_axisnames.jnl | 0
bench/{ => v6jnls}/bn_key_label_minmax.jnl | 0
bench/{ => v6jnls}/bn_labnum_calendar.jnl | 0
bench/{ => v6jnls}/bn_last_error.jnl | 0
bench/{ => v6jnls}/bn_last_go_file.jnl | 0
bench/{ => v6jnls}/bn_legend_labels.jnl | 0
bench/{ => v6jnls}/bn_let_remote.jnl | 0
bench/{ => v6jnls}/bn_letd_attributes.jnl | 0
bench/{ => v6jnls}/bn_linecolors.jnl | 0
bench/{ => v6jnls}/bn_list_clim_axes.jnl | 0
bench/{ => v6jnls}/bn_lon_lat_time_string.jnl | 0
bench/{ => v6jnls}/bn_long_grid_names.jnl | 0
bench/{ => v6jnls}/bn_long_lists.jnl | 0
bench/{ => v6jnls}/bn_long_revision_num.jnl | 0
bench/{ => v6jnls}/bn_long_symnames.jnl | 0
bench/{ => v6jnls}/bn_lsl_lowpass.jnl | 0
bench/{ => v6jnls}/bn_median.jnl | 0
bench/{ => v6jnls}/bn_memory_symbol.jnl | 0
bench/{ => v6jnls}/bn_min_max_smoothers.jnl | 0
bench/{ => v6jnls}/bn_mode_nlevels.jnl | 0
bench/{ => v6jnls}/bn_mode_nodata_lab.jnl | 0
bench/{ => v6jnls}/bn_modnbd.jnl | 0
bench/{ => v6jnls}/bn_multi_decade.jnl | 0
bench/{ => v6jnls}/bn_n_open_dsets_sym.jnl | 0
bench/{ => v6jnls}/bn_nco_append.jnl | 0
bench/{ => v6jnls}/bn_netcdf4.jnl | 0
bench/{ => v6jnls}/bn_no_valid_on_plot.jnl | 0
bench/{ => v6jnls}/bn_nobounds.jnl | 0
bench/{ => v6jnls}/bn_outtype.jnl | 0
bench/{ => v6jnls}/bn_permute_ascii.jnl | 0
bench/{ => v6jnls}/bn_plot_along.jnl | 0
bench/{ => v6jnls}/bn_plot_color_only.jnl | 0
bench/{ => v6jnls}/bn_plot_decimate.jnl | 0
bench/{ => v6jnls}/bn_plot_ribbon_gaploc.jnl | 0
bench/{ => v6jnls}/bn_polygon_log.jnl | 0
.../bn_proleptic_gregorian_calendar.jnl | 0
bench/{ => v6jnls}/bn_randu2_randn2.jnl | 0
bench/{ => v6jnls}/bn_regrid_6d.jnl | 0
bench/{ => v6jnls}/bn_regrid_transforms_6d.jnl | 0
bench/{ => v6jnls}/bn_repeated_coords.jnl | 0
bench/{ => v6jnls}/bn_repl_9999999.jnl | 0
bench/{ => v6jnls}/bn_return_defined.jnl | 0
bench/{ => v6jnls}/bn_return_xmod_tmod.jnl | 0
bench/{ => v6jnls}/bn_ribbon_plot.jnl | 0
bench/{ => v6jnls}/bn_samplexyt.jnl | 0
bench/{ => v6jnls}/bn_save_justdim.jnl | 0
bench/{ => v6jnls}/bn_scat2grid_bin.jnl | 0
bench/{ => v6jnls}/bn_set_axis_name.jnl | 0
bench/{ => v6jnls}/bn_set_axis_regular.jnl | 0
bench/{ => v6jnls}/bn_set_cancel_redirect.jnl | 0
bench/{ => v6jnls}/bn_set_strides.jnl | 13 +-
bench/{ => v6jnls}/bn_set_var_name.jnl | 0
bench/{ => v6jnls}/bn_shade_trim.jnl | 0
bench/{ => v6jnls}/bn_short.sub | 0
bench/{ => v6jnls}/bn_shortgo.jnl | 0
bench/{ => v6jnls}/bn_shortgo2.jnl | 0
bench/{ => v6jnls}/bn_show_commands.jnl | 0
bench/{ => v6jnls}/bn_show_noupcase.jnl | 0
bench/{ => v6jnls}/bn_show_outfile.jnl | 0
bench/{ => v6jnls}/bn_show_uvar_grid.jnl | 0
bench/{ => v6jnls}/bn_show_xml_file.jnl | 0
bench/{ => v6jnls}/bn_single_colorlev.jnl | 0
bench/{ => v6jnls}/bn_sort_strings.jnl | 0
bench/{ => v6jnls}/bn_spawn_size.jnl | 0
bench/{ => v6jnls}/bn_speedtest.jnl | 0
bench/{ => v6jnls}/bn_stddev.jnl | 0
bench/{ => v6jnls}/bn_strdim.jnl | 0
bench/{ => v6jnls}/bn_string_ngd_nbd.jnl | 0
bench/{ => v6jnls}/bn_syntax_6d.jnl | 0
bench/{ => v6jnls}/bn_tab_comma_multivar.jnl | 0
bench/{ => v6jnls}/bn_tax_tstep.jnl | 0
bench/{ => v6jnls}/bn_test_opendap.jnl | 0
bench/{ => v6jnls}/bn_time2d.jnl | 0
bench/{ => v6jnls}/bn_time_short_axes.jnl | 0
bench/{ => v6jnls}/bn_transforms.jnl | 0
bench/{ => v6jnls}/bn_txtype_dmy.jnl | 0
bench/{ => v6jnls}/bn_unquoted_args.jnl | 0
bench/{ => v6jnls}/bn_var_hist_levels.jnl | 0
bench/{ => v6jnls}/bn_varcontext_attributes.jnl | 0
bench/{ => v6jnls}/bn_variance.jnl | 0
bench/{ => v6jnls}/bn_variance_large.jnl | 0
bench/{ => v6jnls}/bn_vec_mod.jnl | 0
bench/{ => v6jnls}/bn_vector_symbols.jnl | 0
bench/{ => v6jnls}/bn_vtree.jnl | 0
bench/{ => v6jnls}/bn_vtree.sub | 0
bench/{ => v6jnls}/bn_vtree_outfile.jnl | 0
bench/{ => v6jnls}/bn_vtree_outfile.sub | 0
bench/{ => v6jnls}/bn_vtree_regrid.jnl | 0
bench/{ => v6jnls}/bn_wgt_transform.jnl | 0
bench/{ => v6jnls}/bn_window_title.jnl | 0
bench/{ => v6jnls}/bn_write_integer_att.jnl | 0
bench/{ => v6jnls}/bn_xml_header.jnl | 0
bench/{ => v6jnls}/bn_xml_repl.jnl | 0
bench/{ => v6jnls}/err600_check_bounds_regular.jnl | 0
bench/{ => v6jnls}/err600_ferret_axis_names.jnl | 0
bench/{ => v6jnls}/err600_if_comments_tab.jnl | 0
bench/{ => v6jnls}/err600_let_d.jnl | 0
bench/{ => v6jnls}/err600_long_bounds_name.jnl | 0
bench/{ => v6jnls}/err600_long_symbol_string.jnl | 0
bench/{ => v6jnls}/err600_missing_flag.jnl | 0
bench/{ => v6jnls}/err600_nc_des_order.jnl | 0
bench/{ => v6jnls}/err600_reset_redefine_axis.jnl | 0
bench/{ => v6jnls}/err600_returnsize.jnl | 0
bench/{ => v6jnls}/err600_save_two.jnl | 0
bench/{ => v6jnls}/err600_set_var_title.jnl | 0
bench/{ => v6jnls}/err600_tab_comma_missingdat.jnl | 0
bench/{ => v6jnls}/err600_upcase.jnl | 0
bench/{ => v6jnls}/err600_var_label.jnl | 0
bench/{ => v6jnls}/err600_vec_aspect.jnl | 0
bench/{ => v6jnls}/err601_check_missing_3arg.jnl | 0
bench/{ => v6jnls}/err601_index_111.jnl | 0
bench/{ => v6jnls}/err601_irregular_axis.jnl | 0
.../{ => v6jnls}/err601_missing_string_element.jnl | 0
bench/{ => v6jnls}/err601_sho_ax_xml_calendar.jnl | 0
bench/{ => v6jnls}/err602_curvi_modulo_cut.jnl | 0
bench/{ => v6jnls}/err602_list_prec.jnl | 0
bench/{ => v6jnls}/err602_shade_line_lev.jnl | 0
bench/{ => v6jnls}/err604_irreg_axis.jnl | 0
bench/{ => v6jnls}/err605_show_func.jnl | 0
bench/{ => v6jnls}/err607_axis_minmax_syms.jnl | 0
bench/{ => v6jnls}/err607_lev_errmsg.jnl | 0
bench/{ => v6jnls}/err607_set_new_history_att.jnl | 0
bench/{ => v6jnls}/err607_show_var_xml.jnl | 0
bench/{ => v6jnls}/err608_bug1556.jnl | 0
.../{ => v6jnls}/err608_precision_neg_numbers.jnl | 0
bench/{ => v6jnls}/err611_axislab.jnl | 0
bench/{ => v6jnls}/err611_context_after_error.jnl | 0
bench/{ => v6jnls}/err611_convert_missing_type.jnl | 0
bench/{ => v6jnls}/err611_digit_filename.jnl | 0
bench/{ => v6jnls}/err611_ef_string_result.jnl | 0
bench/{ => v6jnls}/err611_exit_if.jnl | 0
bench/{ => v6jnls}/err611_irregular_axis.jnl | 0
bench/{ => v6jnls}/err611_isize_gc_fcns.jnl | 0
bench/{ => v6jnls}/err611_ov_ax.jnl | 0
bench/{ => v6jnls}/err611_parse_semicolon.jnl | 0
bench/{ => v6jnls}/err611_polygons.jnl | 0
bench/{ => v6jnls}/err611_return_precision.jnl | 0
bench/{ => v6jnls}/err611_save_from_desc.jnl | 0
bench/{ => v6jnls}/err611_save_irreg.jnl | 0
bench/{ => v6jnls}/err611_set_uvar_outtyp.jnl | 0
bench/{ => v6jnls}/err611_set_var_ez.jnl | 0
bench/{ => v6jnls}/err611_shade_fill_levs.jnl | 0
bench/{ => v6jnls}/err611_wrong_fineaxis_range.jnl | 0
bench/{ => v6jnls}/err618_julday.jnl | 0
bench/{ => v6jnls}/err61_360_calendar.jnl | 0
.../{ => v6jnls}/err61_context_scalar_strings.jnl | 0
bench/{ => v6jnls}/err61_contour_subspan_reps.jnl | 0
bench/{ => v6jnls}/err61_exit_script.jnl | 0
bench/{ => v6jnls}/err61_new_attr_on_axis.jnl | 0
.../{ => v6jnls}/err61_poly_shade_over_noaxes.jnl | 0
bench/{ => v6jnls}/err61_show_dat_var_xml.jnl | 0
bench/{ => v6jnls}/err61_write_bounds.jnl | 0
bench/{ => v6jnls}/err62_append_irreg_to_reg.jnl | 0
bench/{ => v6jnls}/err62_axis_stride_off.jnl | 0
.../err62_compound_string_conditional.jnl | 0
bench/{ => v6jnls}/err62_contourbug.jnl | 0
bench/{ => v6jnls}/err62_cos_lat_uncentered.jnl | 0
bench/{ => v6jnls}/err62_if_inside_repeat.jnl | 0
bench/{ => v6jnls}/err62_levset.jnl | 0
bench/{ => v6jnls}/err62_one_point_bounds.jnl | 0
bench/{ => v6jnls}/err62_reset_after_inf.jnl | 0
bench/{ => v6jnls}/err62_reversed_up.jnl | 0
bench/{ => v6jnls}/err62_samplexy.jnl | 0
bench/{ => v6jnls}/err62_save_missingcoordvar.jnl | 0
bench/{ => v6jnls}/err62_string_write_nc.jnl | 0
bench/{ => v6jnls}/err62_thick_tic_time_axis.jnl | 0
bench/{ => v6jnls}/err62_title_curvi_plot.jnl | 0
bench/{ => v6jnls}/err63_days1900toydmhms.jnl | 0
bench/{ => v6jnls}/err63_delim_E.jnl | 0
bench/{ => v6jnls}/err63_log_vaxis.jnl | 0
bench/{ => v6jnls}/err64_packed_data.jnl | 0
bench/{ => v6jnls}/err64_parse_equals.jnl | 0
.../{ => v6jnls}/err64_polymark_over_calendar.jnl | 0
bench/{ => v6jnls}/err64_regrid_noleap.jnl | 0
bench/{ => v6jnls}/err64_return_precision.jnl | 0
bench/{ => v6jnls}/err64_shakey_missingdata.jnl | 0
bench/{ => v6jnls}/err64_very_small_latlon.jnl | 0
bench/{ => v6jnls}/err65_averages.jnl | 0
bench/{ => v6jnls}/err65_dots_in_dashes.jnl | 0
bench/{ => v6jnls}/err65_read_epic_cdf.jnl | 0
bench/{ => v6jnls}/err664_tax_fcns.jnl | 0
bench/{ => v6jnls}/err664_xml_keep_case.jnl | 0
bench/{ => v6jnls}/err664_xml_one_point_axis.jnl | 0
bench/{ => v6jnls}/err665_centered_lev.jnl | 0
bench/{ => v6jnls}/err665_din.jnl | 0
bench/{ => v6jnls}/err665_hours_since_T.jnl | 0
bench/{ => v6jnls}/err665_sum_4d_labels.jnl | 0
bench/{ => v6jnls}/err667_5d_netcdf.jnl | 0
bench/{ => v6jnls}/err667_att_too_long.jnl | 0
bench/{ => v6jnls}/err667_dup_axnames.jnl | 0
bench/{ => v6jnls}/err667_mode_desperate.jnl | 0
bench/{ => v6jnls}/err667_show_var_twice.jnl | 0
bench/{ => v6jnls}/err667_string_if.jnl | 0
bench/{ => v6jnls}/err66_all_missing_lev_v.jnl | 0
bench/{ => v6jnls}/err672_axis_label_prec.jnl | 0
bench/{ => v6jnls}/err672_axis_order.jnl | 2 +-
bench/{ => v6jnls}/err672_dset_cx.jnl | 0
bench/{ => v6jnls}/err672_long_show_axis.jnl | 0
bench/{ => v6jnls}/err672_runoff_page.jnl | 0
bench/{ => v6jnls}/err672_samplexy_modulo.jnl | 0
bench/{ => v6jnls}/err672_stray_line.jnl | 0
bench/{ => v6jnls}/err672_subscr_precision.jnl | 0
bench/{ => v6jnls}/err672_tax_functions_prec.jnl | 0
bench/{ => v6jnls}/err672_varnames.jnl | 0
bench/{ => v6jnls}/err672_vert_axislabel.jnl | 0
bench/{ => v6jnls}/err67_nrst_trans.jnl | 0
bench/{ => v6jnls}/err67_regridding_dyn.jnl | 0
bench/{ => v6jnls}/err67_reverse_bounds.jnl | 0
bench/{ => v6jnls}/err67_save_append_open.jnl | 0
bench/{ => v6jnls}/err67_tax_modtime.jnl | 0
bench/{ => v6jnls}/err681_dims_direction.jnl | 0
bench/{ => v6jnls}/err682_append_packed.jnl | 0
bench/{ => v6jnls}/err682_axis_no_clue.jnl | 0
bench/{ => v6jnls}/err682_grid_merge.jnl | 0
bench/{ => v6jnls}/err682_if_yes_exit.jnl | 0
bench/{ => v6jnls}/err682_scale_no_offset.jnl | 0
bench/{ => v6jnls}/err682_shrink_axlab.jnl | 0
bench/{ => v6jnls}/err682_use_no_quotes.jnl | 0
bench/{ => v6jnls}/err682_xact_high_prec.jnl | 0
bench/{ => v6jnls}/err6842_context_shape.jnl | 0
bench/{ => v6jnls}/err684_FillValue_xml.jnl | 0
bench/{ => v6jnls}/err684_axticlab.jnl | 0
bench/{ => v6jnls}/err684_context_shape.jnl | 0
bench/{ => v6jnls}/err684_define_grid.jnl | 0
bench/{ => v6jnls}/err684_degC_axlab.jnl | 0
bench/{ => v6jnls}/err684_delimited_precision.jnl | 2 +-
bench/{ => v6jnls}/err684_dotstart.jnl | 0
bench/{ => v6jnls}/err684_evnt_z.jnl | 0
bench/{ => v6jnls}/err684_label_quotes.jnl | 0
bench/{ => v6jnls}/err684_line_plot_zero.jnl | 0
bench/{ => v6jnls}/err684_null_stringwrite.jnl | 0
bench/{ => v6jnls}/err684_packed_output.jnl | 0
.../{ => v6jnls}/err684_repeated_coordindates.jnl | 0
bench/{ => v6jnls}/err684_save_expression.jnl | 0
bench/{ => v6jnls}/err684_save_subset.jnl | 0
bench/{ => v6jnls}/err684_string_dim_name.jnl | 0
bench/{ => v6jnls}/err684_tax_fcns.jnl | 0
bench/{ => v6jnls}/err684_vfine_to_coarse.jnl | 0
bench/{ => v6jnls}/err685_lowercaseAxis.jnl | 0
bench/{ => v6jnls}/err685_ppl_palette.jnl | 0
bench/{ => v6jnls}/err685_redefine_uvar_att.jnl | 0
bench/{ => v6jnls}/err685_ribbon_by_val.jnl | 0
bench/{ => v6jnls}/err685_samplexy.jnl | 0
bench/{ => v6jnls}/err685_shade_set.jnl | 0
bench/{ => v6jnls}/err685_show_grid_e.jnl | 0
bench/{ => v6jnls}/err685_use_no_extension.jnl | 2 +-
bench/{ => v6jnls}/err686_cancel_invalid_var.jnl | 0
bench/{ => v6jnls}/err686_dup_axnames.jnl | 0
bench/{ => v6jnls}/err686_faxis_label.jnl | 0
bench/{ => v6jnls}/err686_individual_levels.jnl | 0
bench/{ => v6jnls}/err686_long_list_varnames.jnl | 0
bench/{ => v6jnls}/err686_redef_ascii_att.jnl | 0
bench/{ => v6jnls}/err686_set_var_name.jnl | 0
bench/{ => v6jnls}/err686_sho_nonexist_att.jnl | 0
bench/{ => v6jnls}/err686_show_xml_letd.jnl | 0
bench/{ => v6jnls}/err691_bnds_case.jnl | 0
bench/{ => v6jnls}/err691_pt_in_poly.jnl | 0
bench/{ => v6jnls}/err691_substring_arg.jnl | 0
bench/{ => v6jnls}/err693_attr_in_gcfcn.jnl | 0
bench/{ => v6jnls}/err693_edit_useratt.jnl | 0
bench/{ => v6jnls}/err693_ef_axis_precision.jnl | 0
bench/{ => v6jnls}/err693_fcn_of_attvar.jnl | 0
bench/{ => v6jnls}/err693_frame_types.jnl | 0
bench/{ => v6jnls}/err693_if_then_flow_1368.jnl | 0
bench/{ => v6jnls}/err693_if_then_flow_1446.jnl | 0
bench/{ => v6jnls}/err693_if_then_flow_1681.jnl | 0
bench/{ => v6jnls}/err693_if_then_flow_1706.jnl | 0
bench/{ => v6jnls}/err693_if_then_flow_1860.jnl | 0
bench/{ => v6jnls}/err693_if_then_flow_2211.jnl | 0
bench/{ => v6jnls}/err693_if_then_flow_2214.jnl | 0
bench/{ => v6jnls}/err693_inconsistent_quote.jnl | 0
bench/{ => v6jnls}/err693_isize_and_gcfcn.jnl | 0
.../{ => v6jnls}/err693_isready_dyn_grid_crash.jnl | 0
bench/{ => v6jnls}/err693_isready_hang.jnl | 0
bench/{ => v6jnls}/err693_lev_nv_over.jnl | 0
bench/{ => v6jnls}/err693_line_over_axis.jnl | 0
bench/{ => v6jnls}/err693_list_missing.jnl | 0
bench/{ => v6jnls}/err693_parse_curly.jnl | 0
bench/{ => v6jnls}/err693_parse_curly.sub | 0
bench/{ => v6jnls}/err693_redef_rec_axis.jnl | 0
bench/{ => v6jnls}/err693_repeat_err.jnl | 0
bench/{ => v6jnls}/err693_ribbon_scale.jnl | 0
bench/{ => v6jnls}/err693_ribbon_start_missing.jnl | 0
bench/{ => v6jnls}/err693_save_packed.jnl | 0
bench/{ => v6jnls}/err693_scalar_grids.jnl | 0
bench/{ => v6jnls}/err693_shape.jnl | 0
bench/{ => v6jnls}/err693_shf_subscr.jnl | 0
bench/{ => v6jnls}/err693_shift_w_region.jnl | 0
bench/{ => v6jnls}/err693_std4d.jnl | 0
bench/{ => v6jnls}/err693_string_results.jnl | 0
bench/{ => v6jnls}/err693_subspan_trans.jnl | 0
.../{ => v6jnls}/err693_undetected_regrid_dset.jnl | 0
bench/{ => v6jnls}/err693_upcase_quoted_name.jnl | 0
bench/{ => v6jnls}/err694_longname_showdat.jnl | 2 +-
bench/{ => v6jnls}/err694_shf_missing.jnl | 0
bench/{ => v6jnls}/err695_bounds_match_axis.jnl | 0
bench/{ => v6jnls}/err695_grave_prec.jnl | 0
bench/{ => v6jnls}/err695_show_dat_nodata.jnl | 0
bench/{ => v6jnls}/err696_2d_time_overlay.jnl | 0
bench/{ => v6jnls}/err696_annotate_numeric.jnl | 0
bench/{ => v6jnls}/err696_argument_blanks.jnl | 0
bench/{ => v6jnls}/err696_argument_blanks_sub.jnl | 0
bench/{ => v6jnls}/err696_centerlab_restore.jnl | 0
bench/{ => v6jnls}/err696_contour_conset.jnl | 0
bench/{ => v6jnls}/err696_def_att.jnl | 0
bench/{ => v6jnls}/err696_def_ax_edges.jnl | 0
bench/{ => v6jnls}/err696_def_ax_f.jnl | 0
.../{ => v6jnls}/err696_e_component_mem_crptn.jnl | 0
bench/{ => v6jnls}/err696_ft_calendars.jnl | 0
bench/{ => v6jnls}/err696_hovmuller_mod_fill.jnl | 0
bench/{ => v6jnls}/err696_mem_err_report.jnl | 0
bench/{ => v6jnls}/err696_mod_sub_fln.jnl | 0
bench/{ => v6jnls}/err696_mode_cal_f.jnl | 0
bench/{ => v6jnls}/err696_multiple_slashes.jnl | 0
bench/{ => v6jnls}/err696_only_inf_lev.jnl | 0
bench/{ => v6jnls}/err696_plot_ax_ppl.jnl | 0
bench/{ => v6jnls}/err696_poly_over_label.jnl | 0
bench/{ => v6jnls}/err696_red_keylab.jnl | 0
bench/{ => v6jnls}/err696_repeat_escapes.jnl | 0
bench/{ => v6jnls}/err696_return_prec.jnl | 0
bench/{ => v6jnls}/err696_return_type.jnl | 0
bench/{ => v6jnls}/err696_save_noupcase.jnl | 0
bench/{ => v6jnls}/err696_shade_subspan_clim.jnl | 0
bench/{ => v6jnls}/err696_singlevec_over.jnl | 0
bench/{ => v6jnls}/err696_subspan_mod_in_expr.jnl | 0
bench/{ => v6jnls}/err696_subspan_mod_strides.jnl | 0
bench/{ => v6jnls}/err696_subspan_transforms.jnl | 0
bench/{ => v6jnls}/err696_time_overlay.jnl | 0
bench/{ => v6jnls}/err696_write_no_dim.jnl | 0
bench/{ => v6jnls}/err69_arg_type_error.jnl | 0
bench/{ => v6jnls}/err69_bad_bounds.jnl | 0
bench/{ => v6jnls}/err69_const_array.jnl | 0
bench/{ => v6jnls}/err69_countervar_context.jnl | 0
bench/{ => v6jnls}/err69_ens_badvalue.jnl | 0
bench/{ => v6jnls}/err69_fill_trans.jnl | 0
.../{ => v6jnls}/err69_isready_and_regridding.jnl | 0
bench/{ => v6jnls}/err69_isready_bugs.jnl | 0
.../{ => v6jnls}/err69_isready_status_errmsgs.jnl | 0
bench/{ => v6jnls}/err69_label_backspace.jnl | 0
bench/{ => v6jnls}/err69_letd_dsetnum.jnl | 0
bench/{ => v6jnls}/err69_levels_v.jnl | 0
bench/{ => v6jnls}/err69_load_big_grid.jnl | 0
bench/{ => v6jnls}/err69_long_string_to_xml.jnl | 0
bench/{ => v6jnls}/err69_multi_label_ascii.jnl | 0
bench/{ => v6jnls}/err69_plot_vs_labs.jnl | 0
bench/{ => v6jnls}/err69_repl_scinot.jnl | 0
bench/{ => v6jnls}/err69_ribbon_by_levels.jnl | 0
bench/{ => v6jnls}/err69_ribbon_histogram.jnl | 0
bench/{ => v6jnls}/err69_vtree_and_uvar_regrid.jnl | 0
bench/{ => v6jnls}/err69_vtree_cancel_axis.jnl | 0
bench/{ => v6jnls}/err69_write_attribute.jnl | 0
bench/{ => v6jnls}/xml_header_script.jnl | 0
bench/{ => v6jnls}/xml_use_coads.jnl | 0
bench/{ => v6jnls}/xml_use_numstring.jnl | 0
bench/{ => v7jnls}/bn710_bug_fixes.jnl | 0
bench/{ => v7jnls}/bn720_bug_fixes.jnl | 0
bench/{ => v7jnls}/bn721_bug_fixes.jnl | 0
bench/v7jnls/bn722_bug_fixes.jnl | 31 +
bench/{ => v7jnls}/bn_agg_member_syntax.jnl | 2 +-
bench/{ => v7jnls}/bn_aggregate_u.jnl | 0
bench/{ => v7jnls}/bn_ave_of_ave.jnl | 0
bench/{ => v7jnls}/bn_cache_management.jnl | 0
bench/{ => v7jnls}/bn_compressed_gather.jnl | 3 +
bench/{ => v7jnls}/bn_compressed_gather.sub | 0
bench/{ => v7jnls}/bn_delim_datetime.jnl | 0
bench/{ => v7jnls}/bn_dot_product.jnl | 0
bench/{ => v7jnls}/bn_dynamic_gather.jnl | 3 +
bench/{ => v7jnls}/bn_dynamic_gather.sub | 0
bench/{ => v7jnls}/bn_ez_noupcase.jnl | 0
bench/v7jnls/bn_huge_axis.jnl | 26 +
bench/{ => v7jnls}/bn_iin_regrid.jnl | 0
bench/{ => v7jnls}/bn_plot_vs_with_time.jnl | 0
bench/v7jnls/bn_save_as_global.jnl | 54 +
bench/{ => v7jnls}/bn_spawn_fail.jnl | 4 +-
bench/{ => v7jnls}/bn_stat_precision.jnl | 0
bench/{ => v7jnls}/bn_transp_choose.jnl | 0
bench/{ => v7jnls}/bn_true_monthly.jnl | 0
bench/v7jnls/bn_tseries_modulo.jnl | 46 +
bench/{ => v7jnls}/err700_aggT_5d.jnl | 0
bench/{ => v7jnls}/err700_aggregate_from_fmrc.jnl | 0
bench/{ => v7jnls}/err700_aggt_dup_grids.jnl | 0
bench/{ => v7jnls}/err700_attribute_parsing.jnl | 0
bench/{ => v7jnls}/err700_ax_horiz.jnl | 0
bench/{ => v7jnls}/err700_axis_dates.jnl | 0
bench/{ => v7jnls}/err700_clim_attr_expression.jnl | 0
bench/{ => v7jnls}/err700_coords.jnl | 0
bench/{ => v7jnls}/err700_decimate.jnl | 0
bench/{ => v7jnls}/err700_define_1pt_axis.jnl | 0
bench/{ => v7jnls}/err700_fmrcdiag.jnl | 2 +
bench/{ => v7jnls}/err700_inherit_all.jnl | 0
bench/{ => v7jnls}/err700_key.jnl | 0
bench/{ => v7jnls}/err700_legend_labels.jnl | 0
bench/{ => v7jnls}/err700_lev_del_symb.jnl | 0
bench/{ => v7jnls}/err700_levels_one_level.jnl | 0
bench/{ => v7jnls}/err700_list_comma.jnl | 0
bench/{ => v7jnls}/err700_modulo.jnl | 0
bench/{ => v7jnls}/err700_reg_axis_check.jnl | 0
bench/{ => v7jnls}/err700_ribbon_vlog.jnl | 0
.../err700_samplexy_subspan_modulo.jnl | 0
bench/{ => v7jnls}/err700_save_mod_att.jnl | 0
bench/{ => v7jnls}/err700_shade_singlecell.jnl | 0
bench/{ => v7jnls}/err700_time_overlay.jnl | 0
bench/{ => v7jnls}/err700_timegrat.jnl | 0
bench/{ => v7jnls}/err700_unclosed_if.jnl | 0
bench/{ => v7jnls}/err700_vs_plot_axes.jnl | 0
bench/{ => v7jnls}/err71_2d_ave_miss0.jnl | 0
bench/{ => v7jnls}/err71_colorlevs.jnl | 0
bench/{ => v7jnls}/err71_err_attrib_overrun.jnl | 0
bench/{ => v7jnls}/err71_expr_w_const.jnl | 0
bench/{ => v7jnls}/err71_isready_unknown.jnl | 0
bench/{ => v7jnls}/err71_plotvs_mode_label.jnl | 0
bench/{ => v7jnls}/err71_point_average.jnl | 0
bench/{ => v7jnls}/err71_ppl_sho_empty.jnl | 0
bench/{ => v7jnls}/err71_prec_return.jnl | 0
bench/{ => v7jnls}/err71_read_delim.jnl | 0
bench/{ => v7jnls}/err71_repeat_paren.jnl | 0
bench/{ => v7jnls}/err71_save_bounds.jnl | 0
bench/{ => v7jnls}/err71_save_rigid.jnl | 0
bench/{ => v7jnls}/err71_set_redirect.jnl | 0
bench/{ => v7jnls}/err71_string_and_if.jnl | 0
bench/{ => v7jnls}/err71_user_var_attrib.jnl | 0
bench/{ => v7jnls}/err71_uvar_strides.jnl | 0
bench/{ => v7jnls}/err71_vs_constant.jnl | 0
bench/{ => v7jnls}/err71_vs_lon_over.jnl | 0
bench/v7jnls/err721_ascii_size.jnl | 9 +
bench/v7jnls/err721_color_levels.jnl | 11 +
bench/v7jnls/err721_dot_grid.jnl | 43 +
bench/v7jnls/err721_dup_labels.jnl | 26 +
bench/v7jnls/err721_dynamic_gather.jnl | 32 +
bench/v7jnls/err721_letd_with_grave.jnl | 13 +
bench/v7jnls/err721_plotuv.jnl | 19 +
bench/v7jnls/err721_polymark_log.jnl | 39 +
bench/v7jnls/err721_stride_size.jnl | 32 +
bench/{ => v7jnls}/err72_atts_as_vars.jnl | 0
bench/{ => v7jnls}/err72_sum_in_x.jnl | 0
bench/{ => v7jnls}/unclosed_if.sub | 0
bin/ferret_paths_template.csh | 44 +-
bin/ferret_paths_template.sh | 46 +-
bin/make_environment_tar | 2 +-
bin/make_executable_tar | 22 -
fer/Makefile | 1 +
fer/ccr/SOURCE_FILES | 4 +-
fer/ccr/get_edgmem.c | 40 +
fer/ccr/get_linemem.c | 40 +
fer/ccr/nullify_linemem.c | 30 +
fer/ccr/perl_read.c | 1 +
fer/ccr/run_thredds_browser.c | 276 -
fer/common/EF_Util.h | 1 -
fer/common/binaryRead.h | 15 +-
fer/common/ferret.h | 3 +-
fer/common/run_thredds_browser.h | 20 -
fer/common/slash.parm | 10 +-
fer/common/xcommand.cmn | 3 +-
fer/dat/xcommand_data.F | 51 +-
fer/dat/xrevision_data.F | 5 +-
fer/efi/eof_space.F | 7 +-
fer/efi/eof_stat.F | 7 +-
fer/efi/eof_tfunc.F | 7 +-
fer/efi/eofsvd_space.F | 2 +-
fer/gnl/SOURCE_FILES | 1 -
fer/gnl/build_t_agg_axis.F | 604 +-
fer/gnl/cdf_list.F | 108 +-
fer/gnl/define_ef_aggregate_grid.F | 166 +-
fer/gnl/define_special_grids.F | 2 -
fer/gnl/finalize_ferret.F | 3 +-
fer/gnl/get_dataset_name.F | 107 -
fer/gnl/init_ef_aggregate_dset.F | 3 +-
fer/gnl/initialize_ferret.F | 5 +
fer/gnl/list_cmnd_data.F | 2 +-
fer/gnl/sort_tseries_dsets.F | 76 +-
fer/ino/find_dset_number.F | 20 +-
fer/ino/init_ez_dset.F | 1 +
fer/ino/read_tm.F | 9 +-
fer/ino/var_ss_lims.F | 39 +-
fer/mem/SOURCE_FILES | 6 +
.../free_line_dynmem.F} | 40 +-
.../tm_warn_subspan.F => fer/mem/get_line_dynmem.F | 100 +-
fer/mem/purge_mr_axis.F | 9 +-
.../gcf_set_normal_axis.F => mem/store_edge_ptr.F} | 37 +-
.../gcf_set_normal_axis.F => mem/store_line_ptr.F} | 37 +-
.../store_nul_edge_ptr.F} | 34 +-
.../store_nul_line_ptr.F} | 34 +-
fer/plt/disp_prep.F | 10 +-
fer/plt/plot_set_up.F | 9 +
fer/plt/polygon_set_up.F | 46 +-
fer/stk/setup_gather.F | 8 +
fer/utl/SOURCE_FILES | 1 -
fer/utl/deallo_all_axes.F | 11 +-
fer/utl/gcf_get_axis_srcs.F | 6 +
fer/utl/gcf_set_normal_axis.F | 7 +-
fer/utl/pack_line_storage.F | 110 -
fer/utl/ss_neighbors.F | 6 +-
fer/xeq/xeq_cancel.F | 5 +-
fer/xeq/xeq_define.F | 254 +-
fer/xeq/xeq_list.F | 15 +-
fer/xeq/xeq_set.F | 18 +-
fmt/cmn/tmap_dims.parm | 8 +-
fmt/cmn/xbuild_grids.cmn | 11 +-
fmt/cmn/xtm_grid.cmn_text | 35 +-
fmt/src/SOURCE_FILES | 9 +
fmt/src/cd_1d_line_from_2d.F | 25 +-
fmt/src/cd_abort_grids.F | 5 +-
fmt/src/cd_get_1_axis.F | 489 +-
fmt/src/cd_get_line_direction.F | 11 +-
fmt/src/cd_make_fmrc_axes.F | 154 +-
fmt/src/cd_make_fmrc_fcal_axis.F | 47 +-
fmt/src/cd_rd_r8_arr.F | 2 +-
fmt/src/cd_scan_vars.F | 2 -
fmt/src/cd_write_axis.F | 8 +-
.../src/copy_line_coords.F | 37 +-
ppl/complot/symwid.F => fmt/src/get_line_coord.F | 35 +-
fmt/src/gt_get_time_axis.F | 70 +-
ppl/complot/symwid.F => fmt/src/put_line_coord.F | 35 +-
fmt/src/tm_adjust_bounds.F | 24 +-
fmt/src/tm_check_bnds.F | 236 +-
fmt/src/tm_check_bnds_centered.F | 60 +-
fmt/src/tm_check_box_loc.F | 29 +-
fmt/src/tm_check_coords.F | 101 +-
fmt/src/tm_check_line.F | 194 +
fmt/src/tm_check_line_bounds.F | 69 +
.../{tm_irregax_mid.F => tm_check_line_edges.F} | 69 +-
fmt/src/tm_close_set_cond_deallo.F | 9 +-
.../src/tm_convert_bounds_edges.F | 32 +-
fmt/src/tm_copy_line.F | 13 +-
fmt/src/tm_deallo_dyn_line_sub.F | 5 +-
fmt/src/tm_garb_col_lines.F | 142 -
fmt/src/tm_irregax_mid.F | 34 +-
fmt/src/tm_line_match.F | 24 +-
.../src/tm_lonw2e_line.F | 38 +-
fmt/src/tm_read_gridfile.F | 562 +-
fmt/src/tm_rm_tmp_line.F | 6 +-
fmt/src/{tm_warn_subspan.F => tm_set_clim_axes.F} | 90 +-
fmt/src/tm_warn_subspan.F | 4 +-
fmt/src/tm_world_ax.F | 12 +-
fmt/src/tm_ww_ax_1_n.F | 9 +-
fmt/src/tm_ww_axlims.F | 11 +-
fmt/src/xgt_grid_data.F | 52 +-
jnls/contrib/greatcircle.jnl | 59 +
jnls/examples/compress_str.jnl | 46 +
jnls/go/polyshape.jnl | 10 +-
palettes/six_line_colors.spk | 10 +
ppl/complot/symbel.F | 5 +-
ppl/complot/symwid.F | 4 +-
ppl/nine_by_levels.spk | 12 +
ppl/plot/pltit.F | 12 +
ppl/tmapadds/SOURCE_FILES | 1 +
.../tmapadds/set_nshd_levels.F | 34 +-
site_specific.mk.in | 13 -
threddsBrowser/.classpath | 9 -
threddsBrowser/.project | 17 -
.../.settings/org.eclipse.jdt.core.prefs | 12 -
threddsBrowser/.settings/scoped_pref_store.prefs | 3 -
threddsBrowser/Makefile | 30 -
threddsBrowser/README | 24 -
.../ferret/threddsBrowser/BrowserDefaults.java | 302 -
.../ferret/threddsBrowser/ExtensionFileFilter.java | 91 -
.../pmel/ferret/threddsBrowser/HTMLViewer.java | 116 -
.../threddsBrowser/LocalDirInvDatasetImpl.java | 68 -
.../threddsBrowser/LocalDirTreeScanMonitor.java | 253 -
.../ferret/threddsBrowser/LocalDirTreeScanner.java | 294 -
.../ferret/threddsBrowser/LocationSelector.java | 184 -
.../threddsBrowser/LocationSelectorDialog.java | 404 --
.../pmel/ferret/threddsBrowser/ThreddsBrowser.java | 606 --
.../threddsBrowser/ThreddsBrowserListener.java | 234 -
threddsBrowser/toolsUI/toolsUI-4.1.jar | Bin 19687841 -> 0 bytes
.../threddsBrowserTests/TestBrowserDefaults.java | 263 -
.../TestExtensionFileFilter.java | 143 -
.../TestLocalDirTreeScanMonitor.java | 197 -
.../TestLocalDirTreeScanner.java | 239 -
.../threddsBrowserTests/TestThreddsBrowser.java | 65 -
1290 files changed, 9661 insertions(+), 13097 deletions(-)
diff --git a/Makefile b/Makefile
index acf6bd4..b45874c 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,6 @@ optimized :
$(MAKE) xgks/Makefile
$(MAKE) -C xgks
$(MAKE) -C fer
- $(MAKE) -C threddsBrowser
$(MAKE) -C external_functions
$(MAKE) -C gksm2ps
$(MAKE) -C bin/build_fonts/unix
@@ -27,7 +26,6 @@ beta :
$(MAKE) xgks/Makefile
$(MAKE) -C xgks
$(MAKE) -C fer beta
- $(MAKE) -C threddsBrowser
$(MAKE) -C external_functions
$(MAKE) -C gksm2ps
$(MAKE) -C bin/build_fonts/unix
@@ -38,7 +36,6 @@ debug :
$(MAKE) xgks/Makefile
$(MAKE) -C xgks
$(MAKE) -C fer debug
- $(MAKE) -C threddsBrowser
$(MAKE) -C external_functions debug
$(MAKE) -C gksm2ps
$(MAKE) -C bin/build_fonts/unix
@@ -53,7 +50,6 @@ memorydebug :
$(MAKE) xgks/Makefile
$(MAKE) -C xgks
$(MAKE) -C fer memorydebug
- $(MAKE) -C threddsBrowser
$(MAKE) -C external_functions debug
$(MAKE) -C gksm2ps
$(MAKE) -C bin/build_fonts/unix
@@ -73,7 +69,6 @@ clean :
$(MAKE) -C bin/build_fonts/unix clean
$(MAKE) -C gksm2ps clean
$(MAKE) -C external_functions clean
- $(MAKE) -C threddsBrowser clean
$(MAKE) -C fer clean
rm -fr lib
$(MAKE) xgksclean
diff --git a/README.md b/README.md
index 1f23941..ff1e594 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,30 @@ This repository is regularly synchronized with Ferret repository at PMEL
(the trunk of the ferret project in the subversion repository at PMEL)
using git-svn.
+#### Legal Disclaimer
+*This repository is a software product and is not official communication
+of the National Oceanic and Atmospheric Administration (NOAA), or the
+United States Department of Commerce (DOC). All NOAA GitHub project
+code is provided on an 'as is' basis and the user assumes responsibility
+for its use. Any claims against the DOC or DOC bureaus stemming from
+the use of this GitHub project will be governed by all applicable Federal
+law. Any reference to specific commercial products, processes, or services
+by service mark, trademark, manufacturer, or otherwise, does not constitute
+or imply their endorsement, recommendation, or favoring by the DOC.
+The DOC seal and logo, or the seal and logo of a DOC bureau, shall not
+be used in any manner to imply endorsement of any commercial product
+or activity by the DOC or the United States Government.*
+
+## Ferret Documentation
+
+For more information on using Ferret, see the Ferret documentation under
+[http://ferret.pmel.noaa.gov/Ferret/](http://ferret.pmel.noaa.gov/Ferret/)
+
+Information about the Ferret email users group, and archives of past discussions
+from the group (which should be searched prior to sending a question to the email
+users group) can be found at
+[http://ferret.pmel.noaa.gov/Ferret/email-users-group](http://ferret.pmel.noaa.gov/Ferret/email-users-group)
+
**If you build Ferret from these source files, please note:**
The `site_specific.mk` and `external_functions/ef_utilites/site_specific.mk`
files in the repository have been renamed with a `.in` appended to the name.
@@ -12,3 +36,4 @@ You must copy these files with the `.in` extensions to create files with the
system. The `site_specific.mk` files will be ignored by git (the name was
added to `.gitignore`) so your customized configuration files will not be
added to your repository if you have cloned this repository.
+
diff --git a/README_build_ferret b/README_build_ferret
index 424643b..2330f1c 100644
--- a/README_build_ferret
+++ b/README_build_ferret
@@ -20,9 +20,7 @@ for Ferret v6.6 at http://porter.pmel.noaa.gov/Ferret/home/documentation/v6-6-re
To build Ferret:
* Under the FERRET directory you will find a file called site_specific.mk. Edit this file
- and insert the locations of the HDF5, NetCDF, and readline directories, and java. Java is
- used only for the ThreddsBrowser facility of Ferret and is not required. If you use Java,
- you need version 1.6 "version 6".
+ and insert the locations of the HDF5, NetCDF, and readline directories.
* Still in the top-level FERRET directory, run "make". This will compile and link Ferret,
gksm2ps, external functions, and the fonts files. The Ferret executable is the file
diff --git a/bench/README b/bench/README
deleted file mode 100644
index 2263150..0000000
--- a/bench/README
+++ /dev/null
@@ -1,76 +0,0 @@
-FERRET benchmarks README file
-
-Running the benchmarks and interpreting results.
-
-After building Ferret, make a few simple tests for command-line reading,
-script reading, file reading, for example
-
- > ferretdods_gui
- yes? list/L=1:5 L
- yes? go ptest
-
- yes? use coads_climatology
- yes? show data
-
-When Ferret is running, the benchmark tests will verify its performance. To run the benchmarks,
-in the /bench directory we will run the script run_all. Look at the start of run_all, and if you
-like, customize the section for machine type. This information is used to make the log file, and
-also to look for a machine-specific stream binary file.
-
-Run run_all and answer the questions. When you first run the shell script run_all, you will be
-coached to create a stream binary file for the machine by compiling and running the program
-make_stream_file.F. Do this, and then run run_all again. The benchmarks may be run with or without
-the shared-object external functions.
-If the benchmark scripts run correctly, the benchmark job will finish with
-Display no longer set, about to run batch gif test
-Display still not set, about to run batch ps test
-Ended at Wed Nov 1 09:35:09 PST 2006
-Checking PLT, GIF and PS files.......
- PLT files look good.....
- GIF files look good.....
- PS files look good......
-
-The output is contained in several files:
-
- all_01nov06at0959.sol_log
- all_01nov06at0959.sol_err
- all_01nov06at0959.sol_plt
-
-where the name contains the date and time of the benchmark run, and the extension refers to the
-machine type or operating system. In addition a number of plot output files are created and
-compared to reference output by the benchmark script.
-
-In the benchmark directory are "official" output files from a number of operating systems. To
-compare your output logs, choose one to compare with your output. There are lines in the benchmark
-output which may differ from one run of the benchmarks to another and which do not indicate problems
-with the benchmark run. We may remove them by running the script "clean_ultra" and piping the output
-to a new file, for the official benchmark log file and the one just created
-
- > clean_ultra ansley_official.x86_64-linux_log > cleaned_ansley_official.x86_64-linux_log
- > clean_ultra all_01nov06at0959.sol_log > cleaned_all_01nov06at0959.sol_log
-
- > xdiff cleaned_ansley_official.x86_64-linux_log cleaned_all_01nov06at0959.sol_log
-
-Some differences will still always exist:
-
-1) The date of the Ferret run and the operating system are included in various outputs such
-as the Ferret symbol SESSION_DATE, values of labels which are written to the logs, or file
-attributes which are listed. These differences may be ignored.
-
-2) Values of PPL$XPIXEL and PPL$YPIXEL will differ; these are computed based on the display of the terminal where the benchmark job is run
-
-3) If you are comparing a log from a different operating system, there may be differences in the
-values of data in output. This might show up as missing_value=-9.9999998e+33f vs missing_value=-1.e-34f, or
-listings may differ in the least-significant positions. Most all Ferret results are single-prescision, so
-diffreences of that size are OK. Try to compare with output from a similar machine (32- or 64-bit for
-instance).
-
-4) At the end of the log files, there is a collection of outputs from "spawn ncdump file.nc" commands.
-Differences in the form of ncdump output, such as differently-placed commas, may exist especially if you
-are comparing logs from different operating systems.
-
-5) Some benchmark scripts involve the output of a spawn command. The speed with which this output is
-written to the log file may vary from run to run or system to system. Occasional garbled output is the
-result of this effect.
-
-
diff --git a/bench/README.md b/bench/README.md
new file mode 100644
index 0000000..51d6f7b
--- /dev/null
+++ b/bench/README.md
@@ -0,0 +1,130 @@
+## FERRET benchmarks README file
+
+Running the benchmarks and interpreting results. There are two methods
+for running the benchmarks.
+
+The automated testing uses a script to start a new instance of ferret to run
+each test, and does not display any plots. Expected results are given under
+the `bench/test_results` directory.
+
+The manual testing uses a script to run all the tests in a single instance of
+ferret. Plots are displayed as the tests are run. Expected results are given
+by the `bench/ansley_official*` files as well as under the `metafile_masters*`
+subdirectories.
+
+Note that these tests expect the nco utility programs `ncdump` and `ncatted`
+to be found on the system path. If there programs do not exist the tests will
+still run results will differ, particularly all ncdump output will be missing.
+The ImageMagick program `compare` is also used to compare plots.
+
+### Automated testing
+
+Build and install ferret, including setting the ferret environment variables
+using the appropriate `ferret_paths` script. You may wish to check that ferret
+is running properly, for example:
+
+> $ ferret
+> yes? use coads_climatology
+> yes? shade /l=5 sst
+> yes? quit
+
+To test, change to the `bench` subdirectory and enter `make run_tests`.
+This will test whichever ferret executable is first found on the system path
+(`which ferret`) and tests the external functions given under the directory
+specified by `$FER_EXTERNAL_FUNCTIONS`. A message is output to the console
+when each test script is run. On completion, plots and output are compared to
+expected results, with messages output to the console, differences in plots
+(using the `compare` program) saved to `*_diff.gif` files, and differences in
+output saved to `*.diff` files.
+
+Ideally there would be no `*_diff.gif` files because all the GIF plots are
+completely identical to the expected results. However, there are usually some
+of these plots due to inconsequential differences in the binary output.
+These `*_diff.gif` plots should be examined to see if there are any real
+differences in the plots, which are shown in bright solid red against a faded
+image of the original plot. Also, ideally the `*.diff` files are empty; if
+not, the differences should be examined for anything of real significance.
+
+To remove all the files generated from the testing, enter `make clean` when
+in the bench subdirectory.
+
+### Manual/Displayed testing
+
+After building Ferret, make a few simple tests for command-line reading,
+script reading, file reading, for example:
+
+> $ ferret
+> yes? list/L=1:5 L
+> yes? go ptest
+>
+> yes? use coads_climatology
+> yes? show data
+
+When Ferret is running, the benchmark tests will verify its performance. To
+run the benchmarks, in the /bench directory we will run the script `run_all`.
+Look at the start of `run_all`, and if you like, customize the section for
+machine type. This information is used to make the log file, and also to look
+for a machine-specific stream binary file.
+
+Run `run_all` and answer the questions. When you first run the shell script
+`run_all`, you may be coached to create a stream binary file for the machine
+by compiling and running the program `make_stream_file.F`. If so, do this,
+and then run `run_all` again. The benchmarks may be run with or without the
+shared-object external functions. If the benchmark scripts run correctly,
+the benchmark job will finish with:
+
+> Display no longer set, about to run batch gif test
+> Display still not set, about to run batch ps test
+> Ended at (some date)
+> Checking PLT, GIF and PS files.......
+> PLT files look good.....
+> GIF files look good.....
+> PS files look good......
+
+The output is contained in several files:
+
+> all_01nov16at0959.x86_64-linux_log
+> all_01nov16at0959.x86_64-linux_err
+> all_01nov16at0959.x86_64-linux_plt
+
+where the name contains the date and time of the benchmark run, and the extension
+refers to the machine type or operating system. In addition a number of plot
+output files are created and compared to reference output by the benchmark script.
+
+In the benchmark directory are "official" output files from supported operating
+systems. To compare your output logs, choose one to compare with your output.
+There are lines in the benchmark output which may differ from one run of the
+benchmarks to another and which do not indicate problems with the benchmark run.
+We may remove them by running the script `clean_ultra` (or `clean_draconian`)
+and piping the output to a new file, for the official benchmark log file and
+the one just created:
+
+> $ clean_ultra ansley_official.x86_64-linux_log \> cleaned_ansley_official.x86_64-linux_log
+> $ clean_ultra all_01nov16at0959.x86_64-linux_log \> cleaned_all_01nov16at0959.x86_64-linux_log
+> $ diff cleaned_ansley_official.x86_64-linux_log cleaned_all_01nov16at0959.x86_64-linux_log
+
+Some differences will still always exist:
+
+1. The date of the Ferret run and the operating system are included in various
+outputs such as the Ferret symbol `SESSION_DATE`, values of labels which are
+written to the logs, or file attributes which are listed. These differences
+may be ignored.
+
+2. Values of `PPL$XPIXEL` and `PPL$YPIXEL` will differ; these are computed
+based on the display of the terminal where the benchmark job is run.
+
+3. If you are comparing a log from a different operating system, there
+may be differences in the values of data in output. This might show up as
+`missing_value=-9.9999998e+33f` vs `missing_value=-1.e-34f`,
+or listings may differ in the least-significant positions. Differences of
+that size are okay.
+
+4. At the end of the log files, there is a collection of outputs from
+`spawn ncdump file.nc` commands. Differences in the form of ncdump output,
+such as differently-placed commas, may exist especially if you are comparing
+logs from different operating systems.
+
+5. Some benchmark scripts involve the output of a spawn command. The speed with
+which this output is written to the log file may vary from run to run or from
+system to system. Occasional garbled output is the result of this effect.
+
diff --git a/bench/RUN_TESTS.sh b/bench/RUN_TESTS.sh
index d29e61c..16cc028 100755
--- a/bench/RUN_TESTS.sh
+++ b/bench/RUN_TESTS.sh
@@ -64,7 +64,7 @@ touch $log_file $ncdump_file
touch F.cdf snoopy.dat
# set up the binary unformatted stream test file as a machine-specific link
-machine_stream="stream10by5_${machine}.unf"
+machine_stream="data/stream10by5_${machine}.unf"
if [ -r $machine_stream ]; then
rm -f stream_data_link.unf
ln -s $machine_stream stream_data_link.unf
@@ -83,8 +83,8 @@ fi
# set up proper stream testing jnl file - depends on endianness
# pretty much everything is little endian now
rm -f bn_test_stream.jnl
-ln -s bn_test_stream_little.jnl bn_test_stream.jnl
-# ln -s bn_test_stream_big.jnl bn_test_stream.jnl
+ln -s v5jnls/bn_test_stream_little.jnl bn_test_stream.jnl
+# ln -s v5jnls/bn_test_stream_big.jnl bn_test_stream.jnl
echo "Testing log output in $log_file"
echo "Testing errors in $err_file"
@@ -116,18 +116,7 @@ fi
# set up a generic data environment
echo "****** Restricting Ferret paths to bench directory ******" >> $log_file
-FER_DATA="."
-export FER_DATA
-FER_DESCR="."
-export FER_DESCR
-FER_DSETS="."
-export FER_DSETS
-FER_DAT="."
-export FER_DAT
-FER_GRIDS="."
-export FER_GRIDS
-FER_DIR="."
-export FER_DIR
+. ./bench_environment.sh
# always replace $HOME/.ferret with default.ferret so results are consistent
rm -f keep.ferret
@@ -201,7 +190,7 @@ if [ "$ispyferret" -ne 0 ]; then
echo "*** Running python script: $script" >> $err_file
echo "*** Running python script: $script" > all_ncdump.out
echo "Running python script: $script"
- $fver $feropts -python < $script 1>> $log_file 2>> $err_file
+ $fver $feropts -python < pyscripts/$script 1>> $log_file 2>> $err_file
if [ $? -ne 0 ]; then
echo "****** PYFERRET error: $script failed ******" >> $log_file
echo "****** PYFERRET error: $script failed ******" >> $err_file
@@ -232,27 +221,60 @@ exeferdir=`dirname $exebindir | sed -e 's/\\//\\\\\\//g'`
echo "s/$exeferdir/....../g" >> $cleanups
timeregex=`date +%_d.%h.%Y`
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
+timeregex=`date +%_d.%h.%Y | tr [a-z] [A-Z]`
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM/g" >> $cleanups
echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
# If date assigned to symbol and then symbol used elsewhere, any beginning space is dropped
timeregex=`date +%-d.%h.%Y`
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
+timeregex=`date +%-d.%h.%Y | tr [a-z] [A-Z]`
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/$timeregex.[0-9][0-9]:[0-9][0-9]/DD-MON-YYYY HH:MM/g" >> $cleanups
echo "s/$timeregex/DD-MON-YYYY/g" >> $cleanups
timeregex=`date +%_d.%h.%y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM:SS/g" >> $cleanups
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
+timeregex=`date +%_d.%h.%y | tr [a-z] [A-Z]`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM:SS/g" >> $cleanups
echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
# If date assigned to symbol and then symbol used elsewhere, any beginning space is dropped
timeregex=`date +%-d.%h.%y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM:SS/g" >> $cleanups
echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
+timeregex=`date +%-d.%h.%y | tr [a-z] [A-Z]`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM:SS/g" >> $cleanups
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/DD-MON-YY HH:MM/g" >> $cleanups
+echo "s/$timeregex/DD-MON-YY/g" >> $cleanups
+
+timeregex=`date +%m.%d.%Y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/MM-DD-YYYY HH:MM:SS/g" >> $cleanups
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/MM-DD-YYYY HH:MM/g" >> $cleanups
+echo "s/$timeregex/MM-DD-YYYY/g" >> $cleanups
timeregex=`date +%m.%d.%y`
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/MM-DD-YY HH:MM:SS/g" >> $cleanups
+echo "s/${timeregex}.[0-9][0-9]:[0-9][0-9]/MM-DD-YY HH:MM/g" >> $cleanups
echo "s/$timeregex/MM-DD-YY/g" >> $cleanups
timeregex=`date | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
echo "s/$timeregex/WKD MON DD HH:MM:SS ZZZ YYYY/g" >> $cleanups
+timeregex=`date | tr [a-z] [A-Z] | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
+echo "s/$timeregex/WKD MON DD HH:MM:SS ZZZ YYYY/g" >> $cleanups
timeregex=`date +%a.%h.%_d.%T.%Y | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
echo "s/$timeregex/WKD MON DD HH:MM:SS YYYY/g" >> $cleanups
+timeregex=`date +%a.%h.%_d.%T.%Y | tr [a-z] [A-Z] | sed -e 's/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/'`
+echo "s/$timeregex/WKD MON DD HH:MM:SS YYYY/g" >> $cleanups
echo 's/^randu2_randn2 [0-9 .-]+$/randu2_randn2 ....../' >> $cleanups
echo 's/the_time = [0-9][0-9]:[0-9][0-9]/the_time = HH:MM/g' >> $cleanups
diff --git a/bench/TEST_SCRIPTS b/bench/TEST_SCRIPTS
index 54a280f..53b77ce 100644
--- a/bench/TEST_SCRIPTS
+++ b/bench/TEST_SCRIPTS
@@ -278,6 +278,10 @@ bn_cache_management.jnl
bn_transp_choose.jnl
bn_iin_regrid.jnl
bn721_bug_fixes.jnl
+bn722_bug_fixes.jnl
+bn_tseries_modulo.jnl
+bn_huge_axis.jnl
+bn_save_as_global.jnl
!
! bn_gif, bn_all_ef, and bn_startupfile at end
!
diff --git a/bench/ansley_official.rhel6-64_err b/bench/ansley_official.rhel6-64_err
index 70bf695..65c61f8 100644
--- a/bench/ansley_official.rhel6-64_err
+++ b/bench/ansley_official.rhel6-64_err
@@ -1,33 +1,32 @@
Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley tmap 88045520 Sep 6 12:47 /home/users/ansley/build/trunk/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+Running FERRET version /home/users/ansley/build/working/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley tmap 111678682 Nov 29 16:49 /home/users/ansley/build/working/FERRET/fer/ferret_c
+Using external functions from /home/users/ansley/build/working/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: fix for ticket 2560: @SUM in X
+Note: github issue 1843, size of strided axis
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
-FER_DAT=.
-FER_DATA=.
+FER_DATA=. ./data
FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/tmap/ferret/linux/fer_dsets
-FER_DESCR=.
+FER_DAT=/home/users/tmap/ferret/rhel6-x86_64-linux
+FER_DESCR=. ./data
FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+FER_DSETS=. ./data
+FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/working/FERRET/external_functions/ext_func
FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib
-FER_GRIDS=.
+FER_GO=. ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls . ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls . /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib
+FER_GRIDS=. ./data
FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
FER_WEB_BROWSER=firefox
-PWD=/home/users/ansley/build/trunk/FERRET/bench
+PWD=/home/users/ansley/build/working/FERRET/bench
PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/rhel6-x86_64-linux/ext_func/pylibs
-Beginning at Wed Sep 6 12:57:37 PDT 2017
+Beginning at Wed Nov 29 17:31:49 PST 2017
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
Starting test: bn_syntax
- *** NOTE: /FILES is deprecated. Use /MEMBERS
SET EXPRESSION has not been given or implied
**ERROR: unknown command qualifier: notaqualifier
MESSAGE/CONTINUE/notaqualifier
@@ -155,14 +154,14 @@ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
**ERROR: command syntax: Trash after ENDIF
IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
- *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.sub
+ *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v4jnls/bn_if.sub
**ERROR: invalid command: ELSE can only be used between IF and ENDIF
else
**ERROR: invalid command: ENDIF can only be used in an IF clause
endif
**ERROR: invalid command: ELIF can only be used between IF and ENDIF
elif
- *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.jnl
+ *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v4jnls/bn_if.jnl
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
@@ -580,7 +579,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
Starting test: bn_mc
**TMAP ERR: Attempt to access unsupported feature
Descriptor requests delta of 0, please use 1
- Data set: ./coads_clim_bad_delta.des
+ Data set: ./data/coads_clim_bad_delta.des
set data coads_clim_bad_delta.des
**TMAP ERR: error in line definition
A gap or overlap exists in time axis
@@ -725,8 +724,10 @@ Replacing definition of axis XAX
Replacing definition of axis XAX
*** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
-Replacing definition of axis XAX
-Replacing definition of axis XAX
+ **ERROR: improper grid or axis definition: unrepairable repeated axis coords
+define axis/from/x/name=xax {6,6}
+ **ERROR: improper grid or axis definition: unrepairable repeated axis coords
+define axis/from/x/name=xax/edges {6,6}
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6,6}
*** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -1142,12 +1143,12 @@ Replacing definition of axis Z1
Replacing definition of grid G1
**TMAP ERR: syntax error in string
Unrecognized field type: DA2
- Data set: ./bn_delimited_read_date_time.dat
+ Data set: ./data/bn_delimited_read_date_time.dat
*** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
SET DATA/FORM=delimited/type="d, da2,date2" bn_delimited_read_date_time.dat
**TMAP ERR: syntax error in string
Unrecognized field type: DATE2
- Data set: ./bn_delimited_read_date_time.dat
+ Data set: ./data/bn_delimited_read_date_time.dat
*** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
SET DATA/FORM=delimited/type="da,da, date2" bn_delimited_read_date_time.dat
**ERROR: command syntax: ,,:
@@ -1247,7 +1248,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: regarding ./data/test_axes.nc ...
*** NOTE: Climatological axes test_irreg, test_seas defined
LISTing to file longaxspace.dat
Replacing definition of axis XAX
@@ -1272,7 +1273,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: regarding ./data/test_axes.nc ...
*** NOTE: Climatological axes test_irreg, test_seas defined
*** NOTE: Not deleted: TEST_IRREG
*** NOTE: Axis is in use by grid (G015)
@@ -1337,6 +1338,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: Not deleted: TIME1
*** NOTE: Axis is in use by grid GHB1
*** NOTE: Not deleted: TIME2
+ *** NOTE: Axis is in use by grid GJR1
+ *** NOTE: Not deleted: TIME5
+ *** NOTE: Axis is in use by grid GQO1
+ *** NOTE: Not deleted: TIME6
*** NOTE: Axis is in use by grid GCQ1
*** NOTE: Not deleted: TAX
*** NOTE: Axis is in use by grid GFORMAT
@@ -1378,7 +1383,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: Axis is in use by grid G10X5
*** NOTE: Not deleted: YAX
*** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: TIME5
+ *** NOTE: Not deleted: TIME3
*** NOTE: Axis is in use by grid GLB1
*** NOTE: Not deleted: COADSX
*** NOTE: Axis is in use by grid GG
@@ -1398,7 +1403,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: Axis is in use by grid G5DAY
*** NOTE: Not deleted: PSYU
*** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: TIME4
+ *** NOTE: Not deleted: TIME7
*** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: TEST_IRREG
*** NOTE: Axis is in use by grid (G015)
@@ -1467,6 +1472,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: Not deleted: TIME1
*** NOTE: Axis is in use by grid GHB1
*** NOTE: Not deleted: TIME2
+ *** NOTE: Axis is in use by grid GJR1
+ *** NOTE: Not deleted: TIME5
+ *** NOTE: Axis is in use by grid GQO1
+ *** NOTE: Not deleted: TIME6
*** NOTE: Axis is in use by grid GCQ1
*** NOTE: Not deleted: TAX
*** NOTE: Axis is in use by grid GFORMAT
@@ -1508,7 +1517,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: Axis is in use by grid G10X5
*** NOTE: Not deleted: YAX
*** NOTE: Axis is in use by grid GFORMAT
- *** NOTE: Not deleted: TIME5
+ *** NOTE: Not deleted: TIME3
*** NOTE: Axis is in use by grid GLB1
*** NOTE: Not deleted: COADSX
*** NOTE: Axis is in use by grid GG
@@ -1528,7 +1537,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: Axis is in use by grid G5DAY
*** NOTE: Not deleted: PSYU
*** NOTE: Axis is in use by grid G5DAY
- *** NOTE: Not deleted: TIME4
+ *** NOTE: Not deleted: TIME7
*** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: PSZW
*** NOTE: Axis is in use by grid G5_10
@@ -1690,9 +1699,9 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: Coordinates missing on axis LONGITUDE at subscript -2033
+ *** NOTE: Coordinates missing on axis LONGITUDE at subscript 2
*** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates missing on axis LATITUDE at subscript -2033
+ *** NOTE: Coordinates missing on axis LATITUDE at subscript 2
*** NOTE: A dummy axis of subscripts will be used
*** NOTE: Axis has repeated values -- micro-adjusting TIME
**ERROR: illegal limits: "DUMMY" does not exist at T=JAN-1990
@@ -2417,7 +2426,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: Changing the value of attribute (PSZT1).positive
*** NOTE: Changing the type of attribute (coadsx).modulo
*** NOTE: Changing the value of attribute (coadsx).modulo
- *** NOTE: Changing the value of attribute (TIME4).time_origin
+ *** NOTE: Changing the value of attribute (TIME7).time_origin
**ERROR: command syntax: enclose coordinate variable name in parentheses
list coadsx.units
**ERROR: variable unknown or not in data set: COADSX.UNITS
@@ -2536,10 +2545,10 @@ Replacing definition of axis X2AX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).units
- *** NOTE: Changing the value of attribute (TIME7).time_origin
- *** NOTE: Changing the value of attribute (TIME7).time_origin
+ *** NOTE: Changing the value of attribute (TIME12).units
+ *** NOTE: Changing the value of attribute (TIME12).units
+ *** NOTE: Changing the value of attribute (TIME12).time_origin
+ *** NOTE: Changing the value of attribute (TIME12).time_origin
*** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
Replacing definition of axis TIME
*** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
@@ -2721,7 +2730,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TIME9
+Replacing definition of axis TIME16
*** NOTE: grid GSQ1 used by data set coads_climatology
*** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
@@ -2804,9 +2813,9 @@ Starting test: bn_modnbd.jnl
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
Starting test: bn_fifty_files.jnl
- *** NOTE: Coordinates missing on axis LONGITUDE at subscript -1187
+ *** NOTE: Coordinates missing on axis LONGITUDE at subscript 2
*** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates missing on axis LATITUDE at subscript -1187
+ *** NOTE: Coordinates missing on axis LATITUDE at subscript 2
*** NOTE: A dummy axis of subscripts will be used
*** NOTE: Axis has repeated values -- micro-adjusting TIME
*** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
@@ -2824,7 +2833,7 @@ Starting test: bn_fifty_files.jnl
*** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
*** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
*** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: regarding ./data/climatological_axes.cdf ...
*** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
*** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
*** NOTE: A dummy axis of subscripts will be used
@@ -3510,7 +3519,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
*** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
*** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
- *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: TIME22: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
*** NOTE: Units on axis "ENS" are not recognized: count
*** NOTE: They will not be convertible:
PERMANENT data cleared from memory
@@ -3962,6 +3971,72 @@ Bailing out of external function "eofsvd_space":
Bailing out of external function "eofsvd_tfunc":
There are no spatial locations having complete time series.
+
+Bailing out of external function "eof_stat":
+ Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_stat":
+ Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
@@ -3975,10 +4050,57 @@ list eofsvd_stat(spacegap)
list eofsvd_space(spacegap)
**ERROR: error in external function
list eofsvd_tfunc(spacegap)
+Replacing definition of axis XAXIS
+ **ERROR: error in external function
+list eof_stat(spacetime, 1.0)
+ **ERROR: error in external function
+load eofs
+ **ERROR: error in external function
+list dot_t(v1, v1)
+ **ERROR: error in external function
+list dot_t(v1, v2)
+ **ERROR: error in external function
+list dot_t(v2, v1)
+ **ERROR: error in external function
+list dot_t(v2, v2)
+ **ERROR: error in external function
+load tafs
+ **ERROR: error in external function
+list dot_t(v1, v1)
+ **ERROR: error in external function
+list dot_t(v1, v2)
+ **ERROR: error in external function
+list dot_t(v2, v1)
+ **ERROR: error in external function
+list dot_t(v2, v2)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
Starting test: bn_eof_simple2
+Replacing definition of axis YAXIS
+Replacing definition of axis TAXIS
+ **ERROR: error in external function
+list eof_stat(spacetime, 1.0)
+ **ERROR: error in external function
+load eofs
+ **ERROR: error in external function
+list dot_t(v1, v1)
+ **ERROR: error in external function
+list dot_t(v1, v2)
+ **ERROR: error in external function
+list dot_t(v2, v1)
+ **ERROR: error in external function
+list dot_t(v2, v2)
+ **ERROR: error in external function
+load tafs
+ **ERROR: error in external function
+list dot_t(v1, v1)
+ **ERROR: error in external function
+list dot_t(v1, v2)
+ **ERROR: error in external function
+list dot_t(v2, v1)
+ **ERROR: error in external function
+list dot_t(v2, v2)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
@@ -4383,7 +4505,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: regarding ./data/climatological_axes.cdf ...
*** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -4611,10 +4733,12 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis XAXIS
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
Replacing definition of axis XAXIS
+Replacing definition of axis YAXIS
**ERROR: request exceeds memory setting
load bigvar
Replacing definition of axis LONGTIME
@@ -4725,6 +4849,7 @@ list f
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
Starting test: bn_date1900_array
+Replacing definition of axis TAXIS
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
@@ -4745,9 +4870,9 @@ Starting test: bn_spawn_size
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
Starting test: bn_polygon_log
- **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
+ **ERROR: value out of legal range: coordinates on log axis negative or too small : -0.850
poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
- **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
+ **ERROR: value out of legal range: coordinates on log axis negative or too small : -0.689E-02
poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -5073,7 +5198,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
ooooooooooooooooooooooooooooooooooooooooooo
**TMAP ERR: error in axis attributes
Calendar definitions on T and F axes must match
- Data file: ./ft_cal_one.nc
+ Data file: ./data/ft_cal_one.nc
SET DAT/FORM=CDF ft_cal_mixed.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -5326,9 +5451,9 @@ go/garbage tmp/testMe
**ERROR: unknown command qualifier: garbage
go/garbage "tmp/testMe"
**ERROR: unknown command qualifier: garbage
-go/garbage /home/users/ansley/build/trunk/FERRET/bench/tmp/testMe.jnl
+go/garbage /home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl
**ERROR: unknown command qualifier: garbage
-go/garbage "/home/users/ansley/build/trunk/FERRET/bench/tmp/testMe.jnl"
+go/garbage "/home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl"
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
@@ -5505,14 +5630,14 @@ Starting test: bn710_bug_fixes
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: unrepairable repeated axis coords on axis xax at subscript -4161
+ *** NOTE: unrepairable repeated axis coords on axis xax at subscript 2
*** NOTE: A dummy axis of subscripts will be used
- *** NOTE: unrepairable repeated axis coords on axis yax at subscript -4161
+ *** NOTE: unrepairable repeated axis coords on axis yax at subscript 2
*** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./unclosed_if.sub
+ *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v7jnls/unclosed_if.sub
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
@@ -6196,12 +6321,83 @@ Replacing definition of axis aline_edges
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn721_bug_fixes
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn722_bug_fixes
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Replacing definition of axis xaxis
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_tseries_modulo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_huge_axis
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_save_as_global
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ **ERROR: invalid command: Multi-valued Global string attributes not implemented
+ Variable: multistring
+LIST/FORMAT=CDF/asglobal/append/file=a.nc multistring
+LIST/FORMAT=CDF/asglobal/append/file=a.nc multistring
+ LISTing to file a.nc
+ **ERROR: invalid command: Global attribute must be a 1D variable length < 100
+ Variable: SST
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+ LISTing to file a.nc
+ **ERROR: invalid command: Global attribute must be a 1D variable length < 100
+ Variable: SST
+LIST/FORMAT=CDF/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
@@ -6326,4 +6522,4 @@ vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
Re-defining viewport LM6
Re-defining viewport UM6
*** NOTE: Cannot create new windows when batch mode set
-Ended at Wed Sep 6 13:02:20 PDT 2017
+Ended at Wed Nov 29 17:38:06 PST 2017
diff --git a/bench/ansley_official.rhel6-64_log b/bench/ansley_official.rhel6-64_log
index 1de5b5b..51f9501 100644
--- a/bench/ansley_official.rhel6-64_log
+++ b/bench/ansley_official.rhel6-64_log
@@ -1,28 +1,28 @@
Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/trunk/FERRET/fer/ferret_c
--rwxr-xr-x. 1 ansley tmap 88045520 Sep 6 12:47 /home/users/ansley/build/trunk/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+Running FERRET version /home/users/ansley/build/working/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 ansley tmap 111678682 Nov 29 16:49 /home/users/ansley/build/working/FERRET/fer/ferret_c
+Using external functions from /home/users/ansley/build/working/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: fix for ticket 2560: @SUM in X
+Note: github issue 1843, size of strided axis
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
-FER_DAT=.
-FER_DATA=.
+FER_DATA=. ./data
FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/tmap/ferret/linux/fer_dsets
-FER_DESCR=.
+FER_DAT=/home/users/tmap/ferret/rhel6-x86_64-linux
+FER_DESCR=. ./data
FER_DIR=.
-FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/trunk/FERRET/external_functions/ext_func
+FER_DSETS=. ./data
+FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/working/FERRET/external_functions/ext_func
FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
-FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib
-FER_GRIDS=.
+FER_GO=. ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls . ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls . /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib
+FER_GRIDS=. ./data
FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
FER_WEB_BROWSER=firefox
-PWD=/home/users/ansley/build/trunk/FERRET/bench
+PWD=/home/users/ansley/build/working/FERRET/bench
PYFER_EXTERNAL_FUNCTIONS=/home/users/tmap/ferret/rhel6-x86_64-linux/ext_func/pylibs
-Beginning at Wed Sep 6 12:57:37 PDT 2017
+Beginning at Wed Nov 29 17:31:49 PST 2017
! BN500_ALL.JNL
! - run all the benchmark tests
! - ordered (more or less) from least to most complex
@@ -174,10 +174,10 @@ GO bn_syntax
USE gtbc011
SHOW DATA/BRIEF
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
SHOW DATA
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3
@@ -190,7 +190,7 @@ SHOW DATA
SHOW DATA/VARIABLES
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -220,9 +220,9 @@ SHOW DATA/VARIABLES
time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
-SHOW DATA/FILES
+SHOW DATA/MEMBERS
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3
@@ -235,7 +235,7 @@ SHOW DATA/FILES
SHOW DATA/FULL
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -272,23 +272,23 @@ USE gtbc011
USE gt4d011
SHOW DATA/BRIEF
currently SET data sets:
- 1> ./gtbc011.cdf
- 2> ./gt4d011.cdf (default)
+ 1> ./data/gtbc011.cdf
+ 2> ./data/gt4d011.cdf (default)
SHOW DATA/BRIEF gtbc011
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
! ... save and restore data set
SET DATA 1
SET DATA/SAVE
SHOW DATA/BRIEF
currently SET data sets:
- 1> ./gtbc011.cdf (default)
- 2> ./gt4d011.cdf
+ 1> ./data/gtbc011.cdf (default)
+ 2> ./data/gt4d011.cdf
SET DATA 2
SHOW DATA/BRIEF
currently SET data sets:
- 1> ./gtbc011.cdf
- 2> ./gt4d011.cdf (default)
+ 1> ./data/gtbc011.cdf
+ 2> ./data/gt4d011.cdf (default)
SET DATA/RESTORE
CANCEL DATA/ALL
! ... EZ data sets
@@ -925,7 +925,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1]
TIME: 15-MAR-1983 10:00
E: N/A
F: N/A
- DATA SET: ./gtbc011.cdf
+ DATA SET: ./data/gtbc011.cdf
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 0
@@ -942,7 +942,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u]
TIME: 15-MAR-1983 10:00
E: N/A
F: N/A
- DATA SET: ./gtbc011.cdf
+ DATA SET: ./data/gtbc011.cdf
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 0
@@ -961,7 +961,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u[d=2]]
TIME: 17-AUG-1982 12:00
E: N/A
F: N/A
- DATA SET: ./gtbc011.cdf
+ DATA SET: ./data/gtbc011.cdf
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 1
@@ -975,7 +975,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=gtbc011,g=u[d=gt4d011]]
TIME: 17-AUG-1982 12:00
E: N/A
F: N/A
- DATA SET: ./gtbc011.cdf
+ DATA SET: ./data/gtbc011.cdf
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 1
@@ -1635,7 +1635,7 @@ show var/d=clim_airt_lev
A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
show data clim_airt_lev
currently SET data sets:
- 1> ./clim_airt_lev.cdf (default)
+ 1> ./data/clim_airt_lev.cdf (default)
name title I J K L
AIRT CLIMATOLOGICAL AIR TEMPERATURE 1:160 1:100 ... 1:12
------------------------------
@@ -1716,7 +1716,7 @@ set var/titl=test4 t4[d=snoopy.dat]
set var/titl=test3 t3[d=snoopy.dat]
show data
currently SET data sets:
- 1> ./clim_airt_lev.cdf
+ 1> ./data/clim_airt_lev.cdf
name title I J K L
AIRT CLIMATOLOGICAL AIR TEMPERATURE 1:160 1:100 ... 1:12
------------------------------
@@ -1729,7 +1729,7 @@ show data
show data/full 1
currently SET data sets:
- 1> ./clim_airt_lev.cdf
+ 1> ./data/clim_airt_lev.cdf
name title I J K L
AIRT CLIMATOLOGICAL AIR TEMPERATURE 1:160 1:100 ... 1:12
@@ -9617,7 +9617,7 @@ GO bn_ez ! changed from bn200_ez 8/10/95
FILE EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
V1 V1 1:5 ... ... ...
@@ -9638,7 +9638,7 @@ LIST V1
5 / 5: 0.478000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
V1 V1 1:5 ... ... ...
@@ -9647,7 +9647,7 @@ SHOW DATA
FILE/VAR="X1,X2" EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:5 ... ... ...
@@ -9661,7 +9661,7 @@ SHOW DATA/FULL
/SKIP = 0
/COLUMNS = 2
LIST X1,X2
- DATA SET: ./EZ.DAT
+ DATA SET: ./data/EZ.DAT
X: 0.5 to 5.5
Column 1: X1
Column 2: X2
@@ -9673,7 +9673,7 @@ LIST X1,X2
5 / 5: 0.478000 0.533700
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:5 ... ... ...
X2 X2 1:5 ... ... ...
@@ -9683,7 +9683,7 @@ SHOW DATA
FILE/VAR="X1,X2"/COLUMNS=6 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:15 ... ... ...
@@ -9717,7 +9717,7 @@ LIST X1
15 / 15: 0.469000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:15 ... ... ...
X2 X2 1:15 ... ... ...
@@ -9727,15 +9727,15 @@ SHOW DATA
FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
- X1 X1 1:15 ... ... ...
+ X1 X1 1:9 ... ... ...
on grid (G008) with -1.E+34 for missing data
- X=0.5:15.5
- X2 X2 1:15 ... ... ...
+ X=0.5:9.5
+ X2 X2 1:9 ... ... ...
on grid (G008) with -1.E+34 for missing data
- X=0.5:15.5
+ X=0.5:9.5
/FORMAT = FREE
/SKIP = 2
@@ -9755,7 +9755,7 @@ LIST X1
9 / 9: 0.469000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:9 ... ... ...
X2 X2 1:9 ... ... ...
@@ -9765,15 +9765,15 @@ SHOW DATA
FILE/VAR="X1,-,X2"/COLUMNS=6/SKIP=2 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
- X1 X1 1:15 ... ... ...
+ X1 X1 1:9 ... ... ...
on grid (G008) with -1.E+34 for missing data
- X=0.5:15.5
- X2 X2 1:15 ... ... ...
+ X=0.5:9.5
+ X2 X2 1:9 ... ... ...
on grid (G008) with -1.E+34 for missing data
- X=0.5:15.5
+ X=0.5:9.5
/FORMAT = FREE
/SKIP = 2
@@ -9790,7 +9790,7 @@ LIST X1
6 / 6: 0.514700
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:6 ... ... ...
X2 X2 1:6 ... ... ...
@@ -9800,15 +9800,15 @@ SHOW DATA
FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2/FORMAT=(3(F14.0,F7.0)) EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
- X1 X1 1:15 ... ... ...
+ X1 X1 1:9 ... ... ...
on grid (G008) with -1.E+34 for missing data
- X=0.5:15.5
- X2 X2 1:15 ... ... ...
+ X=0.5:9.5
+ X2 X2 1:9 ... ... ...
on grid (G008) with -1.E+34 for missing data
- X=0.5:15.5
+ X=0.5:9.5
/FORMAT = (3(F14.0,F7.0))
/SKIP = 2
@@ -9828,7 +9828,7 @@ LIST X1
9 / 9: 0.469000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:9 ... ... ...
X2 X2 1:9 ... ... ...
@@ -9838,15 +9838,15 @@ SHOW DATA
FILE/VAR="X1,X2"/COLUMNS=6/SKIP=1/FORMAT="(3(F14.0,F7.0)/)" EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
- X1 X1 1:15 ... ... ...
+ X1 X1 1:12 ... ... ...
on grid (G008) with -1.E+34 for missing data
- X=0.5:15.5
- X2 X2 1:15 ... ... ...
+ X=0.5:12.5
+ X2 X2 1:12 ... ... ...
on grid (G008) with -1.E+34 for missing data
- X=0.5:15.5
+ X=0.5:12.5
/FORMAT = (3(F14.0,F7.0)/)
/SKIP = 1
@@ -9863,7 +9863,7 @@ LIST X1
6 / 6: 0.470000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:6 ... ... ...
X2 X2 1:6 ... ... ...
@@ -9873,7 +9873,7 @@ SHOW DATA
SET VARIABLE/TITLE="first variable" X1
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 first variable 1:6 ... ... ...
X2 X2 1:6 ... ... ...
@@ -9885,7 +9885,7 @@ DEFINE GRID/X=XEZ1/Y=EZ GEZ1
FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ1 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:3 1:20480 ... ...
@@ -9911,7 +9911,7 @@ LIST X1
5 / 5: 0.478000 0.515000 0.469000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:3 1:5 ... ...
X2 X2 1:3 1:5 ... ...
@@ -9925,7 +9925,7 @@ DEFINE GRID/X=XEZ2/Y=YEZ/Z=ZEZ/T=EZ GEZ2
FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ2 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:1 1:3 1:2 1:20480
@@ -9953,7 +9953,7 @@ LIST X1
2 / 2: 0.435000 0.444000 0.470000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:1 1:3 1:2 1:2
X2 X2 1:1 1:3 1:2 1:2
@@ -9969,7 +9969,7 @@ DEFINE GRID/X=XEZ3 GEZ3
FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:8 ... ... ...
@@ -9996,7 +9996,7 @@ LIST X1
8 / 8: 0.000000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:8 ... ... ...
X2 X2 1:8 ... ... ...
@@ -10459,18 +10459,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 2.6.32-696.6.3.el6.x86_64 64-bit"
+FERRET_VERSION = "7.23"
+FERRET_PLATFORM = "Linux 2.6.32-696.13.2.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
-DELTA_CPU = "10.3804"
-CLOCK_SECS = "12.144"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:57:49"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
+DELTA_CPU = "12.2161"
+CLOCK_SECS = "13.913"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:32:03"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
PEAK_MEMORY = "0"
@@ -10491,18 +10491,18 @@ show symbol/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 2.6.32-696.6.3.el6.x86_64 64-bit"
+FERRET_VERSION = "7.23"
+FERRET_PLATFORM = "Linux 2.6.32-696.13.2.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
-DELTA_CPU = "0.018998"
-CLOCK_SECS = "12.164"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:57:49"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
+DELTA_CPU = "0.018997"
+CLOCK_SECS = "13.933"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:32:03"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
PEAK_MEMORY = "0"
@@ -10515,9 +10515,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
SPAWN_OK = "1"
SPAWN_STATUS = "0"
S1 = "hello"
@@ -10529,17 +10529,17 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
SPAWN_OK = "1"
SPAWN_STATUS = "0"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
SPAWN_OK = "1"
SPAWN_STATUS = "0"
S1 = "hello"
@@ -10575,9 +10575,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
! show the upper left coordinate limits labels as symbols
plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
show symbol lab*
-LAB1 = "FERRET (beta/debug) Ver.7.21"
+LAB1 = "FERRET (beta/debug) Ver.7.23"
LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "06-SEP-2017 12:57:49"
+LAB3 = "29-NOV-2017 17:32:03"
LABX = "X"
LAB4 = "Y : 10"
LABNUM_Y = "4"
@@ -10672,18 +10672,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 2.6.32-696.6.3.el6.x86_64 64-bit"
+FERRET_VERSION = "7.23"
+FERRET_PLATFORM = "Linux 2.6.32-696.13.2.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-SESSION_PID = "38582"
-DELTA_CPU = "0.034994"
-CLOCK_SECS = "12.199"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:57:49"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+SESSION_PID = "47338"
+DELTA_CPU = "0.040994"
+CLOCK_SECS = "13.974"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:32:03"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
PEAK_MEMORY = "201"
@@ -12328,7 +12328,7 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e-7
! multiple variable test
set region/i=95:96/j=41:42/k=2/l=5
LIST/FORMAT=comma/precision=5 u,v
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
LONGITUDE: 135.5W to 133.5W
LATITUDE: 1.5S to 0.833S
DEPTH (m): 15
@@ -14555,7 +14555,7 @@ list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijklave
set data/format=cdf test_fil0
show data/full
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -14743,7 +14743,7 @@ list/format=cdf/append/file=test_fil.cdf ijklave
set data/format=cdf test_fil
show data/full
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -14864,7 +14864,7 @@ set data reverse_axes
show data/var
currently SET data sets:
- 1> ./reverse_axes.cdf (default)
+ 1> ./data/reverse_axes.cdf (default)
name title I J K L
FCN_NORM COS(X/10)*SIN(Y/2) 1:51 1:21 ... ...
@@ -14881,7 +14881,7 @@ show data/var
list/x=180 fcn_norm,fcn_rev
WARNING: Listed variables have ambiguous coordinates on axes: Y
- DATA SET: ./reverse_axes.cdf
+ DATA SET: ./data/reverse_axes.cdf
LONGITUDE: 180E
Column 1: FCN_NORM is COS(X/10)*SIN(Y/2)
Column 2: FCN_REV is COS(X/10)*SIN(Y/2)
@@ -15076,7 +15076,7 @@ stat temp[g=u] - temp[g=u at ave,gx=u at lin,gy=u at lin,gz=u at lin,gt=u at lin] ! == 0
TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
E: N/A
F: N/A
- DATA SET: ./gtsa056_1.cdf
+ DATA SET: ./data/gtsa056_1.cdf
Total # of data points: 120 (6*5*2*2*1*1)
# flagged as bad data: 0
@@ -15105,7 +15105,7 @@ stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u] ! == 0
TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
E: N/A
F: N/A
- DATA SET: ./gtsa056_1.cdf
+ DATA SET: ./data/gtsa056_1.cdf
Total # of data points: 120 (6*5*2*2*1*1)
# flagged as bad data: 0
@@ -19275,7 +19275,7 @@ GO bn_mc
! - 11/06/97 - added a set mode/last verify
CAN MODE VERIFY
currently SET data sets:
- 1> ./coads_clim.des (default)
+ 1> ./data/coads_clim.des (default)
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:6
@@ -19333,7 +19333,7 @@ CAN MODE VERIFY
T (hour): 0.7575 to 4383.7
E: N/A
F: N/A
- DATA SET: ./coads_clim.des
+ DATA SET: ./data/coads_clim.des
Total # of data points: 97200 (180*90*1*6*1*1)
# flagged as bad data: 44263
@@ -19342,7 +19342,7 @@ CAN MODE VERIFY
Mean value: 17.806 (unweighted average)
Standard deviation: 9.6933
currently SET data sets:
- 1> ./coads_clim.des
+ 1> ./data/coads_clim.des
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:6
@@ -19351,7 +19351,7 @@ CAN MODE VERIFY
time range: 366 to 4018.4
- 2> ./coads_clim_irreg.des (default)
+ 2> ./data/coads_clim_irreg.des (default)
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -19400,7 +19400,7 @@ CAN MODE VERIFY
T (hour): 0.7575 to 4383.7
E: N/A
F: N/A
- DATA SET: ./coads_clim_irreg.des
+ DATA SET: ./data/coads_clim_irreg.des
Total # of data points: 48600 (180*90*1*3*1*1)
# flagged as bad data: 21459
@@ -19409,7 +19409,7 @@ CAN MODE VERIFY
Mean value: 17.359 (unweighted average)
Standard deviation: 9.8799
currently SET data sets:
- 1> ./coads_clim_missing_step1.des (default)
+ 1> ./data/coads_clim_missing_step1.des (default)
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -19419,7 +19419,7 @@ CAN MODE VERIFY
time range: 366 to 3287.9
currently SET data sets:
- 1> ./coads_clim_missing_stepN.des (default)
+ 1> ./data/coads_clim_missing_stepN.des (default)
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -23131,7 +23131,7 @@ show grid/t=15-JAN-1982:15-JAN-1983 temp
PSXT1 LONGITUDE 160mr 130.5E 70.5W full
PSYT LATITUDE 100 i 28.836S 48.568N full
PSZT DEPTH (m) 27 i- 5 3824 full
- TIME4 TIME 168mr 15-JAN-1982 14:00 07-JUN-1983 13:00 full
+ TIME7 TIME 168mr 15-JAN-1982 14:00 07-JUN-1983 13:00 full
L T TBOX TBOXLO TSTEP (hour)
1> 15-JAN-1982 14:00:00 73 14-JAN-1982 01:30:00 52632
@@ -23560,7 +23560,7 @@ set mem /size=10
use weird_name1.cdf
sh data
currently SET data sets:
- 1> ./weird_name1.cdf (default)
+ 1> ./data/weird_name1.cdf (default)
name title I J K L
v1 lower case v1 1:20 ... ... ...
v2-and-minus
@@ -24924,7 +24924,7 @@ show axis/x xax
I X XBOX XBOXLO
1> 5.5 1 5
- 2> 6.000001 1.E-06 6
+ 2> 6 7.5E-07 6
define axis/from/x/name=xax/edges {6,6,7}
show axis/x xax
name axis # pts start end
@@ -25353,7 +25353,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Wed Sep 6 12:58:02 PDT 2017
+Wed Nov 29 17:32:17 PST 2017
GO bn_reset
cancel mode verify
@@ -25496,15 +25496,15 @@ SHOW MEM/FREE
cancel memory/all
set mode diagnostic
list/i=2 SAMPLEI(sst[l=1,y=-2:2],{30,40,50}) ! only I=2 from result
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C09,V02 C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
eval (C01,V02 C: 7 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25539,11 +25539,11 @@ cancel memory/all
-DELETE SST M:174 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1
-DELETE (C01,V02 M:177 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1
list/l=1/y=-2:2 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1
const_v {30,...} M:177 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25569,11 +25569,11 @@ cancel memory/all
-DELETE SST M:154 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1
-DELETE EX#1 M:174 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1
list/l=1/y=-2:2 SAMPLEI(a ,{30,40,50})
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 8 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1
const_v {30,...} M:174 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25607,13 +25607,13 @@ cancel memory/all
-DELETE A M:177 dset: 1 I: 30 30 J: 45 46 K: -999 -999 L: 1 1
-DELETE A M:181 dset: 1 I: 40 40 J: 45 46 K: -999 -999 L: 1 1
list/l=1/y=-2:2 SAMPLEI(sst[i=30:40],{30,40,50})
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C09,V02 C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1
eval (C01,V02 C: 7 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1
@@ -25635,18 +25635,18 @@ list/l=1/y=-2:2 SAMPLEI(sst[i=30:40],{30,40,50})
1S / 45: 28.1514 28.5607 ....
let/quiet a = sst[i=30:40]
-DELETE (C09,V02 M:163 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
-DELETE (C01,V02 M:177 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
cancel memory/all
-DELETE SST M:173 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1
list/l=1/y=-2:2 SAMPLEI(a,{30,40,50})
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 8 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1
const_v {30,...} M:173 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25670,9 +25670,9 @@ cancel memory/all
-DELETE EX#1 M:177 dset: 1 I: 1 3 J: 45 46 K: -999 -999 L: 1 1
-DELETE SST M:181 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1
list/l=1/y=-2:2 SAMPLEI(a,{30}) ! sample at just 1 point
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1
const_v {30} M:181 dset: 0 I: 1 1 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25697,12 +25697,12 @@ cancel memory/all
-DELETE A M:175 dset: 1 I: 30 40 J: 45 46 K: -999 -999 L: 1 1
-DELETE EX#1 M:177 dset: 1 I: 1 1 J: 45 46 K: -999 -999 L: 1 1
list/l=1/y=-2:2 SAMPLEI(a,30) ! sample at just 1 point
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C11,V02 C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1
eval (C01,V02 C: 7 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1
@@ -25732,16 +25732,16 @@ cancel memory/all
let/quiet fsst = sst[x=@fln] ! fill holes to allow @iin to work
let/quiet a = fsst[i=@iin] ! @iin forces all-at-once
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
list/l=1/y=-2:2 SAMPLEI(a,{30,40,50})
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 8 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid FSST C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 46 K: -999 -999 L: 1 1
const_v {30,...} M:181 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25779,16 +25779,16 @@ cancel memory/all
! now test optimization that uses large memory chunks if available
cancel memory/all
load/l=1/y=0 sst[I=30:50]
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1
reading SST M:177 dset: 1 I: 30 50 J: 45 45 K: -999 -999 L: 1 1
list/l=1/y=0 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1
const_v {30,...} M:174 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25812,16 +25812,16 @@ cancel memory/all
-DELETE EX#1 M:173 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1
-DELETE SST M:177 dset: 1 I: 30 50 J: 45 45 K: -999 -999 L: 1 1
load/l=1/y=0 sst[I=30:39]
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1
reading SST M:177 dset: 1 I: 30 39 J: 45 45 K: -999 -999 L: 1 1
list/l=1/y=0 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1
const_v {30,...} M:173 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25849,16 +25849,16 @@ cancel memory/all
-DELETE EX#1 M:174 dset: 1 I: 1 3 J: 45 45 K: -999 -999 L: 1 1
-DELETE SST M:177 dset: 1 I: 30 39 J: 45 45 K: -999 -999 L: 1 1
load/l=1/y=0 sst[I=30:40]
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1
reading SST M:177 dset: 1 I: 30 40 J: 45 45 K: -999 -999 L: 1 1
list/l=1/y=0 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1
const_v {30,...} M:174 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25884,16 +25884,16 @@ cancel memory/all
-DELETE SST M:163 dset: 1 I: 50 50 J: 45 45 K: -999 -999 L: 1 1
-DELETE SST M:177 dset: 1 I: 30 40 J: 45 45 K: -999 -999 L: 1 1
load/l=1/y=0 sst[I=30:41]
- dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ dealloc dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1
reading SST M:177 dset: 1 I: 30 41 J: 45 45 K: -999 -999 L: 1 1
list/l=1/y=0 SAMPLEI(sst,{30,40,50})
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: -999 -999 J: 45 45 K: -999 -999 L: 1 1
const_v {30,...} M:163 dset: 0 I: 1 3 J: -999 -999 K: -999 -999 L: -999 -999
@@ -25970,7 +25970,7 @@ Dynamic grids:
ABSTRACT X 99999999 r 1 1.E+08
(AX004) LATITUDE 5 r 1S 1N
normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME7 TIME 3mr 16-JAN 06:00 17-MAR 02:58
cancel memory/all
let/quiet a = sst[l=1,y=1s:1n:.5]
list SAMPLEI(a,{30,40,50})
@@ -25992,7 +25992,7 @@ Dynamic grids:
ABSTRACT X 99999999 r 1 1.E+08
(AX012) LATITUDE 5 r 1S 1N
normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME7 TIME 3mr 16-JAN 06:00 17-MAR 02:58
! sampling a pseudo-variable
list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26155,9 +26155,9 @@ list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C09,V02 C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
- allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
+ allocate dynamic grid (G017) ABSTRACT COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
eval (C01,V02 C: 6 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
const_v {31,...} M:175 dset: 0 I: 1 7 J: -999 -999 K: -999 -999 L: -999 -999
@@ -26743,7 +26743,7 @@ cancel memory/all
SHOW DATA
currently SET data sets:
- 1> ./bn_strides.cdf (default)
+ 1> ./data/bn_strides.cdf (default)
name title I J K L
VAR L*1000 + K*100 + J*10 + I 1:4 1:3 1:2 1:1
MIDVAR VAR 1:9 1:8 1:7 1:6
@@ -27564,7 +27564,7 @@ canc data/all
dealloc dynamic grid (G002) (AX032) (AX031) (AX033) TAX1_10
-DELETE BIGVAR M:179 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
dealloc dynamic grid (G011) (AX029) YUNEVEN ZAX1_6 TAX1_4
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
-DELETE UNE-NVAR M:170 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1
-DELETE UNE-NVAR M:180 dset: 1 I: 1 9 J: 1 1 K: 1 1 L: 1 1
@@ -27657,7 +27657,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
canc data/all
dealloc dynamic grid (G011) (AX033) (AX031) (AX032) TAX1_10
-DELETE BIGVAR M:170 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=zxy bn_strides
list bigvar[i=3:9:2]
@@ -27748,7 +27748,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
canc data/all
dealloc dynamic grid (G011) (AX031) (AX033) (AX029) TAX1_10
-DELETE BIGVAR M:180 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! now with xytvar
cancel region
@@ -27849,7 +27849,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX033) (AX031) NORMAL (AX032)
-DELETE XYTVAR M:170 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=yx bn_strides
show grid xytvar
@@ -27947,7 +27947,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX031) (AX033) NORMAL (AX029)
-DELETE XYTVAR M:180 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=tyx bn_strides
show grid xytvar
@@ -28045,7 +28045,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX033) (AX031) NORMAL (AX032)
-DELETE XYTVAR M:170 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=txy bn_strides
show grid xytvar
@@ -28143,7 +28143,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX031) (AX033) NORMAL (AX029)
-DELETE XYTVAR M:180 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! map into Z instead of T
use/order=zxy bn_strides
@@ -28244,7 +28244,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX033) (AX031) (AX032) NORMAL
-DELETE XYTVAR M:170 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
@@ -28293,7 +28293,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX031) (AX033) (AX029) TAX1_6
-DELETE MIDVAR M:180 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=-yx bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28327,7 +28327,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX033) (AX031) (AX032) TAX1_6
-DELETE MIDVAR M:180 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=y-x bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28361,7 +28361,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX031) (AX033) (AX029) TAX1_6
-DELETE MIDVAR M:180 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! reference output
use/order=tyx bn_strides
@@ -28393,7 +28393,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX033) (AX031) (AX032) ZAX1_7
-DELETE MIDVAR M:170 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
use/order=-t-y-x bn_strides
@@ -28428,7 +28428,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX031) (AX033) (AX029) ZAX1_7
-DELETE MIDVAR M:170 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! reference output
use/order=txy bn_strides
@@ -28460,7 +28460,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX033) (AX031) (AX032) ZAX1_7
-DELETE MIDVAR M:180 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=-t-x-y bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28494,7 +28494,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G011) (AX031) (AX033) (AX029) ZAX1_7
-DELETE MIDVAR M:180 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
GO bn_reset bn_non_COARDS_netCDF
cancel mode verify
@@ -28511,7 +28511,7 @@ use non_COARDS
show data
currently SET data sets:
- 1> ./non_COARDS.cdf (default)
+ 1> ./data/non_COARDS.cdf (default)
name title I J K L
UNORDERED_AXIS
disordered axis 1:5 ... ... ...
@@ -28619,7 +28619,7 @@ show grid MASKED_SST
COADSX1 LONGITUDE 180 r 1E 180E full
COADSY1 LATITUDE 90 r 1N 90N full
normal Z
- TIME4 TIME 1mr 16-JAN 06:00 16-JAN 06:00 full
+ TIME7 TIME 1mr 16-JAN 06:00 16-JAN 06:00 full
show grid COADSX
GRID GAB6
name axis # pts start end subset
@@ -28637,7 +28637,7 @@ show grid COADSY
show data
currently SET data sets:
- 1> ./non_COARDS.cdf (default)
+ 1> ./data/non_COARDS.cdf (default)
name title I J K L
UNORDERED_AXIS
disordered axis 1:5 ... ... ...
@@ -28735,7 +28735,7 @@ GO bn_cache_hits.sub sst
stat $1
!-> stat sst
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
reading SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -28746,7 +28746,7 @@ stat $1
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -28755,7 +28755,7 @@ stat $1
Mean value: 16.52 (unweighted average)
Standard deviation: 10.139
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -28767,7 +28767,7 @@ stat $1
-DELETE I M:179 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -28778,7 +28778,7 @@ stat $1
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -28790,17 +28790,17 @@ stat $1
define axis/x=130e:80w:1 xtrop
stat $1[gx=xtrop]
!-> stat sst[gx=xtrop]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
strip regrid on X: SST --> (G010) @LIN
found SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -28810,7 +28810,7 @@ stat $1[gx=xtrop]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28819,7 +28819,7 @@ stat $1[gx=xtrop]
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
-DELETE SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -28832,15 +28832,15 @@ stat $1[gx=xtrop]
-DELETE I M:179 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
strip regrid on X: SST --> (G010) @LIN
found SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -28850,7 +28850,7 @@ stat $1[gx=xtrop]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28863,21 +28863,21 @@ let $1x = $1[gx=xtrop]
!-> DEFINE VARIABLE sstx = sst[gx=xtrop]
stat $1x
!-> stat sstx
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
-DELETE SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SSTX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
eval SSTX C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
strip regrid on X: SST --> (G010) @LIN
found SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SST[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -28886,7 +28886,7 @@ stat $1x
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28895,7 +28895,7 @@ stat $1x
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -28907,7 +28907,7 @@ stat $1x
-DELETE I M:170 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
found SSTX M:173 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
@@ -28918,7 +28918,7 @@ stat $1x
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28928,22 +28928,22 @@ stat $1x
Standard deviation: 9.8848
define grid/x=xtrop gx
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
-DELETE SSTX M:173 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
-DELETE SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
stat $1[g=gx]
!-> stat sst[g=gx]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
strip regrid on X: SST --> (G010) @LIN
found SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -28953,7 +28953,7 @@ stat $1[g=gx]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28962,7 +28962,7 @@ stat $1[g=gx]
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
-DELETE SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -28975,15 +28975,15 @@ stat $1[g=gx]
-DELETE I M:179 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
strip regrid on X: SST --> (G010) @LIN
found SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -28993,7 +28993,7 @@ stat $1[g=gx]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29005,19 +29005,19 @@ stat $1[g=gx]
define axis/y=20s:20n:1 ytrop
stat $1[gx=xtrop,gy=ytrop]
!-> stat sst[gx=xtrop,gy=ytrop]
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
-DELETE SST M:179 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP YTROP NORMAL TIME4
- dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME4
- allocate dynamic grid (G010) XTROP YTROP NORMAL TIME4
+ allocate dynamic grid (G010) XTROP YTROP NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME7
+ allocate dynamic grid (G010) XTROP YTROP NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP YTROP NORMAL TIME4
+ allocate dynamic grid (G010) XTROP YTROP NORMAL TIME7
strip regrid on X: SST --> (G010) @LIN
found SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid XY
regrid SST M:179 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME7
SEA SURFACE TEMPERATURE
regrid: 1 deg on X, 1 deg on Y
@@ -29027,7 +29027,7 @@ stat $1[gx=xtrop,gy=ytrop]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29036,7 +29036,7 @@ stat $1[gx=xtrop,gy=ytrop]
Mean value: 26.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME7
-DELETE SST M:179 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29049,16 +29049,16 @@ stat $1[gx=xtrop,gy=ytrop]
-DELETE I M:179 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP YTROP NORMAL TIME4
- dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME4
- allocate dynamic grid (G010) XTROP YTROP NORMAL TIME4
+ allocate dynamic grid (G010) XTROP YTROP NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME7
+ allocate dynamic grid (G010) XTROP YTROP NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP YTROP NORMAL TIME4
+ allocate dynamic grid (G010) XTROP YTROP NORMAL TIME7
strip regrid on X: SST --> (G010) @LIN
found SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid XY
regrid SST M:179 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME7
SEA SURFACE TEMPERATURE
regrid: 1 deg on X, 1 deg on Y
@@ -29068,7 +29068,7 @@ stat $1[gx=xtrop,gy=ytrop]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29079,13 +29079,13 @@ stat $1[gx=xtrop,gy=ytrop]
define grid/like=$1/x=xtrop/y=ytrop gxyt
!-> define grid/like=sst/x=xtrop/y=ytrop gxyt
- dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP YTROP NORMAL TIME7
-DELETE SST M:179 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
stat $1[g=gxyt]
!-> stat sst[g=gxyt]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
strip regrid on X: SST --> GXYT @LIN
@@ -29101,7 +29101,7 @@ stat $1[g=gxyt]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29110,7 +29110,7 @@ stat $1[g=gxyt]
Mean value: 26.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29133,7 +29133,7 @@ stat $1[g=gxyt]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29146,7 +29146,7 @@ let $1xyt = $1[g=gxyt]
!-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
stat $1xyt
!-> stat sstxyt
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SSTXYT C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
@@ -29160,7 +29160,7 @@ stat $1xyt
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29169,7 +29169,7 @@ stat $1xyt
Mean value: 26.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29191,7 +29191,7 @@ stat $1xyt
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29202,9 +29202,9 @@ stat $1xyt
let $1xyt = $1[g=gxyt]
!-> DEFINE VARIABLE sstxyt = sst[g=gxyt]
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
-DELETE SSTXYT M:173 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
stat $1xyt
!-> stat sstxyt
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29220,7 +29220,7 @@ stat $1xyt
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29229,7 +29229,7 @@ stat $1xyt
Mean value: 26.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29251,7 +29251,7 @@ stat $1xyt
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29262,9 +29262,9 @@ stat $1xyt
stat $1[x=@ave]
!-> stat sst[x=@ave]
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
strip --> SST[X=20E:20E(380)@AVE,D=1]
found SST M:180 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -29278,7 +29278,7 @@ stat $1[x=@ave]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29287,7 +29287,7 @@ stat $1[x=@ave]
Mean value: 14.429 (unweighted average)
Standard deviation: 10.445
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29299,7 +29299,7 @@ stat $1[x=@ave]
-DELETE I M:166 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST M:170 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
@@ -29310,7 +29310,7 @@ stat $1[x=@ave]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29323,11 +29323,11 @@ let $1xave = $1[x=@ave]
!-> DEFINE VARIABLE sstxave = sst[x=@ave]
stat $1xave
!-> stat sstxave
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SSTXAVE C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
eval SSTXAVE C: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST M:170 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
@@ -29339,7 +29339,7 @@ stat $1xave
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29348,7 +29348,7 @@ stat $1xave
Mean value: 14.429 (unweighted average)
Standard deviation: 10.445
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29360,7 +29360,7 @@ stat $1xave
-DELETE I M:168 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SSTXAVE M:166 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
@@ -29371,7 +29371,7 @@ stat $1xave
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29382,9 +29382,9 @@ stat $1xave
stat $1[x=@sbx]
!-> stat sst[x=@sbx]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
strip --> SST[X=20E:20E(380)@SBX:3,D=1]
strip moduloing SST on X axis: 0 181 dset: 1
@@ -29400,7 +29400,7 @@ stat $1[x=@sbx]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -29409,7 +29409,7 @@ stat $1[x=@sbx]
Mean value: 16.633 (unweighted average)
Standard deviation: 10.112
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29421,7 +29421,7 @@ stat $1[x=@sbx]
-DELETE I M:153 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST M:157 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -29433,7 +29433,7 @@ stat $1[x=@sbx]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -29446,11 +29446,11 @@ let $1sbx = $1[x=@sbx]
!-> DEFINE VARIABLE sstsbx = sst[x=@sbx]
stat $1sbx
!-> stat sstsbx
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SSTSBX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
eval SSTSBX C: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST M:157 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -29462,7 +29462,7 @@ stat $1sbx
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -29471,7 +29471,7 @@ stat $1sbx
Mean value: 16.633 (unweighted average)
Standard deviation: 10.112
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29483,7 +29483,7 @@ stat $1sbx
-DELETE I M:152 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SSTSBX M:153 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -29494,7 +29494,7 @@ stat $1sbx
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -29513,11 +29513,11 @@ GO bn_cache_hits.sub sst5
stat $1
!-> stat sst5
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
eval SST5 C: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST M:168 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1
@@ -29531,7 +29531,7 @@ stat $1
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -29540,7 +29540,7 @@ stat $1
Mean value: 21.52 (unweighted average)
Standard deviation: 10.139
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29552,7 +29552,7 @@ stat $1
-DELETE I M:152 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST5 M:151 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -29563,7 +29563,7 @@ stat $1
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -29575,17 +29575,17 @@ stat $1
define axis/x=130e:80w:1 xtrop
stat $1[gx=xtrop]
!-> stat sst5[gx=xtrop]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
strip regrid on X: SST5 --> (G010) @LIN
found SST5 M:151 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid SST5 M:152 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SST+5
regrid: 1 deg on X
@@ -29595,7 +29595,7 @@ stat $1[gx=xtrop]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29604,7 +29604,7 @@ stat $1[gx=xtrop]
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
-DELETE SST5 M:152 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29617,15 +29617,15 @@ stat $1[gx=xtrop]
-DELETE I M:152 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
strip regrid on X: SST5 --> (G010) @LIN
found SST5 M:151 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid SST5 M:152 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SST+5
regrid: 1 deg on X
@@ -29635,7 +29635,7 @@ stat $1[gx=xtrop]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29648,21 +29648,21 @@ let $1x = $1[gx=xtrop]
!-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
stat $1x
!-> stat sst5x
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
-DELETE SST5 M:152 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5X C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
eval SST5X C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
strip regrid on X: SST5 --> (G010) @LIN
found SST5 M:151 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
regrid SST5 M:152 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SST5[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -29671,7 +29671,7 @@ stat $1x
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29680,7 +29680,7 @@ stat $1x
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29692,7 +29692,7 @@ stat $1x
-DELETE I M:148 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
found SST5X M:150 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
@@ -29703,7 +29703,7 @@ stat $1x
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29715,15 +29715,15 @@ stat $1x
define grid/x=xtrop gx
stat $1[g=gx]
!-> stat sst5[g=gx]
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
found SST5 M:152 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SST+5
regrid: 1 deg on X
@@ -29733,7 +29733,7 @@ stat $1[g=gx]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29742,7 +29742,7 @@ stat $1[g=gx]
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29754,13 +29754,13 @@ stat $1[g=gx]
-DELETE I M:148 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- allocate dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ allocate dynamic grid (G010) XTROP COADSY NORMAL TIME7
found SST5 M:152 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
SST+5
regrid: 1 deg on X
@@ -29770,7 +29770,7 @@ stat $1[g=gx]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29782,7 +29782,7 @@ stat $1[g=gx]
define axis/y=20s:20n:1 ytrop
stat $1[gx=xtrop,gy=ytrop]
!-> stat sst5[gx=xtrop,gy=ytrop]
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
strip regrid on X: SST5 --> GXYT @LIN
@@ -29798,7 +29798,7 @@ stat $1[gx=xtrop,gy=ytrop]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29807,7 +29807,7 @@ stat $1[gx=xtrop,gy=ytrop]
Mean value: 31.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29830,7 +29830,7 @@ stat $1[gx=xtrop,gy=ytrop]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29841,12 +29841,12 @@ stat $1[gx=xtrop,gy=ytrop]
define grid/like=$1/x=xtrop/y=ytrop gxyt
!-> define grid/like=sst5/x=xtrop/y=ytrop gxyt
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
stat $1[g=gxyt]
!-> stat sst5[g=gxyt]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
found SST5 M:148 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
@@ -29859,7 +29859,7 @@ stat $1[g=gxyt]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29868,7 +29868,7 @@ stat $1[g=gxyt]
Mean value: 31.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29891,7 +29891,7 @@ stat $1[g=gxyt]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29904,7 +29904,7 @@ let $1xyt = $1[g=gxyt]
!-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
stat $1xyt
!-> stat sst5xyt
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5XYT C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
@@ -29918,7 +29918,7 @@ stat $1xyt
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29927,7 +29927,7 @@ stat $1xyt
Mean value: 31.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29949,7 +29949,7 @@ stat $1xyt
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29960,27 +29960,27 @@ stat $1xyt
let $1xyt = $1[g=gxyt]
!-> DEFINE VARIABLE sst5xyt = sst5[g=gxyt]
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
-DELETE SST5XYT M:146 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
-DELETE SST5X M:150 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME4
+ dealloc dynamic grid (G010) XTROP COADSY NORMAL TIME7
-DELETE SST5 M:152 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1
-DELETE SST5 M:148 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
-DELETE SST5 M:151 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
-DELETE SSTSBX M:153 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
-DELETE SSTXAVE M:166 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
-DELETE SSTXYT M:173 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
stat $1xyt
!-> stat sst5xyt
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5XYT C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5 C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
eval SST5XYT C: 6 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
strip regrid on X: SST5 --> GXYT @LIN
@@ -29998,7 +29998,7 @@ stat $1xyt
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -30007,7 +30007,7 @@ stat $1xyt
Mean value: 31.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30029,7 +30029,7 @@ stat $1xyt
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -30040,9 +30040,9 @@ stat $1xyt
stat $1[x=@ave]
!-> stat sst5[x=@ave]
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
strip --> SST5[X=20E:20E(380)@AVE,D=1]
eval SST5 C: 7 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -30059,7 +30059,7 @@ stat $1[x=@ave]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -30068,7 +30068,7 @@ stat $1[x=@ave]
Mean value: 19.429 (unweighted average)
Standard deviation: 10.445
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30080,7 +30080,7 @@ stat $1[x=@ave]
-DELETE I M:152 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST5 M:151 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
@@ -30091,7 +30091,7 @@ stat $1[x=@ave]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -30104,11 +30104,11 @@ let $1xave = $1[x=@ave]
!-> DEFINE VARIABLE sst5xave = sst5[x=@ave]
stat $1xave
!-> stat sst5xave
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5XAVE C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
eval SST5XAVE C: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST5 M:151 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
@@ -30120,7 +30120,7 @@ stat $1xave
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -30129,7 +30129,7 @@ stat $1xave
Mean value: 19.429 (unweighted average)
Standard deviation: 10.445
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30141,7 +30141,7 @@ stat $1xave
-DELETE I M:150 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST5XAVE M:152 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
@@ -30152,7 +30152,7 @@ stat $1xave
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -30163,9 +30163,9 @@ stat $1xave
stat $1[x=@sbx]
!-> stat sst5[x=@sbx]
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
strip --> SST5[X=20E:20E(380)@SBX:3,D=1]
strip moduloing SST5 on X axis: 0 181 dset: 1
@@ -30181,7 +30181,7 @@ stat $1[x=@sbx]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -30190,7 +30190,7 @@ stat $1[x=@sbx]
Mean value: 21.633 (unweighted average)
Standard deviation: 10.112
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30202,7 +30202,7 @@ stat $1[x=@sbx]
-DELETE I M:143 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST5 M:146 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -30214,7 +30214,7 @@ stat $1[x=@sbx]
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -30227,11 +30227,11 @@ let $1sbx = $1[x=@sbx]
!-> DEFINE VARIABLE sst5sbx = sst5[x=@sbx]
stat $1sbx
!-> stat sst5sbx
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5SBX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
eval SST5SBX C: 6 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST5 M:146 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -30243,7 +30243,7 @@ stat $1sbx
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -30252,7 +30252,7 @@ stat $1sbx
Mean value: 21.633 (unweighted average)
Standard deviation: 10.112
CONFUSE
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30264,7 +30264,7 @@ stat $1sbx
-DELETE I M:142 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
found SST5SBX M:143 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
@@ -30275,7 +30275,7 @@ stat $1sbx
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -30297,7 +30297,7 @@ set mode diag
let a = i[i=1:10]
say `a,return=isize` ! no evaluation of a required -- just context
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -30331,18 +30331,18 @@ let a = XSEQUENCE(j[j=1:5])
-DELETE A M:177 dset: 0 I: 1 10 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
-DELETE SST5SBX M:143 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
-DELETE SST5XAVE M:152 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
-DELETE SST5XYT M:153 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
- dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4
+ dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME7
-DELETE SST5 M:146 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
-DELETE SST5 M:148 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
-DELETE SST5 M:150 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1
-DELETE SST5 M:151 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
-DELETE SST5 M:166 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1
-DELETE SST5 M:173 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
say `a,return=isize` ! evaluate it now
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30520,7 +30520,7 @@ cancel mode verify
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
-DELETE A M:153 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
- canceling dset ./coads_climatology.cdf
+ canceling dset ./data/coads_climatology.cdf
-DELETE SST M:157 dset: 1 I: 1 180 J: 1 90 K: -999 -999 L: 1 1
-DELETE SST M:168 dset: 1 I: 0 181 J: 1 90 K: -999 -999 L: 1 1
-DELETE SST M:170 dset: 1 I: -999 -999 J: 1 90 K: -999 -999 L: 1 1
@@ -30670,7 +30670,7 @@ show grid gg1
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
COADSY LATITUDE 90 r 89S 89N
normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME7 TIME 3mr 16-JAN 06:00 17-MAR 02:58
let f = sst[y=20s:20n:.1,d=coads_climatology]
DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg2
cancel variable f
@@ -30680,7 +30680,7 @@ show grid gg2
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
(AX009) LATITUDE 401 r 20S 20N
normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME7 TIME 3mr 16-JAN 06:00 17-MAR 02:58
show grid/dynamic
Dynamic grids:
no implicit grids
@@ -30719,7 +30719,7 @@ show grid
(AX026) LONGITUDE 301 r 0E 30E full
COADSY LATITUDE 90 r 89S 89N full
normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+ TIME7 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
! The SET GRID (default) definition should be protected -- not altered
load/d=coads_climatology sst[y=-10:10:.1,l=1,x=160e]
@@ -30731,7 +30731,7 @@ show grid
COADSX LONGITUDE 180mr 21E 19E(379) 1 pt
(AX018) LATITUDE 201 r 10S 10N 201 pts
normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58 1 pt
+ TIME7 TIME 3mr 16-JAN 06:00 17-MAR 02:58 1 pt
show grid/dynamic
Dynamic grids:
GRID (G012) use count: 1
@@ -30739,7 +30739,7 @@ Dynamic grids:
COADSX LONGITUDE 180mr 21E 19E(379)
(AX018) LATITUDE 201 r 10S 10N
normal Z
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME7 TIME 3mr 16-JAN 06:00 17-MAR 02:58
! deliberate errors
set mode ignore
@@ -31207,7 +31207,7 @@ list/l=1:4 sst
17-MAR / 3: 28.3538
16-AUG / 4: ....
list/l=1:4 jsst, nsst
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
TIME: JAN to APR JULIAN
LONGITUDE: 179E
LATITUDE: 1S
@@ -34532,7 +34532,7 @@ let tsorted_indices = sorti( sst[i=61:66,y=39,z=0,l=2])
let tsorted_sst = samplei(sst, tsorted_indices)
list tsorted_indices, tsorted_sst
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
X: 0.5 to 6.5
TIME: FEB
Column 1: TSORTED_INDICES[Y=39N] is SORTI( SST[I=61:66,Y=39,Z=0,L=2])
@@ -34624,7 +34624,7 @@ let tsorted_indices = sortj( sst[j=65:70,x=141,z=0,l=2])
let tsorted_sst = samplej(sst, tsorted_indices)
list tsorted_indices, tsorted_sst
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Y: 0.5 to 6.5
TIME: FEB
Column 1: TSORTED_INDICES[X=141E] is SORTJ( SST[J=65:70,X=141,Z=0,L=2])
@@ -34799,7 +34799,7 @@ let tsorted_indices = sortl(sst)
let tsorted_sst = samplel(sst, tsorted_indices[x=141,y=39,z=0])
list tsorted_indices, tsorted_sst
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
T: 0.5 to 3.5
LONGITUDE: 141E
LATITUDE: 39N
@@ -34888,7 +34888,7 @@ list vwnd
let tsorted_indices = sortl(vwnd)
let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
list tsorted_indices, tsorted_wnd
- DATA SET: ./coads_vwnd.cdf
+ DATA SET: ./data/coads_vwnd.cdf
T: 0.5 to 61
LONGITUDE: 161W
LATITUDE: 39N
@@ -34987,7 +34987,7 @@ stat tsorted_wnd
T: 0.5 to 61
E: N/A
F: N/A
- DATA SET: ./coads_vwnd.cdf
+ DATA SET: ./data/coads_vwnd.cdf
Total # of data points: 60 (1*1*1*60*1*1)
# flagged as bad data: 60
@@ -35066,7 +35066,6 @@ go bench_eof
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
! Test the bail-out from eof_space, eof_stat, eof_tfunc
set mode ignore
@@ -35123,7 +35122,7 @@ list/i=1:2 eoftime
15-FEB / 2: 0.08800 1.41147
17-MAR / 3: -1.26637 -0.62953
-
+! The functions need updating for double precision Ferret
exit/script
GO bn_reset
@@ -35649,7 +35648,7 @@ stat mapped
T: N/A
E: N/A
F: N/A
- DATA SET: ./tripolar_subset.nc
+ DATA SET: ./data/tripolar_subset.nc
Total # of data points: 451 (41*11*1*1*1*1)
# flagged as bad data: 79
@@ -35683,7 +35682,7 @@ list/L=15:20 tax_datestring(t[gt=temp],temp,"day")
05-DEC-1982 00 / 19:"05-DEC-1982"
11-DEC-1982 02 / 20:"11-DEC-1982"
list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: NOV-1982 to DEC-1982
Column 1: TAX_DAYFRAC(T[GT=TEMP],TEMP)
Column 2: EX#2 is TAX_DAYFRAC(T[GT=TEMP],TEMP)*24.
@@ -35695,7 +35694,7 @@ list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
05-DEC-1982 00 / 19: 0.000000 0.0000
11-DEC-1982 02 / 20: 0.083333 2.0000
list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: NOV-1982 to DEC-1982
Column 1: TAX_DAY(T[GT=TEMP],TEMP)
Column 2: TAX_JDAY(T[GT=TEMP],TEMP)
@@ -35707,7 +35706,7 @@ list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
05-DEC-1982 00 / 19: 5.0000 339.000
11-DEC-1982 02 / 20: 11.0000 345.000
list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: NOV-1982 to DEC-1982
Column 1: TAX_MONTH(T[GT=TEMP],TEMP)
Column 2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
@@ -35768,7 +35767,7 @@ use coads_climatology
! SAMPLEXY will interpolate to geth the result,
! SAMPLEIJ requires an exact match.
list/l=1 samplexy(sst,{321,323.5,325}, {1,1,1}), sampleij(sst,{321,323,324.5}, {1,1,1})
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
X: 0.5 to 3.5
TIME: JAN
Column 1: EX#1 is SAMPLEXY(SST,{321,323.5,325}, {1,1,1})
@@ -37201,7 +37200,7 @@ GO bn_delimited_read
! test delimiited (spreadsheet) reads in Ferret
! look at the file
-spawn cat bn_delimited_read_1.dat
+spawn cat data/bn_delimited_read_1.dat
col1,col2,col3,col4,col5
one,,1.1,24S,130E,,1e1,"word 1"
two,,2.2,24N,130W,2S,,"word 2"
@@ -37215,7 +37214,7 @@ extra line
file/format=delim bn_delimited_read_1.dat
show data/var
currently SET data sets:
- 1> ./bn_delimited_read_1.dat (default)
+ 1> ./data/bn_delimited_read_1.dat (default)
name title I J K L
V1 V1 1:7 ... ... ...
@@ -37271,7 +37270,7 @@ show data/var
/DELIMITERS="\t,\,"
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 7.5
Column 1: V1
Column 2: V2
@@ -37295,7 +37294,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
! manually name the variables while still automatically analyzing data types
file/format=delim/var=a1,a2,a3,a4,a5,a6,a7 bn_delimited_read_1.dat
list a1,a2,a3,a4,a5,a6,a7
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 7.5
Column 1: A1 is a1
Column 2: A2 is a2
@@ -37317,7 +37316,7 @@ list a1,a2,a3,a4,a5,a6,a7
! note that v3 is correctly analyzed as numeric
file/format=delim/skip=1 bn_delimited_read_1.dat
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: V1
Column 2: V2 is V2 (all values missing)
@@ -37340,7 +37339,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
! insist that all columns be treated as string
file/format=delim/skip=1/type=text bn_delimited_read_1.dat
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: V1
Column 2: V2
@@ -37364,16 +37363,16 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
file/format=delim/skip=1/type=text/var=a1,a2,a3,a4,a5 bn_delimited_read_1.dat
show data
currently SET data sets:
- 1> ./bn_delimited_read_1.dat (default)
+ 1> ./data/bn_delimited_read_1.dat (default)
name title I J K L
- A1 a1 1:7 ... ... ...
- A2 a2 1:7 ... ... ...
- A3 a3 1:7 ... ... ...
- A4 a4 1:7 ... ... ...
- A5 a5 1:7 ... ... ...
+ A1 a1 1:6 ... ... ...
+ A2 a2 1:6 ... ... ...
+ A3 a3 1:6 ... ... ...
+ A4 a4 1:6 ... ... ...
+ A5 a5 1:6 ... ... ...
list a1,a2,a3,a4,a5
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: A1 is a1
Column 2: A2 is a2
@@ -37391,7 +37390,7 @@ list a1,a2,a3,a4,a5
! insist that all columns be treated as numeric
file/format=delim/skip=1/type=numeric bn_delimited_read_1.dat
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: V1
Column 2: V2
@@ -37414,7 +37413,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
! insist that all columns be treated as latitude
file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: V1 is V1 (degrees_north)(Latitude)
Column 2: V2 is V2 (degrees_north)(Latitude)
@@ -37435,14 +37434,14 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
6 / 6: .... .... .... .... .... .... .... .... .... ....
! read only the first line of the file
-spawn head -1 bn_delimited_read_1.dat
+spawn head -1 data/bn_delimited_read_1.dat
col1,col2,col3,col4,col5
define axis/x=1:1:1 x1
define grid/x=x1 g1
columns/grid=g1 bn_delimited_read_1.dat
! note 10 columns because auto-analysis of file doesnt stop at 1st record
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 1
Column 1: V1
Column 2: V2
@@ -37458,7 +37457,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
I / *: "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
list c1,c2,c3,c4,c5
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 1
Column 1: C1 is c1
Column 2: C2 is c2
@@ -37478,14 +37477,14 @@ cancel data/all
file/form=delimited bn_delimited_read_2.dat
show data
currently SET data sets:
- 1> ./bn_delimited_read_2.dat (default)
+ 1> ./data/bn_delimited_read_2.dat (default)
name title I J K L
V1 V1 1:3 ... ... ...
file/form=delimited/delimiter=" " bn_delimited_read_2.dat
show data
currently SET data sets:
- 1> ./bn_delimited_read_2.dat (default)
+ 1> ./data/bn_delimited_read_2.dat (default)
name title I J K L
V1 V1 1:3 ... ... ...
(Julian days since 1-Jan-1900)
@@ -37495,7 +37494,7 @@ show data
(all values missing)
list v1,v2
- DATA SET: ./bn_delimited_read_2.dat
+ DATA SET: ./data/bn_delimited_read_2.dat
X: 0.5 to 3.5
Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
Column 2: V2 is V2 (hours)(Time of day)
@@ -37506,7 +37505,7 @@ list v1,v2
! ==========
! look at the date/time file
-spawn cat bn_delimited_read_date_time.dat
+spawn cat data/bn_delimited_read_date_time.dat
12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
@@ -37516,7 +37515,7 @@ spawn cat bn_delimited_read_date_time.dat
! Note that record 3 has syntax errors in the first 4 fields
columns bn_delimited_read_date_time.dat
list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37533,7 +37532,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
4 / 4: "12/4/99" "1999-03-04" "03:00" "16:45:36.5" 36496.0 36221.0 3.0000 16.7601
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
V2 V2 1:4 ... ... ...
@@ -37565,7 +37564,7 @@ T0 = 1-JAN-1900
columns/type=date bn_delimited_read_date_time.dat
list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
Column 2: V2 is V2 (days)(Julian days since 1-Jan-1900)
@@ -37582,7 +37581,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
4 / 4: 36496.0 36221.0 .... .... 36496.0 36221.0 .... ....
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
(Julian days since 1-Jan-1900)
@@ -37604,7 +37603,7 @@ show data 2
columns/type=time bn_delimited_read_date_time.dat
list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1 is V1 (hours)(Time of day)
Column 2: V2 is V2 (hours)(Time of day)
@@ -37621,7 +37620,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
4 / 4: .... .... 3.0000 16.7601 .... .... 3.0000 16.7601
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
(Time of day)
@@ -37643,7 +37642,7 @@ show data 2
columns/type="da,dat,ti,tim,date, date, time, time" bn_delimited_read_date_time.dat
list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
Column 2: V2 is V2 (days)(Julian days since 1-Jan-1900)
@@ -37660,7 +37659,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
4 / 4: 36496.0 36221.0 3.0000 16.7601 36496.0 36221.0 3.0000 16.7601
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
(Julian days since 1-Jan-1900)
@@ -37682,7 +37681,7 @@ show data 2
columns/type="da,-,ti,-,date,-,time,-" bn_delimited_read_date_time.dat
list v1,v3,v5,v7
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
Column 2: V3 is V3 (hours)(Time of day)
@@ -37695,7 +37694,7 @@ list v1,v3,v5,v7
4 / 4: 36496.0 3.0000 36496.0 3.0000
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
(Julian days since 1-Jan-1900)
@@ -37710,7 +37709,7 @@ show data 2
! delimiters can be used to break up individual fields
file/form=delim/delim="/" bn_delimited_read_date_time.dat
list V1,V2,V3,V4
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37722,7 +37721,7 @@ list V1,V2,V3,V4
3 / 3: 12.0000 3.00000 "99x,1999-03-03x,2:00x, 15:45x,12" 3.00000
4 / 4: 12.0000 4.00000 "99,1999-03-04,03:00, 16:45:36.5, 12" 4.00000
! ---
-sp cat bn_delimited_read_date_time.dat
+sp cat data/bn_delimited_read_date_time.dat
12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
@@ -37730,7 +37729,7 @@ sp cat bn_delimited_read_date_time.dat
! ---
file/form=delim/delim="/,\," bn_delimited_read_date_time.dat
list V1,V2,V3,V4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37747,7 +37746,7 @@ list V1,V2,V3,V4,v5,v6,v7,v8
4 / 4: 12.0000 4.00000 "99" "1999-03-04" "03:00" "16:45:36.5" 12.0000 4.00000
file/form=delim/delim="/,\,,-" bn_delimited_read_date_time.dat
list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37766,7 +37765,7 @@ list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
4 / 4: 12.0000 4.00000 "99" 1999.00 3.00000 "04" "03:00" "16:45:36.5" 12.0000 4.00000
file/form=delim/delim="/,\,,-,:" bn_delimited_read_date_time.dat
list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37789,377 +37788,377 @@ cancel data/all
columns/skip=1 bn_delimited_read_CO2.dat
show data/full
currently SET data sets:
- 1> ./bn_delimited_read_CO2.dat (default)
+ 1> ./data/bn_delimited_read_CO2.dat (default)
name title I J K L
- V1 V1 1:20 ... ... ...
+ V1 V1 1:19 ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V2 V2 1:20 ... ... ...
+ X=0.5:19.5
+ V2 V2 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V3 V3 1:20 ... ... ...
+ X=0.5:19.5
+ V3 V3 1:19 ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V4 V4 1:20 ... ... ...
+ X=0.5:19.5
+ V4 V4 1:19 ... ... ...
(Julian days since 1-Jan-1900)
Data type = NUMERIC
Conversion /TYPE=DATE
days on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V5 V5 1:20 ... ... ...
+ X=0.5:19.5
+ V5 V5 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V6 V6 1:20 ... ... ...
+ X=0.5:19.5
+ V6 V6 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V7 V7 1:20 ... ... ...
+ X=0.5:19.5
+ V7 V7 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V8 V8 1:20 ... ... ...
+ X=0.5:19.5
+ V8 V8 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V9 V9 1:20 ... ... ...
+ X=0.5:19.5
+ V9 V9 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V10 V10 1:20 ... ... ...
+ X=0.5:19.5
+ V10 V10 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V11 V11 1:20 ... ... ...
+ X=0.5:19.5
+ V11 V11 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V12 V12 1:20 ... ... ...
+ X=0.5:19.5
+ V12 V12 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V13 V13 1:20 ... ... ...
+ X=0.5:19.5
+ V13 V13 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V14 V14 1:20 ... ... ...
+ X=0.5:19.5
+ V14 V14 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V15 V15 1:20 ... ... ...
+ X=0.5:19.5
+ V15 V15 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V16 V16 1:20 ... ... ...
+ X=0.5:19.5
+ V16 V16 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V17 V17 1:20 ... ... ...
+ X=0.5:19.5
+ V17 V17 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V18 V18 1:20 ... ... ...
+ X=0.5:19.5
+ V18 V18 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V19 V19 1:20 ... ... ...
+ X=0.5:19.5
+ V19 V19 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V20 V20 1:20 ... ... ...
+ X=0.5:19.5
+ V20 V20 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V21 V21 1:20 ... ... ...
+ X=0.5:19.5
+ V21 V21 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V22 V22 1:20 ... ... ...
+ X=0.5:19.5
+ V22 V22 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V23 V23 1:20 ... ... ...
+ X=0.5:19.5
+ V23 V23 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V24 V24 1:20 ... ... ...
+ X=0.5:19.5
+ V24 V24 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V25 V25 1:20 ... ... ...
+ X=0.5:19.5
+ V25 V25 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V26 V26 1:20 ... ... ...
+ X=0.5:19.5
+ V26 V26 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V27 V27 1:20 ... ... ...
+ X=0.5:19.5
+ V27 V27 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V28 V28 1:20 ... ... ...
+ X=0.5:19.5
+ V28 V28 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V29 V29 1:20 ... ... ...
+ X=0.5:19.5
+ V29 V29 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V30 V30 1:20 ... ... ...
+ X=0.5:19.5
+ V30 V30 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V31 V31 1:20 ... ... ...
+ X=0.5:19.5
+ V31 V31 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V32 V32 1:20 ... ... ...
+ X=0.5:19.5
+ V32 V32 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V33 V33 1:20 ... ... ...
+ X=0.5:19.5
+ V33 V33 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V34 V34 1:20 ... ... ...
+ X=0.5:19.5
+ V34 V34 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V35 V35 1:20 ... ... ...
+ X=0.5:19.5
+ V35 V35 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V36 V36 1:20 ... ... ...
+ X=0.5:19.5
+ V36 V36 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V37 V37 1:20 ... ... ...
+ X=0.5:19.5
+ V37 V37 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V38 V38 1:20 ... ... ...
+ X=0.5:19.5
+ V38 V38 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V39 V39 1:20 ... ... ...
+ X=0.5:19.5
+ V39 V39 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V40 V40 1:20 ... ... ...
+ X=0.5:19.5
+ V40 V40 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V41 V41 1:20 ... ... ...
+ X=0.5:19.5
+ V41 V41 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V42 V42 1:20 ... ... ...
+ X=0.5:19.5
+ V42 V42 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V43 V43 1:20 ... ... ...
+ X=0.5:19.5
+ V43 V43 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V44 V44 1:20 ... ... ...
+ X=0.5:19.5
+ V44 V44 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V45 V45 1:20 ... ... ...
+ X=0.5:19.5
+ V45 V45 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V46 V46 1:20 ... ... ...
+ X=0.5:19.5
+ V46 V46 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V47 V47 1:20 ... ... ...
+ X=0.5:19.5
+ V47 V47 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V48 V48 1:20 ... ... ...
+ X=0.5:19.5
+ V48 V48 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V49 V49 1:20 ... ... ...
+ X=0.5:19.5
+ V49 V49 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V50 V50 1:20 ... ... ...
+ X=0.5:19.5
+ V50 V50 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V51 V51 1:20 ... ... ...
+ X=0.5:19.5
+ V51 V51 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V52 V52 1:20 ... ... ...
+ X=0.5:19.5
+ V52 V52 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V53 V53 1:20 ... ... ...
+ X=0.5:19.5
+ V53 V53 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V54 V54 1:20 ... ... ...
+ X=0.5:19.5
+ V54 V54 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V55 V55 1:20 ... ... ...
+ X=0.5:19.5
+ V55 V55 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V56 V56 1:20 ... ... ...
+ X=0.5:19.5
+ V56 V56 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V57 V57 1:20 ... ... ...
+ X=0.5:19.5
+ V57 V57 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V58 V58 1:20 ... ... ...
+ X=0.5:19.5
+ V58 V58 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V59 V59 1:20 ... ... ...
+ X=0.5:19.5
+ V59 V59 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V60 V60 1:20 ... ... ...
+ X=0.5:19.5
+ V60 V60 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V61 V61 1:20 ... ... ...
+ X=0.5:19.5
+ V61 V61 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V62 V62 1:20 ... ... ...
+ X=0.5:19.5
+ V62 V62 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V63 V63 1:20 ... ... ...
+ X=0.5:19.5
+ V63 V63 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V64 V64 1:20 ... ... ...
+ X=0.5:19.5
+ V64 V64 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V65 V65 1:20 ... ... ...
+ X=0.5:19.5
+ V65 V65 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V66 V66 1:20 ... ... ...
+ X=0.5:19.5
+ V66 V66 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V67 V67 1:20 ... ... ...
+ X=0.5:19.5
+ V67 V67 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V68 V68 1:20 ... ... ...
+ X=0.5:19.5
+ V68 V68 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V69 V69 1:20 ... ... ...
+ X=0.5:19.5
+ V69 V69 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V70 V70 1:20 ... ... ...
+ X=0.5:19.5
+ V70 V70 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V71 V71 1:20 ... ... ...
+ X=0.5:19.5
+ V71 V71 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
- V72 V72 1:20 ... ... ...
+ X=0.5:19.5
+ V72 V72 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G022) with -1.E+34 for missing data
- X=0.5:20.5
+ X=0.5:19.5
/DELIMITERS="\t,\,"
/FORMAT = DELIMITED
/SKIP = 1
/COLUMNS = 72
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26
- DATA SET: ./bn_delimited_read_CO2.dat
+ DATA SET: ./data/bn_delimited_read_CO2.dat
X: 0.5 to 19.5
Column 1: V1
Column 2: V2
@@ -38208,7 +38207,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,
18 / 18: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 999.00 4.9587 34.4055 0.00000 19.0000 0.000000 1.00000 1008.40 186.926 0.000000 30.2768 0.00000 0.000000 0.00000 36.3870 0.00000 2.15272 0.00000 0.42900
19 / 19: "I8SI9S" 4.00000 "B" 34671.0 94.9940 -30.3000 1945.00 1098.00 4.3083 34.4383 0.00000 18.0000 0.000000 1.00000 1109.00 171.821 0.000000 32.2020 0.00000 0.000000 0.00000 50.4537 0.00000 2.29735 0.00000 0.19800
list/i=8:14 v11,v19,v21,v23,v25
- DATA SET: ./bn_delimited_read_CO2.dat
+ DATA SET: ./data/bn_delimited_read_CO2.dat
X: 7.5 to 14.5
Column 1: V11
Column 2: V19
@@ -38225,7 +38224,7 @@ list/i=8:14 v11,v19,v21,v23,v25
14 / 14: 0.00000 0.00000 0.00000 0.00000 0.00000
(set variable/bad=9 v11; set variable/bad=9 v19;set variable/bad=9 v21;set variable/bad=9 v23;set variable/bad=9 v25)
list/i=8:14 v11,v19,v21,v23,v25
- DATA SET: ./bn_delimited_read_CO2.dat
+ DATA SET: ./data/bn_delimited_read_CO2.dat
X: 7.5 to 14.5
Column 1: V11
Column 2: V19
@@ -41213,15 +41212,11 @@ GO bn_modulo_attribute
! Modulo attribute can take numerical values to indicate
! the modulo length of axis (subspan modulo changes)
! This script tests various string values of the attribute
-
+! *acm* list the axis names, otherwise get random TIME* axes defined right now
use modulo_lon_time
-sh ax lon*
+sh ax lon_true, lon_moderr, lon_false, lon_mod_nounits, lon_usual
name axis # pts start end
- LON_FIELD_J_AXIS Y 2 r 50 65
- Axis span (to cell edges) = 30
- LON_FIELD_I_AXIS X 7 r 160 208
- Axis span (to cell edges) = 56
LON_TRUE LONGITUDE 5mr 1.875W(-1.875) 13.125E
Axis span (to cell edges) = 18.75 (modulo length = 360)
LON_MODERR X (meters) 5 r 0 15
@@ -41232,16 +41227,8 @@ sh ax lon*
Axis span (to cell edges) = 18.75 (modulo length = axis span)
LON_USUAL LONGITUDE 5mr 0E 15E
Axis span (to cell edges) = 18.75 (modulo length = 360)
-sh ax tim*
+sh ax time_true, time_moderr, time_false, time_mod_nounits, time_usual
name axis # pts start end
- TIME1 TIME 6 r 16-JAN-1900 06:00 17-JUN-1900 10:25
-T0 = 01-JAN-1900
- Axis span (to cell edges) = 4382.91
- TIME2 TIME 3 i 16-JAN-1900 06:00 17-MAY-1900 23:56
-T0 = 01-JAN-1900
- Axis span (to cell edges) = 4382.91
- TIME T (HOURS) 20 r 1 20
- Axis span (to cell edges) = 20
TIME_TRUE T (days) 4mi 30 150
T0 = %%
Axis span (to cell edges) = 165 (modulo length = axis span)
@@ -41257,13 +41244,6 @@ T0 = %%
TIME_USUAL T (days) 4mr 120 150
T0 = %%
Axis span (to cell edges) = 40 (modulo length = axis span)
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
- TIME5 TIME 2mr 16-MAY 23:56 16-JUN 10:25
-T0 = 01-JAN-0000 00:00:00
- Axis span (to cell edges) = 1460.97 (modulo length = 8765.82)
-
GO bn_reset bn550_bug_fixes
cancel mode verify
@@ -41517,10 +41497,10 @@ GO err550_nc_seconds.jnl
use time_axis_seconds.nc
sp echo "err550_nc_seconds.jnl --- seconds of time axis" >> all_ncdump.out
-sp ncdump time_axis_seconds.nc | grep origin >> all_ncdump.out
+sp ncdump data/time_axis_seconds.nc | grep origin >> all_ncdump.out
list t[gt=height] ! Seconds should be 36, 37, 38...
VARIABLE : T
- axis TIME3
+ axis TIME4
FILENAME : time_axis_seconds.nc
SUBSET : 5 points (TIME)
10-JUN-1996 04:03:36 / 1: 0.00000
@@ -41741,7 +41721,7 @@ GO err551_invalid_calendar.jnl
set data err_calendar.nc
sh data
currently SET data sets:
- 1> ./err_calendar.nc (default)
+ 1> ./data/err_calendar.nc (default)
name title I J K L
TIME observation time ... ... ... 1:12
(invalid coordinate axis)
@@ -42469,7 +42449,6 @@ GO bn_eof_4d.jnl
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
! dataset with 4 dimensions; compute EOF at each vertical level.
use gt4d011.cdf
@@ -42667,7 +42646,7 @@ list/nohead/i=1:5/j=3/k=9 eofst
4 / 4: 0.00175
5 / 5: 0.00020
-
+! The functions need updating for double precision Ferret
exit/script
GO bn_reset bn_abstract_axis_names.jnl
@@ -42943,7 +42922,7 @@ USE levitus_climatology.cdf
SHO DATA/XML
<datasets>
-<dataset name="./levitus_climatology.cdf" default="true">
+<dataset name="./data/levitus_climatology.cdf" default="true">
<title> </title>
<var name="TEMP" />
</dataset>
@@ -43276,7 +43255,7 @@ SHOW VAR/XML
</attribute>
<grid name="GSI1">
<axes>
-<taxis>TIME6</taxis>
+<taxis>TIME8</taxis>
</axes>
</grid>
</var>
@@ -44070,7 +44049,7 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
-DELETE cnst M:249 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: -999 -999 J: 46 70 K: -999 -999 L: 1 1
strip --> SST[Y=0:50N at AV4,D=1]
reading SST M:249 dset: 1 I: 131 140 J: 46 70 K: -999 -999 L: 1 1
@@ -44083,7 +44062,7 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
TIME : JAN
20.7890
!-> REPEAT: M:330
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M:239 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -44092,7 +44071,7 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
-DELETE cnst M:239 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: -999 -999 J: 46 70 K: -999 -999 L: 1 1
strip --> SST[Y=0:50N at AV4,D=1]
reading SST M:239 dset: 1 I: 131 155 J: 46 70 K: -999 -999 L: 1 1
@@ -44105,7 +44084,7 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
TIME : JAN
21.2500
!-> REPEAT: M:360
- dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M:230 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -44114,7 +44093,7 @@ repeat/range=300:360:30/name=m (list sst[x=280:`m`@ave,y=@ave])
-DELETE cnst M:230 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4
+ allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME7
eval EX#1 C: 4 dset: 1 I: -999 -999 J: 46 70 K: -999 -999 L: 1 1
strip --> SST[Y=0:50N at AV4,D=1]
reading SST M:230 dset: 1 I: 131 170 J: 46 70 K: -999 -999 L: 1 1
@@ -44598,10 +44577,10 @@ can mem/all
def grid/like=taux agrid
dealloc dynamic grid (G015) (AX023) (AX013) NORMAL (AX033)
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6
+ allocate dynamic grid PS2DU1 PSXU PSYU NORMAL TIME9
set mode diag
let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
- dealloc dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6
+ dealloc dynamic grid PS2DU1 PSXU PSYU NORMAL TIME9
dealloc dynamic grid (G015) (AX023) (AX013) NORMAL (AX033)
load a
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -44625,7 +44604,7 @@ can mem/all
can data/all
dealloc dynamic grid (G015) (AX013) (AX023) NORMAL (AX024)
dealloc dynamic grid (G015) (AX013) (AX023) NORMAL (AX024)
- canceling dset ./gtsa056_2.cdf
+ canceling dset ./data/gtsa056_2.cdf
! Some tests taken from bn_strides_revs_perms.jnl but with
! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44654,7 +44633,7 @@ define grid/like=xytvar egrid
allocate dynamic grid GPC5 XLON YLAT NORMAL TTIME
canc data/all
dealloc dynamic grid GPC5 XLON YLAT NORMAL TTIME
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! cache hit from full region cache -- bypass use of strides
@@ -44947,7 +44926,7 @@ canc data/all
dealloc dynamic grid (G001) (AX045) (AX047) (AX048) TAX1_10
-DELETE BIGVAR M:245 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
dealloc dynamic grid (G004) (AX046) YAX1_30 ZAX1_20 TAX1_10
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=zyx bn_strides
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
@@ -44980,7 +44959,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
canc data/all
dealloc dynamic grid (G004) (AX048) (AX047) (AX045) TAX1_10
-DELETE BIGVAR M:244 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! now with xytvar
cancel region
@@ -45056,7 +45035,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G004) (AX048) (AX047) NORMAL (AX045)
-DELETE XYTVAR M:244 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! map into Z instead of T
use/order=zxy bn_strides
@@ -45100,7 +45079,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
canc data/all
dealloc dynamic grid (G004) (AX047) (AX048) (AX046) NORMAL
-DELETE XYTVAR M:245 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
cancel region; set region/l=1
@@ -45135,7 +45114,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G004) (AX048) (AX047) (AX045) TAX1_6
-DELETE MIDVAR M:244 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=-yx bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -45169,7 +45148,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G004) (AX047) (AX048) (AX046) TAX1_6
-DELETE MIDVAR M:244 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! reference output
use/order=tyx bn_strides
@@ -45201,7 +45180,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G004) (AX048) (AX047) (AX045) ZAX1_7
-DELETE MIDVAR M:245 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
use/order=-t-y-x bn_strides
@@ -45236,7 +45215,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G004) (AX047) (AX048) (AX046) ZAX1_7
-DELETE MIDVAR M:245 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! reference output
use/order=txy bn_strides
@@ -45268,7 +45247,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G004) (AX048) (AX047) (AX045) ZAX1_7
-DELETE MIDVAR M:244 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=-t-x-y bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -45302,7 +45281,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G004) (AX047) (AX048) (AX046) ZAX1_7
-DELETE MIDVAR M:244 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! DEFINE AXIS can get the axis too long (bug 673)
GO bn_reset
@@ -45873,14 +45852,14 @@ can mode ignore
use coads_climatology
list/x=181/y=1/form=(f6.2, 3f10.4) sst, t[gt=sst], tboxlo[gt=sst], tboxhi[gt=sst]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
TIME: JAN to APR
LONGITUDE: 179W
LATITUDE: 1N
Column 1: SST is SEA SURFACE TEMPERATURE (Deg C)
- Column 2: T is T (axis TIME4)
- Column 3: TBOXLO is TBOXLO (axis TIME4)
- Column 4: TBOXHI is TBOXHI (axis TIME4)
+ Column 2: T is T (axis TIME7)
+ Column 3: TBOXLO is TBOXLO (axis TIME7)
+ Column 4: TBOXHI is TBOXHI (axis TIME7)
28.28 366.0000 0.7575 731.2425
28.42 1096.4850 731.2425 1461.7275
28.05 1826.9700 1461.7275 2192.2125
@@ -46009,7 +45988,7 @@ can data/all
use gappy_bounds.nc
list/prec=7 a, t[gt=a], tboxlo[gt=a], tboxhi[gt=a]
- DATA SET: ./gappy_bounds.nc
+ DATA SET: ./data/gappy_bounds.nc
TIME: JAN-1990 to JAN-1990
Column 1: A is SST[X=150:180 at AVE,Y=-10:0 at AVE]
Column 2: T is T (axis TGAP)
@@ -47816,7 +47795,7 @@ GO err570_sh_dat_nan.jnl
use nan_missing.nc
show data/full
currently SET data sets:
- 1> ./nan_missing.nc (default)
+ 1> ./data/nan_missing.nc (default)
NCEP Ocean Analysis
name title I J K L
TEMP temperature 1:1 1:1 1:19 1:1
@@ -48106,11 +48085,11 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET (beta/debug) Ver.7.21
+ LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET (beta/debug) Ver.7.23
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 2 8.000E+00 7.100E+00 0.060 0 SYSTEM @ASNOAA/PMEL TMAP
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS06-SEP-2017 12:58:50
+ LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS29-NOV-2017 17:33:05
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 4 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLONGITUDE : 179E
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
@@ -48452,7 +48431,7 @@ GO bn_illegal_axisname.jnl
use illeg_axname.nc
sh data
currently SET data sets:
- 1> ./illeg_axname.nc (default)
+ 1> ./data/illeg_axname.nc (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:21 1:16 ... ...
NEW.LONGITUDES
@@ -48790,7 +48769,7 @@ show grid/t a
normal X
normal Y
normal Z
- TIME7 T 2 i 0.5 2 full
+ TIME12 T 2 i 0.5 2 full
L T TBOX TBOXLO
1> 0.5 1 0
@@ -48814,7 +48793,7 @@ sh grid temp
GRID_X_T LONGITUDE 1 r 79E 79E full
GRID_Y_T LATITUDE 1 r 0.25S 0.25S full
ZT DEPTH (m) 10 i- 22.5 158 full
- TIME7 TIME 1mr 15-FEB-1900 03:00 15-FEB-1900 03:00 full
+ TIME12 TIME 1mr 15-FEB-1900 03:00 15-FEB-1900 03:00 full
! Bug 1181 Titles were truncated at 80 characters
GO bn_reset
@@ -48841,7 +48820,7 @@ GO err580_use_des.jnl
use vary_scale.des
sh data
currently SET data sets:
- 1> ./vary_scale.des (default)
+ 1> ./data/vary_scale.des (default)
name title I J K L
TT 1 + 0*T[GT=DAYT] ... ... ... 1:20
@@ -48858,7 +48837,7 @@ GO err580_use_des.jnl
use vary_scale.des
sh data
currently SET data sets:
- 1> ./vary_scale.des (default)
+ 1> ./data/vary_scale.des (default)
name title I J K L
TT 1 + 0*T[GT=DAYT] ... ... ... 1:20
@@ -49425,7 +49404,7 @@ GO bn_long_revision_num.jnl
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "7.21"
+FERRET_VERSION = "7.23"
! history attribute
let a = 12
@@ -49443,7 +49422,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET (beta/debug) version7.21:
+ Commands in Program FERRET (beta/debug) version7.23:
SET
SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
@@ -49452,7 +49431,7 @@ sho command
SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
- /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+ /TYPE/SWAP/REGULART/DELIMITE/STRICT
SET MODE/LAST
SET MOVI/FILE/COMPRESS/LASER/START
SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
@@ -49514,7 +49493,7 @@ sho command
/MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
/CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
- /OUTTYPE/CURVILIN/LAYERZ
+ /OUTTYPE/CURVILIN/LAYERZ/ASGLOBAL
PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/ALONG/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE
/VS/SYMBOL/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE
/NOAXES/STEP/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG
@@ -49583,7 +49562,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "6-Sep-17:12:57"
+WIN_TITLE = "29-Nov-17:17:31"
set win/title="set the title"
sho sym win_title
@@ -49601,7 +49580,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title=" 6-Sep-17:12:57"
+ !-> set win/title="29-Nov-17:17:31"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -49610,16 +49589,16 @@ set win/title="($session_date):($session_time)"
! If so substitute another string.
DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 6-Sep-17
+ !-> DEFINE SYMBOL the_date = 29-Nov-17
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 12:57
+ !-> DEFINE SYMBOL the_time = 17:31
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="6-Sep-17:12:57"
+ !-> SET WIN/TITLE="29-Nov-17:17:31"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "6-Sep-17:12:57"
+WIN_TITLE = "29-Nov-17:17:31"
GO bn_reset bn_last_error.jnl
cancel mode verify
@@ -49945,7 +49924,7 @@ let zh2 = boxhi[k=2:`n`:2]
list zl2,(zl2+zh2)/2,zh2
WARNING: Listed variables have ambiguous coordinates on axes: Z
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Column 1: ZL2[Z=0:3174] is BOXLO[K=1:26:2]
Column 2: EX#2 is (ZL2+ZH2)/2
Column 3: ZH2[Z=0:4149] is BOXHI[K=2:27:2]
@@ -49967,7 +49946,7 @@ def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
! original axis
list zboxlo[gz=temp], z[gz=temp], zboxhi[gz=temp]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
DEPTH (m): 0 to 4149
Column 1: ZBOXLO is ZBOXLO (axis PSZT1)
Column 2: Z is Z (axis PSZT1)
@@ -50046,7 +50025,7 @@ can var/all
use ocean_atlas_temp
sho att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -50054,10 +50033,10 @@ sho att/all temp
TEMP.units = Deg C
show attribute temp.units
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.units = Deg C
show attribute temp.missing_value
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
! specifying data set
@@ -50066,7 +50045,7 @@ use gt4d011
use levitus_climatology
sh att/all temp[d=2]
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
TEMP.parent_grid = PS3DT2
TEMP.slab_min_index = 91, 35, 1, 0
TEMP.slab_max_index = 108, 56, 10, 0
@@ -50076,17 +50055,17 @@ sh att/all temp[d=2]
TEMP.history = From gt4d011
TEMP.units = deg. C
sh att temp.units[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.units = Deg C
! global attributes
use err491_attval
show att ..remark
- attributes for dataset: ./err491_attval.cdf
+ attributes for dataset: ./data/err491_attval.cdf
.remark = Generated by oar3d
show att/all .
- attributes for dataset: ./err491_attval.cdf
+ attributes for dataset: ./data/err491_attval.cdf
..simulation = K-Bay OAR3d model (200m)
..start_date = 980105000000
..history = a
@@ -50121,7 +50100,7 @@ show att/all .
..node_offset = 0
sho att/all .[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
..history = FERRET V4.90 (GUI) 04-Feb-98
! Now SHOW DATA/ATT
@@ -50130,7 +50109,7 @@ can data/all
use ocean_atlas_temp
sho data/att
currently SET data sets:
- 1> ./ocean_atlas_temp.cdf (default)
+ 1> ./data/ocean_atlas_temp.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -50152,7 +50131,7 @@ sho data/att
orig_file_axname
CHAR 13 F ZAXLEVIT191_1
-(TIME3) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME4) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
orig_file_axname
@@ -50170,7 +50149,7 @@ use levitus_climatology
sh data/att gt4d011
currently SET data sets:
- 2> ./gt4d011.cdf
+ 2> ./data/gt4d011.cdf
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -50204,7 +50183,7 @@ sh data/att gt4d011
orig_file_axname
CHAR 9 F PSZTedges
-(TIME11) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
+(TIME12) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
time_origin CHAR 20 T 14-JAN-1980 14:00:00
orig_file_axname
CHAR 5 F TIME1
@@ -50419,7 +50398,7 @@ use gt4d011
! string length for string attributes
show att/all temp
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
TEMP.parent_grid = PS3DT2
TEMP.slab_min_index = 91, 35, 1, 0
TEMP.slab_max_index = 108, 56, 10, 0
@@ -50528,7 +50507,7 @@ list cnames
SUBSET : 3 points (X)
1 / 1:"COADSX"
2 / 2:"COADSY"
- 3 / 3:"TIME4"
+ 3 / 3:"TIME7"
! ..varnames
can data/all
@@ -50539,7 +50518,7 @@ let nv = ..nvars
let nd = ..ndims
let vnames = ..varnames
list/d=1 nv, nd
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
@@ -50600,7 +50579,7 @@ list vnames
SUBSET : 3 points (X)
1 / 1:"COADSX"
2 / 2:"COADSY"
- 3 / 3:"TIME4"
+ 3 / 3:"TIME7"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
SUBSET : 21 points (X)
@@ -50610,7 +50589,7 @@ list lnames
4 / 4:"PSYTedges"
5 / 5:"PSZT1"
6 / 6:"PSZTedges"
- 7 / 7:"TIME11"
+ 7 / 7:"TIME12"
8 / 8:"PSXT91_108"
9 / 9:"PSYT35_56"
10 / 10:"PSZT1_10"
@@ -50770,7 +50749,7 @@ can var/all
use test0.nc
sh data/att
currently SET data sets:
- 1> ./test0.nc (default)
+ 1> ./data/test0.nc (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -50860,7 +50839,7 @@ list/i=3 sst.dimnames
VARIABLE : SST.DIMNAMES
FILENAME : coads_climatology.cdf
X : 3
- "TIME4"
+ "TIME7"
let a= sst.dimnames
list a
@@ -50869,7 +50848,7 @@ list a
SUBSET : 3 points (X)
1 / 1:"COADSX"
2 / 2:"COADSY"
- 3 / 3:"TIME4"
+ 3 / 3:"TIME7"
list a[i=1]
VARIABLE : SST.DIMNAMES
FILENAME : coads_climatology.cdf
@@ -50905,7 +50884,7 @@ list/d=2 ..nvars
sh data
currently SET data sets:
- 1> ./gt4d011.cdf
+ 1> ./data/gt4d011.cdf
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -50916,7 +50895,7 @@ sh data
TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25
PSI STREAM FUNCTION 91:108 35:56 ... 1:25
- 2> ./coads_climatology.cdf (default)
+ 2> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -50931,7 +50910,7 @@ list/d=2 ..dimnames
SUBSET : 3 points (X)
1 / 1:"COADSX"
2 / 2:"COADSY"
- 3 / 3:"TIME4"
+ 3 / 3:"TIME7"
list/d=1 ..dimnames
VARIABLE : ..DIMNAMES
FILENAME : gt4d011.cdf
@@ -50942,7 +50921,7 @@ list/d=1 ..dimnames
4 / 4:"PSYTedges"
5 / 5:"PSZT1"
6 / 6:"PSZTedges"
- 7 / 7:"TIME11"
+ 7 / 7:"TIME12"
8 / 8:"PSXT91_108"
9 / 9:"PSYT35_56"
10 / 10:"PSZT1_10"
@@ -51025,7 +51004,7 @@ def att/type=float temp.floatval = 22
def att temp.pp = {1.5, 1.9}
def att temp.some_text = "some text about the TEMP variable"
sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -51042,7 +51021,7 @@ sh att/all temp
def att temp.pp = {1.5, 1.9, 3.45, 7}
def att temp.some_text = "some different text"
sh att temp.pp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.pp = 1.5, 1.9, 3.45, 7
let var = temp.some_text
list/nohead var
@@ -51053,7 +51032,7 @@ list/nohead var
use gt4d011
def att/D=1 temp.morenew = 2
sh att/all temp[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -51074,7 +51053,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
use ocean_atlas_temp
sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -51107,7 +51086,7 @@ list (coadsx).modulo
FILENAME : coads_climatology.cdf
" "
sho att/all (coadsx)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(COADSX).units = degrees_east
(COADSX).modulo =
(COADSX).point_spacing = even
@@ -51149,7 +51128,7 @@ can data gt4d011
set data coads_climatology
sho att (coadsx).modulo
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(COADSX).modulo =
set att (coadsx).modulo=360
@@ -51157,7 +51136,7 @@ set att (coadsx).modulo=360
! axis still found and edited.
set att (`sst,return=taxis`).time_origin="1-jan-1980"
- !-> set att (TIME4).time_origin="1-jan-1980"
+ !-> set att (TIME7).time_origin="1-jan-1980"
list/x=130w/y=0 sst
VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
FILENAME : coads_climatology.cdf
@@ -51205,7 +51184,7 @@ list cnames
SUBSET : 3 points (X)
1 / 1:"COADSX"
2 / 2:"COADSY"
- 3 / 3:"TIME4"
+ 3 / 3:"TIME7"
show axis (`cnames[i=1]`)
!-> show axis (COADSX)
name axis # pts start end
@@ -51241,7 +51220,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
use gt4d011
sh att/all salt
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
SALT.parent_grid = PS3DT2
SALT.slab_min_index = 91, 35, 1, 0
SALT.slab_max_index = 108, 55, 10, 0
@@ -51253,7 +51232,7 @@ sh att/all salt
set att/like=temp salt
sh att/all salt
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
SALT.missing_value = 0.01
SALT._FillValue = 0.01
SALT.parent_grid = PS3DT2
@@ -51321,7 +51300,7 @@ def att/type=float temp.floatval = 22
def att temp.pp = {1.5, 1.9}
def att temp.some_text = "some text about the TEMP variable"
sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -51337,7 +51316,7 @@ sh att/all temp
set att temp.pp = {1.5, 1.9, 3.45, 7}
set att temp.some_text = "some different text"
sh att temp.pp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.pp = 1.5, 1.9, 3.45, 7
let var = temp.some_text
list/nohead var
@@ -51365,7 +51344,7 @@ list pq
use gt4d011
def att/d=1 temp.morenew = 33
sho att/all temp[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -51407,7 +51386,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
use err491_attval.cdf
sp echo "bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:" >> all_ncdump.out
-sp ncdump -h err491_attval.cdf >> all_ncdump.out
+sp ncdump -h data/err491_attval.cdf >> all_ncdump.out
save/clobber/file=a.nc elev[i=3,j=2:4]
sp echo "bn_attributes.jnl --- 5 before CANCEL MODE upcase_output" >> all_ncdump.out
sp ncdump -h a.nc >> all_ncdump.out
@@ -51478,7 +51457,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
use ocean_atlas_temp
sh att/all (`temp,return=xaxis`)
!-> sh att/all (XAX_LEV9421_380)
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
(XAX_LEV9421_380).units = degrees_east
(XAX_LEV9421_380).modulo =
(XAX_LEV9421_380).point_spacing = even
@@ -51502,7 +51481,7 @@ sp ncdump -h a.nc >> all_ncdump.out
set reg/x=300:360/y=30:45
sh att/all (`temp,return=xaxis`)
!-> sh att/all (XAX_LEV9421_380)
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
(XAX_LEV9421_380).units = degrees_east
(XAX_LEV9421_380).modulo =
(XAX_LEV9421_380).point_spacing = even
@@ -51519,7 +51498,7 @@ sp ncdump -h a.nc >> all_ncdump.out
! cancel output of attributes of the variable itself
can region
sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -51544,13 +51523,13 @@ ooooooooooooooooooooooooooooooooooooooooooo
file/var="a1,a2,a3" EZ.DAT
def att a1.three={1,2,3}
sh att/all a1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
a1.long_name = a1
a1.missing_value = -1.E+34
a1.three = 1, 2, 3
sh dat/att
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -51578,7 +51557,7 @@ columns/delim=" " EZ.DAT
def att/type=string v1.strval = 2
set att/output v1.strval
sh att/all v1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
V1.long_name = V1
V1.missing_value = -1.E+34
V1.strval = 2
@@ -51828,7 +51807,7 @@ DEFINE ATT/OUTPUT (`t2,return=yaxis`).new_att = "somthing"
SHOW ATT/ALL (`t2,return=yaxis`)
!-> SHOW ATT/ALL (COADSY)
- attributes for dataset: ./coads_vwnd.cdf
+ attributes for dataset: ./data/coads_vwnd.cdf
(COADSY).units = degrees_north
(COADSY).point_spacing = uneven
(COADSY).orig_file_axname = COADSY
@@ -51880,7 +51859,7 @@ set att (`t2,return=xaxis`).units = "degrees"
!-> set att (PSXT).units = "degrees"
sh att/all (`t2,return=xaxis`)
!-> sh att/all (PSXT)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(PSXT).units = degrees
(PSXT).point_spacing = even
(PSXT).orig_file_axname = PSXT
@@ -51904,7 +51883,7 @@ set att (`temp,return=yaxis`).units="meters"
!-> set att (PSYT1).units="meters"
sho att/all (`temp,return=yaxis`)
!-> sho att/all (PSYT1)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(PSYT1).units = meters
(PSYT1).point_spacing = uneven
(PSYT1).edges = PSYTedges
@@ -51952,7 +51931,7 @@ define att/out (`temp,return=xaxis`).new_att = "something"
!-> define att/out (XAXLEVITR1_160).new_att = "something"
sh dat/att
currently SET data sets:
- 1> ./levitus_climatology.cdf (default)
+ 1> ./data/levitus_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -52030,92 +52009,92 @@ ooooooooooooooooooooooooooooooooooooooooooo
! Note original attributes
use coads_climatology
show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = hour since 0000-01-01 00:00:00
- (TIME7).time_origin = 1-JAN-0000 00:00:00
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
+ !-> show att/all (TIME12)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = hour since 0000-01-01 00:00:00
+ (TIME12).time_origin = 1-JAN-0000 00:00:00
+ (TIME12).modulo =
+ (TIME12).orig_file_axname = TIME
! change units to days since time origin
set att (`sst,return=taxis`).units="days"
- !-> set att (TIME7).units="days"
+ !-> set att (TIME12).units="days"
show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = days since 1-JAN-0000 00:00:00
- (TIME7).time_origin = 1-JAN-0000 00:00:00
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
+ !-> show att/all (TIME12)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = days since 1-JAN-0000 00:00:00
+ (TIME12).time_origin = 1-JAN-0000 00:00:00
+ (TIME12).modulo =
+ (TIME12).orig_file_axname = TIME
define attribute (`sst,return=taxis`).units = "months"
- !-> define attribute (TIME7).units = "months"
+ !-> define attribute (TIME12).units = "months"
show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 1-JAN-0000 00:00:00
- (TIME7).time_origin = 1-JAN-0000 00:00:00
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
+ !-> show att/all (TIME12)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 1-JAN-0000 00:00:00
+ (TIME12).time_origin = 1-JAN-0000 00:00:00
+ (TIME12).modulo =
+ (TIME12).orig_file_axname = TIME
! change time origin and also units to include time origin
set att (`sst,return=taxis`).time_origin = "1-mar-1955"
- !-> set att (TIME7).time_origin = "1-mar-1955"
+ !-> set att (TIME12).time_origin = "1-mar-1955"
show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 1-mar-1955
- (TIME7).time_origin = 1-mar-1955
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
+ !-> show att/all (TIME12)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 1-mar-1955
+ (TIME12).time_origin = 1-mar-1955
+ (TIME12).modulo =
+ (TIME12).orig_file_axname = TIME
define attribute (`sst,return=taxis`).time_origin = "15-jan-2002"
- !-> define attribute (TIME7).time_origin = "15-jan-2002"
+ !-> define attribute (TIME12).time_origin = "15-jan-2002"
show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
+ !-> show att/all (TIME12)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002
+ (TIME12).time_origin = 15-jan-2002
+ (TIME12).modulo =
+ (TIME12).orig_file_axname = TIME
! Likewise on DEFINE AXIS or SET AXIS, change units to
! include the correct since time_origin.
use coads_climatology
show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
+ !-> show att/all (TIME12)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002
+ (TIME12).time_origin = 15-jan-2002
+ (TIME12).modulo =
+ (TIME12).orig_file_axname = TIME
def axis/t=1:12:1/unit=months/t0="1-jan-0001" time
show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
+ !-> show att/all (TIME12)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002
+ (TIME12).time_origin = 15-jan-2002
+ (TIME12).modulo =
+ (TIME12).orig_file_axname = TIME
set axis/t0="15-jan-0000" time
show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
+ !-> show att/all (TIME12)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002
+ (TIME12).time_origin = 15-jan-2002
+ (TIME12).modulo =
+ (TIME12).orig_file_axname = TIME
set axis/units=days time
show att/all (`sst,return=taxis`)
- !-> show att/all (TIME7)
- attributes for dataset: ./coads_climatology.cdf
- (TIME7).units = months since 15-jan-2002
- (TIME7).time_origin = 15-jan-2002
- (TIME7).modulo =
- (TIME7).orig_file_axname = TIME
+ !-> show att/all (TIME12)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME12).units = months since 15-jan-2002
+ (TIME12).time_origin = 15-jan-2002
+ (TIME12).modulo =
+ (TIME12).orig_file_axname = TIME
! Fix bug 1518: previously var.attnames for a user-defined variable resulted in an error
use coads_climatology
@@ -52172,7 +52151,7 @@ sp ncdump -h a.nc >> all_ncdump.out
can data/all
use ocean_atlas_temp
sho att temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -52180,7 +52159,7 @@ sho att temp
TEMP.units = Deg C
sho att ocean_atlas_temp
currently SET data sets:
- 1> ./ocean_atlas_temp.cdf (default)
+ 1> ./data/ocean_atlas_temp.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -52202,7 +52181,7 @@ sho att ocean_atlas_temp
orig_file_axname
CHAR 13 F ZAXLEVIT191_1
-(TIME3) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME4) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
orig_file_axname
@@ -52216,7 +52195,7 @@ sho att ocean_atlas_temp
sho att (`temp,return=xaxis`)
!-> sho att (XAX_LEV9421_380)
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
(XAX_LEV9421_380).units = degrees_east
(XAX_LEV9421_380).modulo =
(XAX_LEV9421_380).point_spacing = even
@@ -52225,7 +52204,7 @@ sho att (`temp,return=xaxis`)
use levitus_climatology
sho att 1
currently SET data sets:
- 1> ./ocean_atlas_temp.cdf
+ 1> ./data/ocean_atlas_temp.cdf
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -52247,7 +52226,7 @@ sho att 1
orig_file_axname
CHAR 13 F ZAXLEVIT191_1
-(TIME3) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME4) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
orig_file_axname
@@ -52261,7 +52240,7 @@ sho att 1
sho att 2
currently SET data sets:
- 2> ./levitus_climatology.cdf (default)
+ 2> ./data/levitus_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -52291,14 +52270,14 @@ sho att 2
sho att temp[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
TEMP.history = From ocean_atlas_monthly
TEMP.units = Deg C
sho att temp[d=2]
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
TEMP.missing_value = -1.E+10
TEMP._FillValue = -1.E+10
TEMP.long_name = TEMPERATURE
@@ -52306,15 +52285,15 @@ sho att temp[d=2]
TEMP.units = DEG C
sho att (`temp[d=1],return=taxis`[d=1])
- !-> sho att (TIME3[d=1])
- attributes for dataset: ./ocean_atlas_temp.cdf
- (TIME3).units = hour since 0000-01-01 00:00:00
- (TIME3).time_origin = 01-JAN-0000 00:00:00
- (TIME3).modulo =
- (TIME3).orig_file_axname = TIME
+ !-> sho att (TIME4[d=1])
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
+ (TIME4).units = hour since 0000-01-01 00:00:00
+ (TIME4).time_origin = 01-JAN-0000 00:00:00
+ (TIME4).modulo =
+ (TIME4).orig_file_axname = TIME
sho att .
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
..history = FERRET V5.22 5-Apr-01
! 1/17 *sh*
@@ -52360,7 +52339,7 @@ list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
6.009285E+13
list/L=1/y=0/x=83w:49w sst,sst[x=@cda], sst[x=@cdb], sst[x=@cia], sst[x=@cib]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 83W to 49W
LATITUDE: 1S
TIME: JAN
@@ -52390,7 +52369,7 @@ list/L=1/y=0/x=83w:49w sst,sst[x=@cda], sst[x=@cdb], sst[x=@cia], sst[x=@cib]
49W / 146: 27.38 0.00 0.00 0.00 0.00
list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 10N to 33N
LONGITUDE: 93W
TIME: JAN
@@ -52413,7 +52392,7 @@ list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
33N / 62: .... .... .... ....
list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 10N to 33N
LONGITUDE: 93W
TIME: JAN
@@ -52434,7 +52413,7 @@ list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
33N / 62: .... 1.000
list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 23N to 51N
LONGITUDE: 93W
TIME: JAN
@@ -52460,7 +52439,7 @@ list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
51N / 71: .... .... .... 2.47
list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 93W
LATITUDE: 23N to 51N
TIME: JAN
@@ -52470,7 +52449,7 @@ list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
I / *: 2.466 23.84
list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 93W
LATITUDE: 23N to 51N
TIME: JAN
@@ -52480,7 +52459,7 @@ list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
I / *: 9.000 6.000
list/L=1/y=1:11/x=93w sst, sst[y=@iin]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 1N to 11N
LONGITUDE: 93W
TIME: JAN
@@ -52495,7 +52474,7 @@ list/L=1/y=1:11/x=93w sst, sst[y=@iin]
11N / 51: 26.99 2.956E+07
list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 93W
TIME: JAN
Column 1: SST[Y=23N:25N] is SEA SURFACE TEMPERATURE (Deg C)
@@ -52505,7 +52484,7 @@ list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
25N / 58: 23.11 23.47
list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-1]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 11N to 23N
LONGITUDE: 93W
TIME: JAN
@@ -52524,7 +52503,7 @@ list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-
23N / 57: 23.84 181.6 23.69 23.63 23.95
list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl], sst[y=@weq:26]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 11N to 23N
LONGITUDE: 93W
TIME: JAN
@@ -53226,7 +53205,7 @@ GO err581_noleap_mod.jnl
use gt4d011.cdf
set axis/cal=noleap `u,return=taxis`
- !-> set axis/cal=noleap TIME11
+ !-> set axis/cal=noleap TIME12
let a = u[t=1-sep-1982:1-jan-1983]
def axis/t/edge/mod/cal=noleap/unit=days/t0=1-jan-0001 mon_irreg_nlp = {0,31,59,90,120,151,181,212,243,273,304,334,365}
@@ -53890,7 +53869,7 @@ stat rose[d=2]
T: N/A
E: N/A
F: N/A
- DATA SET: ./ss_small.nc
+ DATA SET: ./data/ss_small.nc
Total # of data points: 2576 (46*56*1*1*1*1)
# flagged as bad data: 0
@@ -53914,7 +53893,7 @@ stat rose[j=12,d=1]
T: N/A
E: N/A
F: N/A
- DATA SET: ./ss_small.nc
+ DATA SET: ./data/ss_small.nc
Total # of data points: 46 (46*1*1*1*1*1)
# flagged as bad data: 0
@@ -53937,33 +53916,33 @@ GO err600_reset_redefine_axis.jnl
use coads_climatology
def sym timeax = `sst,return=taxis`
- !-> def sym timeax = TIME9
+ !-> def sym timeax = TIME16
show att/all (($timeax))
- !-> show att/all (TIME9)
- attributes for dataset: ./coads_climatology.cdf
- (TIME9).units = hour since 0000-01-01 00:00:00
- (TIME9).time_origin = 1-JAN-0000 00:00:00
- (TIME9).modulo =
- (TIME9).orig_file_axname = TIME
+ !-> show att/all (TIME16)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME16).units = hour since 0000-01-01 00:00:00
+ (TIME16).time_origin = 1-JAN-0000 00:00:00
+ (TIME16).modulo =
+ (TIME16).orig_file_axname = TIME
show axis ($timeax)
- !-> show axis TIME9
+ !-> show axis TIME16
name axis # pts start end
- TIME9 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME16 TIME 3mr 16-JAN 06:00 17-MAR 02:58
T0 = 01-JAN-0000 00:00:00
Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
- !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME9
+ !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME16
show att/all (($timeax))
- !-> show att/all (TIME9)
- attributes for dataset: ./coads_climatology.cdf
- (TIME9).units = MONTHS since 1-JAN-0001
- (TIME9).time_origin = 1-JAN-0001
- (TIME9).orig_file_axname = TIME
+ !-> show att/all (TIME16)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME16).units = MONTHS since 1-JAN-0001
+ (TIME16).time_origin = 1-JAN-0001
+ (TIME16).orig_file_axname = TIME
show axis ($timeax)
- !-> show axis TIME9
+ !-> show axis TIME16
name axis # pts start end
- TIME9 TIME 3 r 31-JAN-0001 10:29 02-APR-0001 07:27
+ TIME16 TIME 3 r 31-JAN-0001 10:29 02-APR-0001 07:27
T0 = 1-JAN-0001
Axis span (to cell edges) = 3
@@ -53972,34 +53951,34 @@ T0 = 1-JAN-0001
can data/all
use gt4d011
def sym timeax = `temp,return=taxis`
- !-> def sym timeax = TIME11
+ !-> def sym timeax = TIME17
show att/all (($timeax))
- !-> show att/all (TIME11)
- attributes for dataset: ./gt4d011.cdf
- (TIME11).units = hour since 1980-01-14 14:00:00
- (TIME11).time_origin = 14-JAN-1980 14:00:00
- (TIME11).orig_file_axname = TIME1
+ !-> show att/all (TIME17)
+ attributes for dataset: ./data/gt4d011.cdf
+ (TIME17).units = hour since 1980-01-14 14:00:00
+ (TIME17).time_origin = 14-JAN-1980 14:00:00
+ (TIME17).orig_file_axname = TIME1
show axis ($timeax)
- !-> show axis TIME11
+ !-> show axis TIME17
name axis # pts start end
- TIME11 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
+ TIME17 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
T0 = 14-JAN-1980 14:00:00
Axis span (to cell edges) = 3650
set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
- !-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME11
+ !-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME17
show att/all (($timeax))
- !-> show att/all (TIME11)
- attributes for dataset: ./gt4d011.cdf
- (TIME11).units = days since 1-JAN-1900
- (TIME11).time_origin = 1-JAN-1900
- (TIME11).orig_file_axname = TIME1
- (TIME11).calendar = NOLEAP
- (TIME11).modulo =
+ !-> show att/all (TIME17)
+ attributes for dataset: ./data/gt4d011.cdf
+ (TIME17).units = days since 1-JAN-1900
+ (TIME17).time_origin = 1-JAN-1900
+ (TIME17).orig_file_axname = TIME1
+ (TIME17).calendar = NOLEAP
+ (TIME17).modulo =
show axis ($timeax)
- !-> show axis TIME11
+ !-> show axis TIME17
name axis # pts start end
- TIME11 TIME 25mr 14-MAR-1962 00:00 19-OCT-1971 00:00
+ TIME17 TIME 25mr 14-MAR-1962 00:00 19-OCT-1971 00:00
T0 = 1-JAN-1900
CALENDAR = NOLEAP
Axis span (to cell edges) = 3650 (modulo length = axis span)
@@ -54010,15 +53989,15 @@ CALENDAR = NOLEAP
can data/all
use gt4d011
def sym timeax = `temp,return=taxis`
- !-> def sym timeax = TIME11
+ !-> def sym timeax = TIME17
def sym zax = `temp,return=zaxis`
!-> def sym zax = PSZT1
show att/all (($timeax))
- !-> show att/all (TIME11)
- attributes for dataset: ./gt4d011.cdf
- (TIME11).units = hour since 1980-01-14 14:00:00
- (TIME11).time_origin = 14-JAN-1980 14:00:00
- (TIME11).orig_file_axname = TIME1
+ !-> show att/all (TIME17)
+ attributes for dataset: ./data/gt4d011.cdf
+ (TIME17).units = hour since 1980-01-14 14:00:00
+ (TIME17).time_origin = 14-JAN-1980 14:00:00
+ (TIME17).orig_file_axname = TIME1
show axis ($zax)
!-> show axis PSZT1
name axis # pts start end
@@ -54026,24 +54005,24 @@ show axis ($zax)
Axis span (to cell edges) = 4149
cancel axis/modulo ($timeax)
- !-> cancel axis/modulo TIME11
+ !-> cancel axis/modulo TIME17
show att/all (($timeax))
- !-> show att/all (TIME11)
- attributes for dataset: ./gt4d011.cdf
- (TIME11).units = hour since 1980-01-14 14:00:00
- (TIME11).time_origin = 14-JAN-1980 14:00:00
- (TIME11).orig_file_axname = TIME1
+ !-> show att/all (TIME17)
+ attributes for dataset: ./data/gt4d011.cdf
+ (TIME17).units = hour since 1980-01-14 14:00:00
+ (TIME17).time_origin = 14-JAN-1980 14:00:00
+ (TIME17).orig_file_axname = TIME1
show axis ($timeax)
- !-> show axis TIME11
+ !-> show axis TIME17
name axis # pts start end
- TIME11 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
+ TIME17 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
T0 = 14-JAN-1980 14:00:00
Axis span (to cell edges) = 3650
cancel axis/depth ($zax)
!-> cancel axis/depth PSZT1
show att/all (($zax))
!-> show att/all (PSZT1)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(PSZT1).units = METERS
(PSZT1).positive = up
(PSZT1).point_spacing = uneven
@@ -54075,7 +54054,7 @@ use coads_climatology
! Note TIME1 with attribute orig_file_axname
sh dat/att
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -54092,7 +54071,7 @@ sh dat/att
orig_file_axname
CHAR 6 F COADSY
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME17) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 19 T 1-JAN-0000 00:00:00
modulo CHAR 1 T
orig_file_axname
@@ -54120,7 +54099,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
@@ -54152,12 +54131,12 @@ sho dat/att
PSZT11_10_bnds DOUBLE
-(TIME11) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
+(TIME17) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
time_origin CHAR 20 T 14-JAN-1980 14:00:00
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME11
+ CHAR 6 F TIME17
TEMP FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -54169,7 +54148,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
@@ -54201,12 +54180,12 @@ sho dat/att
PSZT11_10_bnds DOUBLE
-(TIME111) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
+(TIME171) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
time_origin CHAR 20 T 14-JAN-1980 14:00:00
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME11
+ CHAR 6 F TIME17
TEMP FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -54359,7 +54338,7 @@ stat rose[d=2]
T: N/A
E: N/A
F: N/A
- DATA SET: ./ss_small.nc
+ DATA SET: ./data/ss_small.nc
Total # of data points: 2576 (46*56*1*1*1*1)
# flagged as bad data: 0
@@ -54383,7 +54362,7 @@ stat rose[j=12,d=1]
T: N/A
E: N/A
F: N/A
- DATA SET: ./ss_small.nc
+ DATA SET: ./data/ss_small.nc
Total # of data points: 46 (46*1*1*1*1*1)
# flagged as bad data: 0
@@ -54407,7 +54386,7 @@ GO bn_set_strides.jnl
! unrelated axes already defined, which get in the way of
! seeing the desired output.
-set mode ignore_error
+!set mode ignore_error
!..............1. ignore STRIDE = 1
use coads_climatology
@@ -54422,9 +54401,9 @@ show axis `sst,return=yaxis`
COADSY LATITUDE 90 r 89S 89N
Axis span (to cell edges) = 180
show axis `sst,return=taxis`
- !-> show axis TIME10
+ !-> show axis TIME20
name axis # pts start end
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58
T0 = 01-JAN-0000 00:00:00
Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
set axis/stride=1/offset=1 `sst, return=xaxis`
@@ -54446,6 +54425,7 @@ show axis `sst,return=xaxis`
(AX052) LONGITUDE 90mr 23E 19E(379)
Axis span (to cell edges) = 360 (modulo length = axis span)
!can't stride it again
+set mode ignore_error
set axis/stride=2/offset=1 `sst, return=xaxis`
!-> set axis/stride=2/offset=1 (AX052)
show axis `sst,return=xaxis`
@@ -54453,6 +54433,7 @@ show axis `sst,return=xaxis`
name axis # pts start end
(AX052) LONGITUDE 90mr 23E 19E(379)
Axis span (to cell edges) = 360 (modulo length = axis span)
+set mode/last ignore
cancel data/all
!..............3. only set STRIDE
@@ -54532,15 +54513,20 @@ show axis `sst,return=xaxis`
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
Axis span (to cell edges) = 360 (modulo length = axis span)
+
+set mode ignore
cancel axis/stride `sst,return=xaxis`
!-> cancel axis/stride COADSX
+set mode/last ignore
cancel data/all
!.............5. OFFSET .LE. STRIDE
use coads_climatology
+set mode ignore
set axis/stride=2/offset=4 `sst, return=xaxis`
!-> set axis/stride=2/offset=4 COADSX
+set mode/last ignore
cancel data/all
!.............6. SHOW GRID/DYNAMIC
@@ -54558,8 +54544,11 @@ cancel data/all
!.............7. cancel stride on a non-strided axis
use coads_climatology
+set mode ignore
cancel axis/stride `sst,return=xaxis`
!-> cancel axis/stride COADSX
+set mode/last ignore
+
cancel data/all
!.............8. striding on a modulo axis
@@ -54685,7 +54674,7 @@ can data/all
use/order=yzt coads_climatology
show data/all
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE ... 1:180 1:90 1:3
@@ -54739,6 +54728,7 @@ list/x=180/l=5 sst[j=1:30]
85S / 3: ....
87S / 2: ....
89S / 1: ....
+
set axis/stride=5/offset=3 `sst,return=yaxis`
!-> set axis/stride=5/offset=3 COADSY
list/x=180/l=5 sst
@@ -54792,7 +54782,7 @@ set axis/stride=2 `sst, return=xaxis`
set axis/stride=2 `sst, return=yaxis`
!-> set axis/stride=2 COADSY
set axis/stride=2 `sst, return=taxis`
- !-> set axis/stride=2 TIME10
+ !-> set axis/stride=2 TIME20
show axis `sst,return=xaxis`
!-> show axis (AX056)
@@ -54831,9 +54821,9 @@ show axis `sst,return=yaxis`
COADSY LATITUDE 90 r 89S 89N
Axis span (to cell edges) = 180
show axis `sst,return=taxis`
- !-> show axis TIME10
+ !-> show axis TIME20
name axis # pts start end
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58
T0 = 01-JAN-0000 00:00:00
Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
@@ -54854,7 +54844,7 @@ let f_filtered = lsl_lowpass(my_temp, 40,10)
! List the output so its not just a graphical test;
! Compute based on the whole T region, but just list a portion.
LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
- DATA SET: ./gtsa056_2.cdf
+ DATA SET: ./data/gtsa056_2.cdf
TIME: FEB-1982 to MAR-1982
LONGITUDE: 179.5E
LATITUDE: 0.167S
@@ -54890,7 +54880,7 @@ sh grid temp
XAX_LEV9421_380 LONGITUDE 360mr 20.5E 19.5E(379.5) full
YAX_LEV94 LATITUDE 180 r 89.5S 89.5N full
ZAXLEVIT191_1 DEPTH (m) 1 r- 0 0 full
- TIME3 TIME 2mr 16-JAN 06:00 15-FEB 16:29 full
+ TIME4 TIME 2mr 16-JAN 06:00 15-FEB 16:29 full
sh axis XAX_LEV9421_380
name axis # pts start end
XAX_LEV9421_380 LONGITUDE 360mr 20.5E 19.5E(379.5)
@@ -55057,7 +55047,7 @@ SHOW GRID/Z atmos
normal X
normal Y
ALTITUDE Z (Pa) 50 i 6.791595619E-10 1400 full
- TIME11 TIME 1mr 01-JAN 04:00 01-JAN 04:00 full
+ TIME21 TIME 1mr 01-JAN 04:00 01-JAN 04:00 full
K Z ZBOX ZBOXLO
1> 6.791595619227E-10 6.885E-10 3.349092392302E-10
@@ -55261,7 +55251,7 @@ list nomiss[gt=month_reg at MODNGD]
let var = if temp gt 29.5 then temp
list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD]+var[gt=month_reg at MODNBD], nomiss[gt=month_reg at MODNGD]
- DATA SET: ./gtsa056_2.cdf
+ DATA SET: ./data/gtsa056_2.cdf
TIME: JAN to DEC
LONGITUDE: 139.5E
LATITUDE: 0.833N
@@ -55488,7 +55478,7 @@ USE coads_climatology
SET VAR/NAME=my_sst sst
SHOW DATA
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
MY_SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -55875,6 +55865,7 @@ ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
DATES(Offsets)
+EARTH_DISTANCE(longitude,latitude)
EFSTRINGS(--)
FACTORIAL(A)
FFT_AMP(A)
@@ -55990,7 +55981,7 @@ show var/xml
</attribute>
<grid name="GSI1">
<axes>
-<zaxis>TIME10</zaxis>
+<zaxis>TIME19</zaxis>
</axes>
</grid>
</var>
@@ -56527,7 +56518,7 @@ GO err61_new_attr_on_axis
use ocean_atlas_temp
sh dat
currently SET data sets:
- 1> ./ocean_atlas_temp.cdf (default)
+ 1> ./data/ocean_atlas_temp.cdf (default)
name title I J K L
TEMP Temperature 1:360 1:180 1:1 1:2
@@ -56568,7 +56559,7 @@ use gt4d011
use levitus_climatology
sh att temp[d=1].units
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.units = Deg C
@@ -56584,7 +56575,7 @@ list vnames
1 / 1:"XAX_LEV9421_380"
2 / 2:"YAX_LEV94"
3 / 3:"ZAXLEVIT191_1"
- 4 / 4:"TIME3"
+ 4 / 4:"TIME4"
list lnames
VARIABLE : ..DIMNAMES[D=gt4d011]
SUBSET : 21 points (X)
@@ -56594,7 +56585,7 @@ list lnames
4 / 4:"PSYTedges"
5 / 5:"PSZT1"
6 / 6:"PSZTedges"
- 7 / 7:"TIME11"
+ 7 / 7:"TIME110"
8 / 8:"PSXT91_108"
9 / 9:"PSYT35_56"
10 / 10:"PSZT1_10"
@@ -57029,15 +57020,7 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLATITUDE : 9N
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 2 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASTIME : JAN
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 3 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
- LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 4 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 5 -4.700E-01 -5.500E-01 0.080 0 SYSTEM @ASSST[Y=39N] No Valid Data
+ LAB 1 -4.700E-01 -5.500E-01 0.080 0 SYSTEM @ASSST[Y=39N] No Valid Data
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
! For plots with multi lines in one plot command, mark each if no data
@@ -57086,7 +57069,7 @@ use gtsa056_2.cdf
let var = u[x=180,y=0,k=1,t=1-jan-1982:1-jan-1983]
plot var, var[t=@med], var[t=@med:3], var[t=@med:7]
list/t=1-dec-1982:1-jan-1983 var, var[t=@med], var[t=@med:3], var[t=@med:7]
- DATA SET: ./gtsa056_2.cdf
+ DATA SET: ./data/gtsa056_2.cdf
TIME: NOV-1982 to JAN-1983
LONGITUDE: 180E
LATITUDE: 0
@@ -57112,7 +57095,7 @@ use coads_climatology
let var= sst[y=0,L=10]
plot var,var[x=@med:3], var[x=@med:7]
list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 80W to 50W
LATITUDE: 1S
TIME: FEB-0002
@@ -57139,7 +57122,7 @@ list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
let var= sst[x=180,L=10]
plot var,var[y=@med:3], var[y=@med:7]
list/y=-20:0 var,var[y=@med:3], var[y=@med:7]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 20S to 0
LONGITUDE: 179E
TIME: FEB-0002
@@ -57308,7 +57291,7 @@ sh grid sst
LON LONGITUDE 7200mr 179.97W(-179.97) 179.97E full
LAT1800_1800 LATITUDE 1 r 0.025S 0.025S full
ENS Z (count) 1 r 1 1 full
- TIME11 TIME 1 r 01-APR-2006 00:00 01-APR-2006 00:00 full
+ TIME21 TIME 1 r 01-APR-2006 00:00 01-APR-2006 00:00 full
! This first was wrong, returned data at x=-180
list/x=180 sst
@@ -57521,11 +57504,11 @@ USE bug1421_b
SHOW DATA
currently SET data sets:
- 1> ./bug1421_a.nc
+ 1> ./data/bug1421_a.nc
name title I J K L
A zonal wind stress 1:1 1:1 ... 1:20
- 2> ./bug1421_b.nc (default)
+ 2> ./data/bug1421_b.nc (default)
name title I J K L
B T[GT=MON_IRREG_NLP] ... ... ... 1:12
@@ -58110,7 +58093,7 @@ GO bn_proleptic_gregorian_calendar
set data proleptic_gregorian.nc
show data
currently SET data sets:
- 1> ./proleptic_gregorian.nc (default)
+ 1> ./data/proleptic_gregorian.nc (default)
name title I J K L
MY_DATA SIN(L[GT=TDAYS]) ... ... ... 1:32
@@ -58778,7 +58761,7 @@ GO bn_last_go_file.jnl
! test the automatically-defined symbol LAST_GO_FILE
show sym last_go_file
-LAST_GO_FILE = "./bn_last_go_file.jnl"
+LAST_GO_FILE = "./v6jnls/bn_last_go_file.jnl"
GO bn_reset bn_cancel_upcase_uservar.jnl
@@ -59339,7 +59322,7 @@ list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijklave
set data/format=cdf test_fil0
show data/full
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -59445,7 +59428,7 @@ show grid ijkl
PSXU LONGITUDE 160mr 131E 70W full
PSYU LATITUDE 100 i 27.672S 50N full
PSZT1 DEPTH (m) 27 i- 5 3824 full
- TIME12 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00 full
+ TIME22 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00 full
cancel data test_fil0
! 5/99 moved old bn230_cdf.sub3 to bn_cdf_keepax.sub4 to stay inline w/ old benchmarks *kob*
GO bn_cdf_keepax.sub4
@@ -59531,7 +59514,7 @@ list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
set data/format=cdf test_fil
show data/full
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -59614,7 +59597,7 @@ set data reverse_axes
show data/var
currently SET data sets:
- 1> ./reverse_axes.cdf (default)
+ 1> ./data/reverse_axes.cdf (default)
name title I J K L
FCN_NORM COS(X/10)*SIN(Y/2) 1:51 1:21 ... ...
@@ -59631,7 +59614,7 @@ show data/var
list/x=180 fcn_norm,fcn_rev
WARNING: Listed variables have ambiguous coordinates on axes: Y
- DATA SET: ./reverse_axes.cdf
+ DATA SET: ./data/reverse_axes.cdf
LONGITUDE: 180E
Column 1: FCN_NORM is COS(X/10)*SIN(Y/2)
Column 2: FCN_REV is COS(X/10)*SIN(Y/2)
@@ -59692,7 +59675,7 @@ sh command list
/MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
/CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
- /OUTTYPE/CURVILIN/LAYERZ
+ /OUTTYPE/CURVILIN/LAYERZ/ASGLOBAL
define axis/x=1:100:1/units=deg x100
define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
let a = x[gx=x100] + t[gt=t31]
@@ -60145,7 +60128,7 @@ USE grads_bug_file.nc
! A4 has z axis with long name layer
SHOW DATA
currently SET data sets:
- 1> ./grads_bug_file.nc (default)
+ 1> ./data/grads_bug_file.nc (default)
name title I J K L
AM Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G 1:10 1:5 1:5 ...
AR Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX 1:10 1:5 1:6 ...
@@ -60195,10 +60178,10 @@ ooooooooooooooooooooooooooooooooooooooooooo
Starting test: bn_clock_syms
GO bn_clock_syms
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "83.3653"
-CLOCK_SECS = "114.647"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:59:32"
+DELTA_CPU = "87.9596"
+CLOCK_SECS = "116.003"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:33:45"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60207,8 +60190,8 @@ CURRENT_TIME = "12:59:32"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.059991"
-CLOCK_SECS = "114.837"
+DELTA_CPU = "0.082987"
+CLOCK_SECS = "116.176"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -60222,60 +60205,60 @@ repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=9
!-> REPEAT: K=10
let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.435934
+ !-> DEFINE VARIABLE ten_plots = 0.46593
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.001"
-CLOCK_SECS = "116.453"
+DELTA_CPU = "9.99E-04"
+CLOCK_SECS = "117.871"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "116.455"
+CLOCK_SECS = "117.873"
repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
let sumcpu =`sumcpu + dt`)
!-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
!-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.050992
- !-> DEFINE VARIABLE sumcpu =0.050992
+ !-> DEFINE VARIABLE dt = 0.055992
+ !-> DEFINE VARIABLE sumcpu =0.055992
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.052992
- !-> DEFINE VARIABLE sumcpu =0.103984
+ !-> DEFINE VARIABLE dt = 0.05799
+ !-> DEFINE VARIABLE sumcpu =0.113982
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.052992
- !-> DEFINE VARIABLE sumcpu =0.156976
+ !-> DEFINE VARIABLE dt = 0.057992
+ !-> DEFINE VARIABLE sumcpu =0.171974
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.053992
- !-> DEFINE VARIABLE sumcpu =0.210968
+ !-> DEFINE VARIABLE dt = 0.082987
+ !-> DEFINE VARIABLE sumcpu =0.254961
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.051991
- !-> DEFINE VARIABLE sumcpu =0.262959
+ !-> DEFINE VARIABLE dt = 0.057991
+ !-> DEFINE VARIABLE sumcpu =0.312952
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.051993
- !-> DEFINE VARIABLE sumcpu =0.314952
+ !-> DEFINE VARIABLE dt = 0.056992
+ !-> DEFINE VARIABLE sumcpu =0.369944
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.053991
- !-> DEFINE VARIABLE sumcpu =0.368943
+ !-> DEFINE VARIABLE dt = 0.05999
+ !-> DEFINE VARIABLE sumcpu =0.429934
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.054992
- !-> DEFINE VARIABLE sumcpu =0.423935
+ !-> DEFINE VARIABLE dt = 0.059991
+ !-> DEFINE VARIABLE sumcpu =0.489925
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.052992
- !-> DEFINE VARIABLE sumcpu =0.476927
+ !-> DEFINE VARIABLE dt = 0.057991
+ !-> DEFINE VARIABLE sumcpu =0.547916
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.052991
- !-> DEFINE VARIABLE sumcpu =0.529918
+ !-> DEFINE VARIABLE dt = 0.056992
+ !-> DEFINE VARIABLE sumcpu =0.604908
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.529918
-0.529918
+ !-> MESSAGE/CONTINUE 0.604908
+0.604908
sh sym CLOCK_SECS
-CLOCK_SECS = "119.245"
+CLOCK_SECS = "120.778"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "12:57"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "12:59:36"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:31"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:33:50"
! ******** V6.3 Additions below ***********
@@ -60471,7 +60454,7 @@ use lev_rev_up.nc
use lev_rev_up.nc
list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
- DATA SET: ./lev_rev_up.nc
+ DATA SET: ./data/lev_rev_up.nc
Z (METERS): -5000 to 0
Column 1: Z is Z (axis ZAXLEVITR)
Column 2: ZBOXLO is ZBOXLO (axis ZAXLEVITR)
@@ -60935,7 +60918,7 @@ LIST var
16-JAN-1969 / 20: 0.6617913
CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX143)
+ !-> CAN AXIS/STRIDE (AX144)
SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
LIST var
VARIABLE : COS(T[GT=TRUEMONTH]/100)
@@ -61312,7 +61295,7 @@ DEFINE GRID/X=XEZ1/Y=EZ ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
FILE/VAR="X1,X2"/COLUMNS=6/GRID=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:3 1:20480 ... ...
@@ -61338,7 +61321,7 @@ LIST X1
5 / 5: 0.4780000 0.5150000 0.4690000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:3 1:5 ... ...
X2 X2 1:3 1:5 ... ...
@@ -61518,14 +61501,14 @@ define axis/t=15-jan-1982:15-mar-1984:120/unit=hour tax5day
define axis/x=120e:60w:10/unit=degrees xax10
define grid/like=u/t=tax5day g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day
getgrid EX#1 C: 7 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
define grid/like=u/x=xax10/z=w/t=tax5day g5_10g00abcdefghijklmnopqrstuvwxyz1234567890
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
getgrid EX#1 C: 8 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
+ dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
getgrid EX#1 C: 9 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DW11 PSXT PSYT1 PSZW TIME14
+ allocate dynamic grid PS3DW11 PSXT PSYT1 PSZW TIME24
set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
!set reg/i=101:105/j=41:42/k=1:2/l=3:4
@@ -61533,7 +61516,7 @@ set reg/x=130w:125w/y=0:1.5/z=0:15/t=21-JAN-1982:24-jan-1982
use gtsa056_1 !kob 4/99
LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
- dealloc dynamic grid PS3DW11 PSXT PSYT1 PSZW TIME14
+ dealloc dynamic grid PS3DW11 PSXT PSYT1 PSZW TIME24
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3
strip regrid on X: TEMP --> G5_10G00ABCDEFGH @AAV
@@ -61614,23 +61597,23 @@ set region/x=180W/y=0/z=5/t=21-JAN-1982:13-JUN-1983
load temp[i=50:51,j=45:56,k=1:2,l=1:172] ! preload to save time
dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT1 PSXT PSYT1 PSZT2 TIME14
+ allocate dynamic grid PS3DT1 PSXT PSYT1 PSZT2 TIME24
eval EX#1 C: 4 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
strip moduloing TEMP on T axis: 1 172 dset: 2
reading TEMP M:244 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 168
doing moduloing TEMP on T axis: 1 168 dset: 2
plot temp
- dealloc dynamic grid PS3DT1 PSXT PSYT1 PSZT2 TIME14
+ dealloc dynamic grid PS3DT1 PSXT PSYT1 PSZT2 TIME24
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DT1 PSXT PSYT1 PSZT2 TIME14
+ allocate dynamic grid PS3DT1 PSXT PSYT1 PSZT2 TIME24
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170
found TEMP M:246 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172
setting up plot
PPL plot 760 complete
plot/over temp[g=u]
- dealloc dynamic grid PS3DT1 PSXT PSYT1 PSZT2 TIME14
+ dealloc dynamic grid PS3DT1 PSXT PSYT1 PSZT2 TIME24
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @LIN
@@ -61646,7 +61629,7 @@ plot/over temp[g=u]
setting up plot
PPL plot 761 complete
plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
@@ -61678,7 +61661,7 @@ PPL plot 763 complete
plot/over temp[g=u at ave]
dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @AAV
@@ -61694,7 +61677,7 @@ plot/over temp[g=u at ave]
setting up plot
PPL plot 764 complete
plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
@@ -61728,7 +61711,7 @@ PPL plot 766 complete
plot/over temp[g=u at asn]
dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @ASN
@@ -61748,7 +61731,7 @@ plot/over temp[g=u at asn]
setting up plot
PPL plot 767 complete
plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at asn]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 2 I: 7 7 J: 45 45 K: 1 1 L: 2 104
strip regrid on X: TEMP --> G5_10G00ABCDEFGH @ASN
@@ -61768,17 +61751,17 @@ PPL plot 768 complete
plot/over temp[g=u,gt=u at ave]
dealloc dynamic grid G5_10 XAX10 PSYU PSZW TAX5DAY
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
+ dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
+ allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170
- allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ allocate dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
found TEMP M:233 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
setting up plot
PPL plot 769 complete
plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day,gt=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
- dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME14
+ dealloc dynamic grid PS3DU1 PSXU PSYU PSZT2 TIME24
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
@@ -61960,7 +61943,7 @@ show grid gg123456789012345678901
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
COADSY LATITUDE 90 r 89S 89N
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58
let f = sst[y=20s:20n:.1,d=coads_climatology]
DEFINE GRID/LIKE=f/x=temp[d=levitus_climatology] gg123456789012345678902
cancel variable f
@@ -61970,7 +61953,7 @@ show grid gg123456789012345678902
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
(AX009) LATITUDE 401 r 20S 20N
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58
show grid/dynamic
Dynamic grids:
no implicit grids
@@ -62027,7 +62010,7 @@ show grid
COADSX LONGITUDE 180mr 21E 19E(379) 1 pt
(AX121) LATITUDE 201 r 10S 10N 201 pts
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 1 pt
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 1 pt
show grid/dynamic
Dynamic grids:
GRID (G104) use count: 1
@@ -62035,7 +62018,7 @@ Dynamic grids:
COADSX LONGITUDE 180mr 21E 19E(379)
(AX121) LATITUDE 201 r 10S 10N
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58
! deliberate errors
set mode ignore
@@ -62148,7 +62131,7 @@ GO err64_packed_data
! sp ncpdq fine_x_axis.nc err64_packed_data.nc
use err64_packed_data.nc
sh att/all sst
- attributes for dataset: ./err64_packed_data.nc
+ attributes for dataset: ./data/err64_packed_data.nc
SST.missing_value = 1.E+20
SST._FillValue = 1.E+20
SST.long_name = sea surface temperature [degc]
@@ -62750,18 +62733,18 @@ sp cat the_xml_file.xml
<value><![CDATA[MONTH_IRREG]]></value>
</attribute>
</axis>
-<axis name="YAX1_5">
+<axis name="XAX1_15">
<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
+ <value><![CDATA[I]]></value>
</attribute>
<attribute name="length" type="short">
- <value>5</value>
+ <value>15</value>
</attribute>
<attribute name="start" type="double">
<value>1</value>
</attribute>
<attribute name="end" type="double">
- <value>5</value>
+ <value>15</value>
</attribute>
<attribute name="point_spacing" type="char">
<value><![CDATA[even]]></value>
@@ -62773,24 +62756,24 @@ sp cat the_xml_file.xml
<value><![CDATA[DOUBLE]]></value>
</attribute>
<attribute name="axis" type="char">
- <value><![CDATA[Y]]></value>
+ <value><![CDATA[X]]></value>
</attribute>
<attribute name="orig_file_axname" type="char">
- <value><![CDATA[YAX1_5]]></value>
+ <value><![CDATA[XAX1_15]]></value>
</attribute>
</axis>
-<axis name="XAX1_15">
+<axis name="YAX1_5">
<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
+ <value><![CDATA[J]]></value>
</attribute>
<attribute name="length" type="short">
- <value>15</value>
+ <value>5</value>
</attribute>
<attribute name="start" type="double">
<value>1</value>
</attribute>
<attribute name="end" type="double">
- <value>15</value>
+ <value>5</value>
</attribute>
<attribute name="point_spacing" type="char">
<value><![CDATA[even]]></value>
@@ -62802,10 +62785,10 @@ sp cat the_xml_file.xml
<value><![CDATA[DOUBLE]]></value>
</attribute>
<attribute name="axis" type="char">
- <value><![CDATA[X]]></value>
+ <value><![CDATA[Y]]></value>
</attribute>
<attribute name="orig_file_axname" type="char">
- <value><![CDATA[XAX1_15]]></value>
+ <value><![CDATA[YAX1_5]]></value>
</attribute>
</axis>
</axes>
@@ -62843,7 +62826,7 @@ stat temp[x=@ave,t=@ave]
TIME: AUG-1982 to JAN-1983 (XT ave)
E: N/A
F: N/A
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 198 (1*22*9*1*1*1)
# flagged as bad data: 0
@@ -62861,7 +62844,7 @@ stat temp[x=@ave,z=@ave]
TIME: AUG-1982 to JAN-1983
E: N/A
F: N/A
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 550 (1*22*1*25*1*1)
# flagged as bad data: 0
@@ -62909,7 +62892,7 @@ stat temp[z=@ave,t=@ave,y=-2:2]
TIME: AUG-1982 to JAN-1983 (ZT ave)
E: N/A
F: N/A
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 234 (18*13*1*1*1*1)
# flagged as bad data: 0
@@ -63685,7 +63668,7 @@ cancel grid mygrid
use bn_set_axis_regular
show data
currently SET data sets:
- 1> ./bn_set_axis_regular.nc (default)
+ 1> ./data/bn_set_axis_regular.nc (default)
name title I J K L
MYDATA 2 * X + Y 1:10 1:10 ... ...
@@ -64188,9 +64171,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 45 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v7.21 (beta/debug)"
- 3 / 3:" ! Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17"
- 4 / 4:" ! 6-Sep-17 12:57 "
+ 2 / 2:" ! FERRET v7.23 (beta/debug)"
+ 3 / 3:" ! Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17"
+ 4 / 4:" ! 29-Nov-17 17:31 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -64302,7 +64285,7 @@ plot/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
! Numeric results
list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: AUG-1982 to JAN-1983
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -64339,7 +64322,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
10-JAN-1983 12 / 25: 32.59 32.81 32.81 32.59
list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: AUG-1982 to JAN-1983
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -64375,7 +64358,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
04-JAN-1983 10 / 24: 32.81 32.81 32.94 32.59
10-JAN-1983 12 / 25: 32.59 32.81 32.81 32.59
list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: AUG-1982 to JAN-1983
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -64411,7 +64394,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
04-JAN-1983 10 / 24: 32.81 32.94 32.97 32.59
10-JAN-1983 12 / 25: 32.59 32.81 32.94 32.59
list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: AUG-1982 to JAN-1983
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -64448,7 +64431,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
10-JAN-1983 12 / 25: 32.59 32.81 32.97 32.59
list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
LONGITUDE: 139.5W to 122.5W
LATITUDE: 2.5N
DEPTH (m): 5
@@ -64477,7 +64460,7 @@ list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn
123.5W / 107: 27.15 27.15 27.17 27.13
122.5W / 108: 27.17 27.17 27.17 27.15
list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at smn]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
LATITUDE: 3.667S to 3.667N
LONGITUDE: 123.5W
DEPTH (m): 5
@@ -64511,7 +64494,7 @@ list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at s
3.5N / 56: 28.06 28.06 28.06 27.70
list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
DEPTH (m): 0 to 100
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -64602,7 +64585,7 @@ STAT/L=1 huge
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -64622,7 +64605,7 @@ STAT/L=1 huge
TIME: JAN
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -64648,7 +64631,7 @@ GO bn_labnum_calendar
use gt4d011
set axis/calendar=noleap `temp,return=taxis`
- !-> set axis/calendar=noleap TIME12
+ !-> set axis/calendar=noleap TIME110
plot/x=132w/y=2n/k=1 temp
sh sym LABNUM_CALEND
LABNUM_CALEND = "4"
@@ -64699,9 +64682,9 @@ REPEAT/RANGE=1:`nd`/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m
!-> REPEAT/RANGE=1:4/name=m (DEFINE SYMBOL m = `m`; SH AXIS/XML `axis_names[i=($m)]`)
!-> REPEAT: M:1
!-> DEFINE SYMBOL m = 1
- !-> SH AXIS/XML TIME13
+ !-> SH AXIS/XML TIME23
<axes>
-<axis name="TIME13">
+<axis name="TIME23">
<attribute name="direction" type="char">
<value><![CDATA[L]]></value>
</attribute>
@@ -64872,7 +64855,7 @@ GO err664_xml_one_point_axis
USE a_cartesian_bug1179.nc
SH DAT
currently SET data sets:
- 1> ./a_cartesian_bug1179.nc (default)
+ 1> ./data/a_cartesian_bug1179.nc (default)
name title I J K L
TEMP THETA_FO(SALT_EXTRAP,TEMP_EXTRA 1:1 1:1 1:10 1:1
@@ -64882,7 +64865,7 @@ LET/D=1 a = temp
! and also the Z axis which has 10 points.
SH VAR/XML
<global>
-<var name="A[D=./a_cartesian_bug1179.nc]">
+<var name="A[D=./data/a_cartesian_bug1179.nc]">
<attribute name="definition" type="char">
<value><![CDATA[TEMP]]></value>
</attribute>
@@ -64897,7 +64880,7 @@ SH VAR/XML
<xaxis>GRID_X_T</xaxis>
<yaxis>GRID_Y_T</yaxis>
<zaxis>ZT</zaxis>
-<taxis>TIME13</taxis>
+<taxis>TIME23</taxis>
</axes>
</grid>
</var>
@@ -64910,7 +64893,7 @@ LET/D=1 temp_ave_t = temp[Z=37.5:112.5 at AVE]
! but not the Z axis, which has been averaged away.
SH VAR/XML
<global>
-<var name="TEMP_AVE_T[D=./a_cartesian_bug1179.nc]">
+<var name="TEMP_AVE_T[D=./data/a_cartesian_bug1179.nc]">
<attribute name="definition" type="char">
<value><![CDATA[TEMP[Z=37.5:112.5 at AVE]]]></value>
</attribute>
@@ -64924,7 +64907,7 @@ SH VAR/XML
<axes>
<xaxis>GRID_X_T</xaxis>
<yaxis>GRID_Y_T</yaxis>
-<taxis>TIME13</taxis>
+<taxis>TIME23</taxis>
</axes>
</grid>
</var>
@@ -64943,7 +64926,7 @@ set mode calendar:minutes ! this was set to months, back in bn_pattern.jnl
use epic_formatted_file.nc
list/prec=7 t[gt=t_28]
VARIABLE : T
- axis TIME13
+ axis TIME23
FILENAME : epic_formatted_file.nc
TIME : 04-MAY-2007 05:02
38825.21
@@ -64963,7 +64946,7 @@ list ..dimnames
VARIABLE : ..DIMNAMES
FILENAME : epic_formatted_file.nc
SUBSET : 4 points (X)
- 1 / 1:"TIME13"
+ 1 / 1:"TIME23"
2 / 2:"dep"
3 / 3:"lat"
4 / 4:"lon"
@@ -65337,7 +65320,7 @@ GO err667_att_too_long
use toolong.nc
sh dat/att
currently SET data sets:
- 1> ./toolong.nc (default)
+ 1> ./data/toolong.nc (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -65363,7 +65346,7 @@ sh dat/att
orig_file_axname
CHAR 8 F LAT54_54
-(TIME13) DOUBLE long_name CHAR 23 T time interval endpoints
+(TIME23) DOUBLE long_name CHAR 23 T time interval endpoints
units CHAR 30 T days since 0001-01-01 00:00:00
calendar CHAR 6 T noleap
axis CHAR 1 T T
@@ -65480,9 +65463,9 @@ GO err667_show_var_twice
use coads_climatology
sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
+ SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./data/coads_climatology.cdf
sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
+ SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./data/coads_climatology.cdf
!should return nothing
sh var airt
@@ -65806,7 +65789,7 @@ GO err67_reverse_bounds
use reverse_z_bnds.nc
list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
- DATA SET: ./reverse_z_bnds.nc
+ DATA SET: ./data/reverse_z_bnds.nc
Z: 0 to 1
Column 1: LEV_VAR is a variable on the depth axis (none)
Column 2: ZBOXLO is ZBOXLO (axis LEV)
@@ -66311,11 +66294,11 @@ GO err672_axis_order
use err67_axis_order.nc
-sp cp err67_axis_order.nc err67_axis_order_copy.nc
+sp cp data/err67_axis_order.nc err67_axis_order_copy.nc
use err67_axis_order_copy.nc
sh dat
currently SET data sets:
- 1> ./err67_axis_order.nc
+ 1> ./data/err67_axis_order.nc
name title I J K L
UCOV UCOV 1:6 1:9 1:3 1:1
CONTROLE CONTROLE 1:6 ... ... ...
@@ -66494,7 +66477,7 @@ let a = x[gx=0:2:1]; save/clob/file=a1.nc a
sho grid/x a
GRID (G103)
name axis # pts start end subset
- (AX084) X 3 r 0 2 3 pts
+ (AX140) X 3 r 0 2 3 pts
normal Y
normal Z
normal T
@@ -66527,14 +66510,14 @@ can var/all; can dat/all
use a1
list x[gx=a[d=1]]
VARIABLE : X
- axis AX084
+ axis AX140
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
2 / 3: 2.000
list x[gx=a[d=1,i=1:3]]
VARIABLE : X
- axis AX084
+ axis AX140
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66549,7 +66532,7 @@ use a2
list x[gx=a[d=1]]
VARIABLE : X
- axis AX084
+ axis AX140
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66558,7 +66541,7 @@ list x[gx=a[d=1]]
! The bug was that this listed 1,2,3 rather than 0,1,2
list x[gx=a[d=1,i=1:3]]
VARIABLE : X
- axis AX084
+ axis AX140
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66574,7 +66557,7 @@ list x[gx=a[d=1,i=1:3]]
! Why is the following different?
list x[gx=a[d=1],i=1:3]
VARIABLE : X
- axis AX084
+ axis AX140
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66658,7 +66641,7 @@ STAT IF intvar THEN 1
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 8780
@@ -66678,7 +66661,7 @@ STAT IFV intvar THEN 1
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -66741,40 +66724,40 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.723
-randu2_randn2 0.844
-randu2_randn2 0.361
-randu2_randn2 0.801
-randu2_randn2 0.714
+randu2_randn2 0.733
+randu2_randn2 0.756
+randu2_randn2 0.889
+randu2_randn2 0.187
+randu2_randn2 0.359
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.629
-randu2_randn2 0.222
-randu2_randn2 0.004
-randu2_randn2 0.305
-randu2_randn2 0.983
+randu2_randn2 0.549
+randu2_randn2 0.332
+randu2_randn2 0.852
+randu2_randn2 0.809
+randu2_randn2 0.454
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.810
-randu2_randn2 0.972
-randu2_randn2 0.723
-randu2_randn2 0.013
-randu2_randn2 0.234
-randu2_randn2 0.089
+randu2_randn2 0.392
+randu2_randn2 0.111
+randu2_randn2 0.822
+randu2_randn2 0.175
+randu2_randn2 0.664
+randu2_randn2 0.303
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.749
-randu2_randn2 0.206
-randu2_randn2 0.925
-randu2_randn2 0.963
-randu2_randn2 0.098
-randu2_randn2 0.286
+randu2_randn2 0.822
+randu2_randn2 0.124
+randu2_randn2 0.734
+randu2_randn2 0.740
+randu2_randn2 0.031
+randu2_randn2 0.177
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66799,40 +66782,40 @@ randu2_randn2 0.638
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 1.582
-randu2_randn2 0.471
-randu2_randn2 0.045
-randu2_randn2 0.654
-randu2_randn2 0.983
+randu2_randn2 -1.081
+randu2_randn2 0.219
+randu2_randn2 -0.515
+randu2_randn2 0.111
+randu2_randn2 0.281
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 -0.699
-randu2_randn2 1.179
-randu2_randn2 -0.448
-randu2_randn2 1.259
-randu2_randn2 0.687
+randu2_randn2 -0.233
+randu2_randn2 -0.053
+randu2_randn2 -0.351
+randu2_randn2 -0.735
+randu2_randn2 -0.077
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -1.156
-randu2_randn2 1.197
-randu2_randn2 0.780
-randu2_randn2 -0.299
-randu2_randn2 0.855
-randu2_randn2 -0.234
+randu2_randn2 0.908
+randu2_randn2 -0.681
+randu2_randn2 -1.306
+randu2_randn2 -1.034
+randu2_randn2 -0.679
+randu2_randn2 1.284
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 1.989
-randu2_randn2 -1.199
-randu2_randn2 -0.140
-randu2_randn2 -0.038
-randu2_randn2 0.549
-randu2_randn2 -1.772
+randu2_randn2 1.348
+randu2_randn2 -0.931
+randu2_randn2 0.590
+randu2_randn2 1.527
+randu2_randn2 -0.122
+randu2_randn2 1.097
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66857,14 +66840,14 @@ randu2_randn2 -1.279
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.742 1.742 0.784
-randu2_randn2 1.210 1.210 0.784
-randu2_randn2 0.784 0.784 0.039
-randu2_randn2 0.039 0.039 0.784
-randu2_randn2 -0.057 -0.057 0.748
-randu2_randn2 -0.918 -0.174 0.748
-randu2_randn2 -0.174 -0.174 0.748
-randu2_randn2 0.895 0.748 0.748
+randu2_randn2 1.956 1.956 0.236
+randu2_randn2 1.481 1.481 0.236
+randu2_randn2 0.236 0.236 0.158
+randu2_randn2 0.158 0.158 0.236
+randu2_randn2 -0.021 -0.021 0.236
+randu2_randn2 -0.521 -0.222 0.236
+randu2_randn2 -0.222 -0.222 0.236
+randu2_randn2 0.560 0.560 0.560
GO bn_reset bn_axis_cf
cancel mode verify
@@ -66906,7 +66889,7 @@ sp ncdump -h a.nc >> all_ncdump.out
use degrees
sh att/all (`var,return=xaxis`)
!-> sh att/all (XAXIS)
- attributes for dataset: ./degrees.nc
+ attributes for dataset: ./data/degrees.nc
(XAXIS).units = degrees_east
(XAXIS).point_spacing = even
(XAXIS).axis = X
@@ -66925,7 +66908,7 @@ sp ncdump -h a.nc >> all_ncdump.out
use bn_strides
sh att/all (TTIME)
- attributes for dataset: ./bn_strides.cdf
+ attributes for dataset: ./data/bn_strides.cdf
(TTIME).units = DAYS since 1901-01-15 00:00:00
(TTIME).time_origin = 15-JAN-1901
(TTIME).point_spacing = even
@@ -67052,7 +67035,7 @@ sp cat xml_out.xml
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<data>
<datasets>
-<dataset name="./coads_climatology.cdf" default="true">
+<dataset name="./data/coads_climatology.cdf" default="true">
<title> </title>
<var name="SST">
<attribute name="units" type="char">
@@ -67077,7 +67060,7 @@ sp cat xml_out.xml
<axes>
<xaxis>COADSX</xaxis>
<yaxis>COADSY</yaxis>
-<taxis>TIME10</taxis>
+<taxis>TIME20</taxis>
</axes>
</grid>
</var>
@@ -67142,7 +67125,7 @@ sp cat xml_out.xml
<value><![CDATA[COADSY]]></value>
</attribute>
</axis>
-<axis name="TIME10">
+<axis name="TIME20">
<attribute name="direction" type="char">
<value><![CDATA[L]]></value>
</attribute>
@@ -67241,7 +67224,7 @@ GO bn_eof_simple
! 7/2012
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
+! 11/2017 - still try to test old eof functions, if they are re-implemented
! Define two locations.
def axis /X=1:2:1 xaxis
@@ -67288,20 +67271,47 @@ list eofsvd_stat(spacetime)
show func eofsvd_space
EOFSVD_SPACE(A)
- Return SVD EOF spacial fields from XYT field
+ Return SVD EOF spatial fields from XYT field
A: Variable in x,y,t; may be fcn of z,e,f
! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
! but might be mixed by rotation.
! This is if the EOF functions are in units of the original data,
! thus the eigenvectors times the square-root of the eigenvalue.
! EOF vectors are always orthogonal to each other.
-list eofsvd_space(spacetime)
- VARIABLE : EOFSVD_SPACE(SPACETIME)
- SUBSET : 2 by 2 points (X-T)
- 1 2
- 1 2
- 1 / 1: 0.0000 -0.7071
- 2 / 2: -0.7071 -0.0000
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 0.5000
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ 0.0000
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ 0.0000
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 0.5000
show func eofsvd_tfunc
EOFSVD_TFUNC(A)
@@ -67309,251 +67319,40 @@ EOFSVD_TFUNC(A)
A: Variable in x,y,t; may be fcn of z,e,f
! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
! TAF vectors are always orthogonal to each other.
-list eofsvd_tfunc(spacetime)
- VARIABLE : EOFSVD_TFUNC(SPACETIME)
- SUBSET : 2 by 240 points (X-T)
- 1 2
- 1 2
- 0 / 1: -0.000 -1.414
- 0.25 / 2: -0.185 -1.402
- 0.5 / 3: -0.366 -1.366
- 0.75 / 4: -0.541 -1.307
- 1 / 5: -0.707 -1.225
- 1.25 / 6: -0.861 -1.122
- 1.5 / 7: -1.000 -1.000
- 1.75 / 8: -1.122 -0.861
- 2 / 9: -1.225 -0.707
- 2.25 / 10: -1.307 -0.541
- 2.5 / 11: -1.366 -0.366
- 2.75 / 12: -1.402 -0.185
- 3 / 13: -1.414 -0.000
- 3.25 / 14: -1.402 0.185
- 3.5 / 15: -1.366 0.366
- 3.75 / 16: -1.307 0.541
- 4 / 17: -1.225 0.707
- 4.25 / 18: -1.122 0.861
- 4.5 / 19: -1.000 1.000
- 4.75 / 20: -0.861 1.122
- 5 / 21: -0.707 1.225
- 5.25 / 22: -0.541 1.307
- 5.5 / 23: -0.366 1.366
- 5.75 / 24: -0.185 1.402
- 6 / 25: -0.000 1.414
- 6.25 / 26: 0.185 1.402
- 6.5 / 27: 0.366 1.366
- 6.75 / 28: 0.541 1.307
- 7 / 29: 0.707 1.225
- 7.25 / 30: 0.861 1.122
- 7.5 / 31: 1.000 1.000
- 7.75 / 32: 1.122 0.861
- 8 / 33: 1.225 0.707
- 8.25 / 34: 1.307 0.541
- 8.5 / 35: 1.366 0.366
- 8.75 / 36: 1.402 0.185
- 9 / 37: 1.414 0.000
- 9.25 / 38: 1.402 -0.185
- 9.5 / 39: 1.366 -0.366
- 9.75 / 40: 1.307 -0.541
- 10 / 41: 1.225 -0.707
- 10.25 / 42: 1.122 -0.861
- 10.5 / 43: 1.000 -1.000
- 10.75 / 44: 0.861 -1.122
- 11 / 45: 0.707 -1.225
- 11.25 / 46: 0.541 -1.307
- 11.5 / 47: 0.366 -1.366
- 11.75 / 48: 0.185 -1.402
- 12 / 49: 0.000 -1.414
- 12.25 / 50: -0.185 -1.402
- 12.5 / 51: -0.366 -1.366
- 12.75 / 52: -0.541 -1.307
- 13 / 53: -0.707 -1.225
- 13.25 / 54: -0.861 -1.122
- 13.5 / 55: -1.000 -1.000
- 13.75 / 56: -1.122 -0.861
- 14 / 57: -1.225 -0.707
- 14.25 / 58: -1.307 -0.541
- 14.5 / 59: -1.366 -0.366
- 14.75 / 60: -1.402 -0.185
- 15 / 61: -1.414 -0.000
- 15.25 / 62: -1.402 0.185
- 15.5 / 63: -1.366 0.366
- 15.75 / 64: -1.307 0.541
- 16 / 65: -1.225 0.707
- 16.25 / 66: -1.122 0.861
- 16.5 / 67: -1.000 1.000
- 16.75 / 68: -0.861 1.122
- 17 / 69: -0.707 1.225
- 17.25 / 70: -0.541 1.307
- 17.5 / 71: -0.366 1.366
- 17.75 / 72: -0.185 1.402
- 18 / 73: -0.000 1.414
- 18.25 / 74: 0.185 1.402
- 18.5 / 75: 0.366 1.366
- 18.75 / 76: 0.541 1.307
- 19 / 77: 0.707 1.225
- 19.25 / 78: 0.861 1.122
- 19.5 / 79: 1.000 1.000
- 19.75 / 80: 1.122 0.861
- 20 / 81: 1.225 0.707
- 20.25 / 82: 1.307 0.541
- 20.5 / 83: 1.366 0.366
- 20.75 / 84: 1.402 0.185
- 21 / 85: 1.414 0.000
- 21.25 / 86: 1.402 -0.185
- 21.5 / 87: 1.366 -0.366
- 21.75 / 88: 1.307 -0.541
- 22 / 89: 1.225 -0.707
- 22.25 / 90: 1.122 -0.861
- 22.5 / 91: 1.000 -1.000
- 22.75 / 92: 0.861 -1.122
- 23 / 93: 0.707 -1.225
- 23.25 / 94: 0.541 -1.307
- 23.5 / 95: 0.366 -1.366
- 23.75 / 96: 0.185 -1.402
- 24 / 97: 0.000 -1.414
- 24.25 / 98: -0.185 -1.402
- 24.5 / 99: -0.366 -1.366
- 24.75 / 100: -0.541 -1.307
- 25 / 101: -0.707 -1.225
- 25.25 / 102: -0.861 -1.122
- 25.5 / 103: -1.000 -1.000
- 25.75 / 104: -1.122 -0.861
- 26 / 105: -1.225 -0.707
- 26.25 / 106: -1.307 -0.541
- 26.5 / 107: -1.366 -0.366
- 26.75 / 108: -1.402 -0.185
- 27 / 109: -1.414 -0.000
- 27.25 / 110: -1.402 0.185
- 27.5 / 111: -1.366 0.366
- 27.75 / 112: -1.307 0.541
- 28 / 113: -1.225 0.707
- 28.25 / 114: -1.122 0.861
- 28.5 / 115: -1.000 1.000
- 28.75 / 116: -0.861 1.122
- 29 / 117: -0.707 1.225
- 29.25 / 118: -0.541 1.307
- 29.5 / 119: -0.366 1.366
- 29.75 / 120: -0.185 1.402
- 30 / 121: -0.000 1.414
- 30.25 / 122: 0.185 1.402
- 30.5 / 123: 0.366 1.366
- 30.75 / 124: 0.541 1.307
- 31 / 125: 0.707 1.225
- 31.25 / 126: 0.861 1.122
- 31.5 / 127: 1.000 1.000
- 31.75 / 128: 1.122 0.861
- 32 / 129: 1.225 0.707
- 32.25 / 130: 1.307 0.541
- 32.5 / 131: 1.366 0.366
- 32.75 / 132: 1.402 0.185
- 33 / 133: 1.414 -0.000
- 33.25 / 134: 1.402 -0.185
- 33.5 / 135: 1.366 -0.366
- 33.75 / 136: 1.307 -0.541
- 34 / 137: 1.225 -0.707
- 34.25 / 138: 1.122 -0.861
- 34.5 / 139: 1.000 -1.000
- 34.75 / 140: 0.861 -1.122
- 35 / 141: 0.707 -1.225
- 35.25 / 142: 0.541 -1.307
- 35.5 / 143: 0.366 -1.366
- 35.75 / 144: 0.185 -1.402
- 36 / 145: 0.000 -1.414
- 36.25 / 146: -0.185 -1.402
- 36.5 / 147: -0.366 -1.366
- 36.75 / 148: -0.541 -1.307
- 37 / 149: -0.707 -1.225
- 37.25 / 150: -0.861 -1.122
- 37.5 / 151: -1.000 -1.000
- 37.75 / 152: -1.122 -0.861
- 38 / 153: -1.225 -0.707
- 38.25 / 154: -1.307 -0.541
- 38.5 / 155: -1.366 -0.366
- 38.75 / 156: -1.402 -0.185
- 39 / 157: -1.414 -0.000
- 39.25 / 158: -1.402 0.185
- 39.5 / 159: -1.366 0.366
- 39.75 / 160: -1.307 0.541
- 40 / 161: -1.225 0.707
- 40.25 / 162: -1.122 0.861
- 40.5 / 163: -1.000 1.000
- 40.75 / 164: -0.861 1.122
- 41 / 165: -0.707 1.225
- 41.25 / 166: -0.541 1.307
- 41.5 / 167: -0.366 1.366
- 41.75 / 168: -0.185 1.402
- 42 / 169: -0.000 1.414
- 42.25 / 170: 0.185 1.402
- 42.5 / 171: 0.366 1.366
- 42.75 / 172: 0.541 1.307
- 43 / 173: 0.707 1.225
- 43.25 / 174: 0.861 1.122
- 43.5 / 175: 1.000 1.000
- 43.75 / 176: 1.122 0.861
- 44 / 177: 1.225 0.707
- 44.25 / 178: 1.307 0.541
- 44.5 / 179: 1.366 0.366
- 44.75 / 180: 1.402 0.185
- 45 / 181: 1.414 -0.000
- 45.25 / 182: 1.402 -0.185
- 45.5 / 183: 1.366 -0.366
- 45.75 / 184: 1.307 -0.541
- 46 / 185: 1.225 -0.707
- 46.25 / 186: 1.122 -0.861
- 46.5 / 187: 1.000 -1.000
- 46.75 / 188: 0.861 -1.122
- 47 / 189: 0.707 -1.225
- 47.25 / 190: 0.541 -1.307
- 47.5 / 191: 0.366 -1.366
- 47.75 / 192: 0.185 -1.402
- 48 / 193: 0.000 -1.414
- 48.25 / 194: -0.185 -1.402
- 48.5 / 195: -0.366 -1.366
- 48.75 / 196: -0.541 -1.307
- 49 / 197: -0.707 -1.225
- 49.25 / 198: -0.861 -1.122
- 49.5 / 199: -1.000 -1.000
- 49.75 / 200: -1.122 -0.861
- 50 / 201: -1.225 -0.707
- 50.25 / 202: -1.307 -0.541
- 50.5 / 203: -1.366 -0.366
- 50.75 / 204: -1.402 -0.185
- 51 / 205: -1.414 -0.000
- 51.25 / 206: -1.402 0.185
- 51.5 / 207: -1.366 0.366
- 51.75 / 208: -1.307 0.541
- 52 / 209: -1.225 0.707
- 52.25 / 210: -1.122 0.861
- 52.5 / 211: -1.000 1.000
- 52.75 / 212: -0.861 1.122
- 53 / 213: -0.707 1.225
- 53.25 / 214: -0.541 1.307
- 53.5 / 215: -0.366 1.366
- 53.75 / 216: -0.185 1.402
- 54 / 217: -0.000 1.414
- 54.25 / 218: 0.185 1.402
- 54.5 / 219: 0.366 1.366
- 54.75 / 220: 0.541 1.307
- 55 / 221: 0.707 1.225
- 55.25 / 222: 0.861 1.122
- 55.5 / 223: 1.000 1.000
- 55.75 / 224: 1.122 0.861
- 56 / 225: 1.225 0.707
- 56.25 / 226: 1.307 0.541
- 56.5 / 227: 1.366 0.366
- 56.75 / 228: 1.402 0.185
- 57 / 229: 1.414 0.000
- 57.25 / 230: 1.402 -0.185
- 57.5 / 231: 1.366 -0.366
- 57.75 / 232: 1.307 -0.541
- 58 / 233: 1.225 -0.707
- 58.25 / 234: 1.122 -0.861
- 58.5 / 235: 1.000 -1.000
- 58.75 / 236: 0.861 -1.122
- 59 / 237: 0.707 -1.225
- 59.25 / 238: 0.541 -1.307
- 59.5 / 239: 0.366 -1.366
- 59.75 / 240: 0.185 -1.402
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 240.0
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ -3.775E-15
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ -3.775E-15
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 240.0
! The sum over all significant EOFs of the outer product of
! EOF(i) and TAF(i) should return the zero-time-meaned data
@@ -67579,281 +67378,186 @@ list eofsvd_stat(space12)
1 / 1: 2.00 2.00 2.00
2 / 2: 50.00 50.00 0.00
3 / 3: 0.50 0.50 0.00
-list eofsvd_space(space12)
- VARIABLE : EOFSVD_SPACE(SPACE12)
- SUBSET : 3 by 3 points (X-T)
- 1 2 3
- 1 2 3
- 1 / 1: 0.0000 -0.7071 ....
- 2 / 2: -0.7071 -0.0000 ....
- 3 / 3: .... .... ....
-list eofsvd_tfunc(space12)
- VARIABLE : EOFSVD_TFUNC(SPACE12)
- SUBSET : 3 by 240 points (X-T)
- 1 2 3
- 1 2 3
- 0 / 1: -0.000 -1.414 ....
- 0.25 / 2: -0.185 -1.402 ....
- 0.5 / 3: -0.366 -1.366 ....
- 0.75 / 4: -0.541 -1.307 ....
- 1 / 5: -0.707 -1.225 ....
- 1.25 / 6: -0.861 -1.122 ....
- 1.5 / 7: -1.000 -1.000 ....
- 1.75 / 8: -1.122 -0.861 ....
- 2 / 9: -1.225 -0.707 ....
- 2.25 / 10: -1.307 -0.541 ....
- 2.5 / 11: -1.366 -0.366 ....
- 2.75 / 12: -1.402 -0.185 ....
- 3 / 13: -1.414 -0.000 ....
- 3.25 / 14: -1.402 0.185 ....
- 3.5 / 15: -1.366 0.366 ....
- 3.75 / 16: -1.307 0.541 ....
- 4 / 17: -1.225 0.707 ....
- 4.25 / 18: -1.122 0.861 ....
- 4.5 / 19: -1.000 1.000 ....
- 4.75 / 20: -0.861 1.122 ....
- 5 / 21: -0.707 1.225 ....
- 5.25 / 22: -0.541 1.307 ....
- 5.5 / 23: -0.366 1.366 ....
- 5.75 / 24: -0.185 1.402 ....
- 6 / 25: -0.000 1.414 ....
- 6.25 / 26: 0.185 1.402 ....
- 6.5 / 27: 0.366 1.366 ....
- 6.75 / 28: 0.541 1.307 ....
- 7 / 29: 0.707 1.225 ....
- 7.25 / 30: 0.861 1.122 ....
- 7.5 / 31: 1.000 1.000 ....
- 7.75 / 32: 1.122 0.861 ....
- 8 / 33: 1.225 0.707 ....
- 8.25 / 34: 1.307 0.541 ....
- 8.5 / 35: 1.366 0.366 ....
- 8.75 / 36: 1.402 0.185 ....
- 9 / 37: 1.414 0.000 ....
- 9.25 / 38: 1.402 -0.185 ....
- 9.5 / 39: 1.366 -0.366 ....
- 9.75 / 40: 1.307 -0.541 ....
- 10 / 41: 1.225 -0.707 ....
- 10.25 / 42: 1.122 -0.861 ....
- 10.5 / 43: 1.000 -1.000 ....
- 10.75 / 44: 0.861 -1.122 ....
- 11 / 45: 0.707 -1.225 ....
- 11.25 / 46: 0.541 -1.307 ....
- 11.5 / 47: 0.366 -1.366 ....
- 11.75 / 48: 0.185 -1.402 ....
- 12 / 49: 0.000 -1.414 ....
- 12.25 / 50: -0.185 -1.402 ....
- 12.5 / 51: -0.366 -1.366 ....
- 12.75 / 52: -0.541 -1.307 ....
- 13 / 53: -0.707 -1.225 ....
- 13.25 / 54: -0.861 -1.122 ....
- 13.5 / 55: -1.000 -1.000 ....
- 13.75 / 56: -1.122 -0.861 ....
- 14 / 57: -1.225 -0.707 ....
- 14.25 / 58: -1.307 -0.541 ....
- 14.5 / 59: -1.366 -0.366 ....
- 14.75 / 60: -1.402 -0.185 ....
- 15 / 61: -1.414 -0.000 ....
- 15.25 / 62: -1.402 0.185 ....
- 15.5 / 63: -1.366 0.366 ....
- 15.75 / 64: -1.307 0.541 ....
- 16 / 65: -1.225 0.707 ....
- 16.25 / 66: -1.122 0.861 ....
- 16.5 / 67: -1.000 1.000 ....
- 16.75 / 68: -0.861 1.122 ....
- 17 / 69: -0.707 1.225 ....
- 17.25 / 70: -0.541 1.307 ....
- 17.5 / 71: -0.366 1.366 ....
- 17.75 / 72: -0.185 1.402 ....
- 18 / 73: -0.000 1.414 ....
- 18.25 / 74: 0.185 1.402 ....
- 18.5 / 75: 0.366 1.366 ....
- 18.75 / 76: 0.541 1.307 ....
- 19 / 77: 0.707 1.225 ....
- 19.25 / 78: 0.861 1.122 ....
- 19.5 / 79: 1.000 1.000 ....
- 19.75 / 80: 1.122 0.861 ....
- 20 / 81: 1.225 0.707 ....
- 20.25 / 82: 1.307 0.541 ....
- 20.5 / 83: 1.366 0.366 ....
- 20.75 / 84: 1.402 0.185 ....
- 21 / 85: 1.414 0.000 ....
- 21.25 / 86: 1.402 -0.185 ....
- 21.5 / 87: 1.366 -0.366 ....
- 21.75 / 88: 1.307 -0.541 ....
- 22 / 89: 1.225 -0.707 ....
- 22.25 / 90: 1.122 -0.861 ....
- 22.5 / 91: 1.000 -1.000 ....
- 22.75 / 92: 0.861 -1.122 ....
- 23 / 93: 0.707 -1.225 ....
- 23.25 / 94: 0.541 -1.307 ....
- 23.5 / 95: 0.366 -1.366 ....
- 23.75 / 96: 0.185 -1.402 ....
- 24 / 97: 0.000 -1.414 ....
- 24.25 / 98: -0.185 -1.402 ....
- 24.5 / 99: -0.366 -1.366 ....
- 24.75 / 100: -0.541 -1.307 ....
- 25 / 101: -0.707 -1.225 ....
- 25.25 / 102: -0.861 -1.122 ....
- 25.5 / 103: -1.000 -1.000 ....
- 25.75 / 104: -1.122 -0.861 ....
- 26 / 105: -1.225 -0.707 ....
- 26.25 / 106: -1.307 -0.541 ....
- 26.5 / 107: -1.366 -0.366 ....
- 26.75 / 108: -1.402 -0.185 ....
- 27 / 109: -1.414 -0.000 ....
- 27.25 / 110: -1.402 0.185 ....
- 27.5 / 111: -1.366 0.366 ....
- 27.75 / 112: -1.307 0.541 ....
- 28 / 113: -1.225 0.707 ....
- 28.25 / 114: -1.122 0.861 ....
- 28.5 / 115: -1.000 1.000 ....
- 28.75 / 116: -0.861 1.122 ....
- 29 / 117: -0.707 1.225 ....
- 29.25 / 118: -0.541 1.307 ....
- 29.5 / 119: -0.366 1.366 ....
- 29.75 / 120: -0.185 1.402 ....
- 30 / 121: -0.000 1.414 ....
- 30.25 / 122: 0.185 1.402 ....
- 30.5 / 123: 0.366 1.366 ....
- 30.75 / 124: 0.541 1.307 ....
- 31 / 125: 0.707 1.225 ....
- 31.25 / 126: 0.861 1.122 ....
- 31.5 / 127: 1.000 1.000 ....
- 31.75 / 128: 1.122 0.861 ....
- 32 / 129: 1.225 0.707 ....
- 32.25 / 130: 1.307 0.541 ....
- 32.5 / 131: 1.366 0.366 ....
- 32.75 / 132: 1.402 0.185 ....
- 33 / 133: 1.414 -0.000 ....
- 33.25 / 134: 1.402 -0.185 ....
- 33.5 / 135: 1.366 -0.366 ....
- 33.75 / 136: 1.307 -0.541 ....
- 34 / 137: 1.225 -0.707 ....
- 34.25 / 138: 1.122 -0.861 ....
- 34.5 / 139: 1.000 -1.000 ....
- 34.75 / 140: 0.861 -1.122 ....
- 35 / 141: 0.707 -1.225 ....
- 35.25 / 142: 0.541 -1.307 ....
- 35.5 / 143: 0.366 -1.366 ....
- 35.75 / 144: 0.185 -1.402 ....
- 36 / 145: 0.000 -1.414 ....
- 36.25 / 146: -0.185 -1.402 ....
- 36.5 / 147: -0.366 -1.366 ....
- 36.75 / 148: -0.541 -1.307 ....
- 37 / 149: -0.707 -1.225 ....
- 37.25 / 150: -0.861 -1.122 ....
- 37.5 / 151: -1.000 -1.000 ....
- 37.75 / 152: -1.122 -0.861 ....
- 38 / 153: -1.225 -0.707 ....
- 38.25 / 154: -1.307 -0.541 ....
- 38.5 / 155: -1.366 -0.366 ....
- 38.75 / 156: -1.402 -0.185 ....
- 39 / 157: -1.414 -0.000 ....
- 39.25 / 158: -1.402 0.185 ....
- 39.5 / 159: -1.366 0.366 ....
- 39.75 / 160: -1.307 0.541 ....
- 40 / 161: -1.225 0.707 ....
- 40.25 / 162: -1.122 0.861 ....
- 40.5 / 163: -1.000 1.000 ....
- 40.75 / 164: -0.861 1.122 ....
- 41 / 165: -0.707 1.225 ....
- 41.25 / 166: -0.541 1.307 ....
- 41.5 / 167: -0.366 1.366 ....
- 41.75 / 168: -0.185 1.402 ....
- 42 / 169: -0.000 1.414 ....
- 42.25 / 170: 0.185 1.402 ....
- 42.5 / 171: 0.366 1.366 ....
- 42.75 / 172: 0.541 1.307 ....
- 43 / 173: 0.707 1.225 ....
- 43.25 / 174: 0.861 1.122 ....
- 43.5 / 175: 1.000 1.000 ....
- 43.75 / 176: 1.122 0.861 ....
- 44 / 177: 1.225 0.707 ....
- 44.25 / 178: 1.307 0.541 ....
- 44.5 / 179: 1.366 0.366 ....
- 44.75 / 180: 1.402 0.185 ....
- 45 / 181: 1.414 -0.000 ....
- 45.25 / 182: 1.402 -0.185 ....
- 45.5 / 183: 1.366 -0.366 ....
- 45.75 / 184: 1.307 -0.541 ....
- 46 / 185: 1.225 -0.707 ....
- 46.25 / 186: 1.122 -0.861 ....
- 46.5 / 187: 1.000 -1.000 ....
- 46.75 / 188: 0.861 -1.122 ....
- 47 / 189: 0.707 -1.225 ....
- 47.25 / 190: 0.541 -1.307 ....
- 47.5 / 191: 0.366 -1.366 ....
- 47.75 / 192: 0.185 -1.402 ....
- 48 / 193: 0.000 -1.414 ....
- 48.25 / 194: -0.185 -1.402 ....
- 48.5 / 195: -0.366 -1.366 ....
- 48.75 / 196: -0.541 -1.307 ....
- 49 / 197: -0.707 -1.225 ....
- 49.25 / 198: -0.861 -1.122 ....
- 49.5 / 199: -1.000 -1.000 ....
- 49.75 / 200: -1.122 -0.861 ....
- 50 / 201: -1.225 -0.707 ....
- 50.25 / 202: -1.307 -0.541 ....
- 50.5 / 203: -1.366 -0.366 ....
- 50.75 / 204: -1.402 -0.185 ....
- 51 / 205: -1.414 -0.000 ....
- 51.25 / 206: -1.402 0.185 ....
- 51.5 / 207: -1.366 0.366 ....
- 51.75 / 208: -1.307 0.541 ....
- 52 / 209: -1.225 0.707 ....
- 52.25 / 210: -1.122 0.861 ....
- 52.5 / 211: -1.000 1.000 ....
- 52.75 / 212: -0.861 1.122 ....
- 53 / 213: -0.707 1.225 ....
- 53.25 / 214: -0.541 1.307 ....
- 53.5 / 215: -0.366 1.366 ....
- 53.75 / 216: -0.185 1.402 ....
- 54 / 217: -0.000 1.414 ....
- 54.25 / 218: 0.185 1.402 ....
- 54.5 / 219: 0.366 1.366 ....
- 54.75 / 220: 0.541 1.307 ....
- 55 / 221: 0.707 1.225 ....
- 55.25 / 222: 0.861 1.122 ....
- 55.5 / 223: 1.000 1.000 ....
- 55.75 / 224: 1.122 0.861 ....
- 56 / 225: 1.225 0.707 ....
- 56.25 / 226: 1.307 0.541 ....
- 56.5 / 227: 1.366 0.366 ....
- 56.75 / 228: 1.402 0.185 ....
- 57 / 229: 1.414 0.000 ....
- 57.25 / 230: 1.402 -0.185 ....
- 57.5 / 231: 1.366 -0.366 ....
- 57.75 / 232: 1.307 -0.541 ....
- 58 / 233: 1.225 -0.707 ....
- 58.25 / 234: 1.122 -0.861 ....
- 58.5 / 235: 1.000 -1.000 ....
- 58.75 / 236: 0.861 -1.122 ....
- 59 / 237: 0.707 -1.225 ....
- 59.25 / 238: 0.541 -1.307 ....
- 59.5 / 239: 0.366 -1.366 ....
- 59.75 / 240: 0.185 -1.402 ....
+let eofs = eofsvd_space(space12[I=1:3])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 3 r 1 3 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 3 r 1 3 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 0.5000
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ 0.0000
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ 0.0000
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 0.5000
+
+let tafs = eofsvd_tfunc(space12[I=1:3])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 240.0
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ -3.775E-15
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ -3.775E-15
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 240.0
! If there are no complete time series, the functions should bail with an error
let spacegap = if L ne 2 then spacetime
set mode ignore
+
list eofsvd_stat(spacegap)
list eofsvd_space(spacegap)
list eofsvd_tfunc(spacegap)
-! clean-up
set mode/last ignore
-can var spacetime
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
+! -----------------------------------------------
+! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
-exit/script
+set mode ignore
+
+def axis /X=1:2:1 xaxis
+let spacetime = if (i eq 1) then cosT else sinT + 1
+
+show func eof_stat
+EOF_STAT(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data.
+! Run each of the eof functions and show the results.
+! Both are equally significant. Eigenvalues should be 0.5.
+! Other EOF descriptions do not divide the covariance
+! matrix by the number of time values, in which case the
+! the eigenvalues will be much larger, but still equal
+! to each other.
+list eof_stat(spacetime, 1.0)
+
+show func eof_space
+EOF_SPACE(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data
+! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
+! but might be mixed by rotation.
+! This is if the EOF functions are in units of the original data,
+! thus the eigenvectors times the square-root of the eigenvalue.
+! EOF vectors are always orthogonal to each other.
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+show func eof_tfunc
+EOF_TFUNC(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data
+! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
+! TAF vectors are always orthogonal to each other.
+let tafs = eof_tfunc(spacetime[I=1:2], 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+set mode/last ignore
+
+! The sum over all significant EOFs of the outer product of
+! EOF(i) and TAF(i) should return the zero-time-meaned data
+! (original data with the time-series mean subtracted to give
+! a zero mean for each time series).
+! In this case, EOF(1) o TAF(1) + EOF(2) o TAF(2) = (cosT, sinT)
+
+! clean-up
+set grid abstract
+can var /all
+can grid xytgrid
GO bn_reset bn_eof_simple2
cancel mode verify
@@ -67866,6 +67570,7 @@ GO bn_eof_simple2
! 7/2012
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
+! 11/2017 - still try to test old eof functions, if they are re-implemented
! Define four locations.
def axis /X=1:2:1 xaxis
@@ -67909,7 +67614,7 @@ list eofsvd_stat(spacetime)
show func eofsvd_space
EOFSVD_SPACE(A)
- Return SVD EOF spacial fields from XYT field
+ Return SVD EOF spatial fields from XYT field
A: Variable in x,y,t; may be fcn of z,e,f
! Ideally:
! +- [ 0.35355, 0.0,
@@ -67924,19 +67629,56 @@ EOFSVD_SPACE(A)
! The norm^2 of an EOF should be the eigenvalue.
! The two EOFs should be orthogonal to each other.
! Rotation (mixing) of these two may occur.
-let eofs = eofsvd_space(spacetime)
-! T axis of eofsvd_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
- VARIABLE : EOFSVD_SPACE(SPACETIME)
- SUBSET : 2 by 2 by 2 points (X-Y-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 0.0635 -0.3478
- 2 / 2: -0.3478 -0.0635
- ---- L:2 T: 2
- 1 / 1: 0.3478 0.0635
- 2 / 2: 0.0635 -0.3478
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 2 r 1 2 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 2 r 1 2 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ SUBSET : 2 points (Y)
+ X : 1
+ 1
+ 1
+ 1 / 1: 0.1250
+ 2 / 2: 0.1250
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ SUBSET : 2 points (Y)
+ X : 1
+ 1
+ 1
+ 1 / 1: -3.123E-17
+ 2 / 2: 2.082E-17
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ SUBSET : 2 points (Y)
+ X : 2
+ 2
+ 2
+ 1 / 1: -3.123E-17
+ 2 / 2: 2.082E-17
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ SUBSET : 2 points (Y)
+ X : 2
+ 2
+ 2
+ 1 / 1: 0.1250
+ 2 / 2: 0.1250
show func eofsvd_tfunc
EOFSVD_TFUNC(A)
@@ -67948,253 +67690,40 @@ EOFSVD_TFUNC(A)
! The norm^2 of a TAF should be the number of time values.
! The two TAFs should be orthogonal to each other.
! Rotation (mixing) of these two may occur.
-let tafs = eofsvd_tfunc(spacetime)
-! X axis of eofsvd_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
- VARIABLE : EOFSVD_TFUNC(SPACETIME)
- SUBSET : 2 by 240 points (X-T)
- 1 2
- 1 2
- 0 / 1: 0.254 1.391
- 0.1 / 2: 0.107 1.410
- 0.2 / 3: -0.041 1.414
- 0.3 / 4: -0.188 1.402
- 0.4 / 5: -0.334 1.374
- 0.5 / 6: -0.476 1.332
- 0.6 / 7: -0.612 1.275
- 0.7 / 8: -0.742 1.204
- 0.8 / 9: -0.864 1.120
- 0.9 / 10: -0.976 1.023
- 1 / 11: -1.078 0.916
- 1.1 / 12: -1.168 0.798
- 1.2 / 13: -1.245 0.672
- 1.3 / 14: -1.308 0.538
- 1.4 / 15: -1.357 0.398
- 1.5 / 16: -1.391 0.254
- 1.6 / 17: -1.410 0.107
- 1.7 / 18: -1.414 -0.041
- 1.8 / 19: -1.402 -0.188
- 1.9 / 20: -1.374 -0.334
- 2 / 21: -1.332 -0.476
- 2.1 / 22: -1.275 -0.612
- 2.2 / 23: -1.204 -0.742
- 2.3 / 24: -1.120 -0.864
- 2.4 / 25: -1.023 -0.976
- 2.5 / 26: -0.916 -1.078
- 2.6 / 27: -0.798 -1.168
- 2.7 / 28: -0.672 -1.245
- 2.8 / 29: -0.538 -1.308
- 2.9 / 30: -0.398 -1.357
- 3 / 31: -0.254 -1.391
- 3.1 / 32: -0.107 -1.410
- 3.2 / 33: 0.041 -1.414
- 3.3 / 34: 0.188 -1.402
- 3.4 / 35: 0.334 -1.374
- 3.5 / 36: 0.476 -1.332
- 3.6 / 37: 0.612 -1.275
- 3.7 / 38: 0.742 -1.204
- 3.8 / 39: 0.864 -1.120
- 3.9 / 40: 0.976 -1.023
- 4 / 41: 1.078 -0.916
- 4.1 / 42: 1.168 -0.798
- 4.2 / 43: 1.245 -0.672
- 4.3 / 44: 1.308 -0.538
- 4.4 / 45: 1.357 -0.398
- 4.5 / 46: 1.391 -0.254
- 4.6 / 47: 1.410 -0.107
- 4.7 / 48: 1.414 0.041
- 4.8 / 49: 1.402 0.188
- 4.9 / 50: 1.374 0.334
- 5 / 51: 1.332 0.476
- 5.1 / 52: 1.275 0.612
- 5.2 / 53: 1.204 0.742
- 5.3 / 54: 1.120 0.864
- 5.4 / 55: 1.023 0.976
- 5.5 / 56: 0.916 1.078
- 5.6 / 57: 0.798 1.168
- 5.7 / 58: 0.672 1.245
- 5.8 / 59: 0.538 1.308
- 5.9 / 60: 0.398 1.357
- 6 / 61: 0.254 1.391
- 6.1 / 62: 0.107 1.410
- 6.2 / 63: -0.041 1.414
- 6.3 / 64: -0.188 1.402
- 6.4 / 65: -0.334 1.374
- 6.5 / 66: -0.476 1.332
- 6.6 / 67: -0.612 1.275
- 6.7 / 68: -0.742 1.204
- 6.8 / 69: -0.864 1.120
- 6.9 / 70: -0.976 1.023
- 7 / 71: -1.078 0.916
- 7.1 / 72: -1.168 0.798
- 7.2 / 73: -1.245 0.672
- 7.3 / 74: -1.308 0.538
- 7.4 / 75: -1.357 0.398
- 7.5 / 76: -1.391 0.254
- 7.6 / 77: -1.410 0.107
- 7.7 / 78: -1.414 -0.041
- 7.8 / 79: -1.402 -0.188
- 7.9 / 80: -1.374 -0.334
- 8 / 81: -1.332 -0.476
- 8.1 / 82: -1.275 -0.612
- 8.2 / 83: -1.204 -0.742
- 8.3 / 84: -1.120 -0.864
- 8.4 / 85: -1.023 -0.976
- 8.5 / 86: -0.916 -1.078
- 8.6 / 87: -0.798 -1.168
- 8.7 / 88: -0.672 -1.245
- 8.8 / 89: -0.538 -1.308
- 8.9 / 90: -0.398 -1.357
- 9 / 91: -0.254 -1.391
- 9.1 / 92: -0.107 -1.410
- 9.2 / 93: 0.041 -1.414
- 9.3 / 94: 0.188 -1.402
- 9.4 / 95: 0.334 -1.374
- 9.5 / 96: 0.476 -1.332
- 9.6 / 97: 0.612 -1.275
- 9.7 / 98: 0.742 -1.204
- 9.8 / 99: 0.864 -1.120
- 9.9 / 100: 0.976 -1.023
- 10 / 101: 1.078 -0.916
- 10.1 / 102: 1.168 -0.798
- 10.2 / 103: 1.245 -0.672
- 10.3 / 104: 1.308 -0.538
- 10.4 / 105: 1.357 -0.398
- 10.5 / 106: 1.391 -0.254
- 10.6 / 107: 1.410 -0.107
- 10.7 / 108: 1.414 0.041
- 10.8 / 109: 1.402 0.188
- 10.9 / 110: 1.374 0.334
- 11 / 111: 1.332 0.476
- 11.1 / 112: 1.275 0.612
- 11.2 / 113: 1.204 0.742
- 11.3 / 114: 1.120 0.864
- 11.4 / 115: 1.023 0.976
- 11.5 / 116: 0.916 1.078
- 11.6 / 117: 0.798 1.168
- 11.7 / 118: 0.672 1.245
- 11.8 / 119: 0.538 1.308
- 11.9 / 120: 0.398 1.357
- 12 / 121: 0.254 1.391
- 12.1 / 122: 0.107 1.410
- 12.2 / 123: -0.041 1.414
- 12.3 / 124: -0.188 1.402
- 12.4 / 125: -0.334 1.374
- 12.5 / 126: -0.476 1.332
- 12.6 / 127: -0.612 1.275
- 12.7 / 128: -0.742 1.204
- 12.8 / 129: -0.864 1.120
- 12.9 / 130: -0.976 1.023
- 13 / 131: -1.078 0.916
- 13.1 / 132: -1.168 0.798
- 13.2 / 133: -1.245 0.672
- 13.3 / 134: -1.308 0.538
- 13.4 / 135: -1.357 0.398
- 13.5 / 136: -1.391 0.254
- 13.6 / 137: -1.410 0.107
- 13.7 / 138: -1.414 -0.041
- 13.8 / 139: -1.402 -0.188
- 13.9 / 140: -1.374 -0.334
- 14 / 141: -1.332 -0.476
- 14.1 / 142: -1.275 -0.612
- 14.2 / 143: -1.204 -0.742
- 14.3 / 144: -1.120 -0.864
- 14.4 / 145: -1.023 -0.976
- 14.5 / 146: -0.916 -1.078
- 14.6 / 147: -0.798 -1.168
- 14.7 / 148: -0.672 -1.245
- 14.8 / 149: -0.538 -1.308
- 14.9 / 150: -0.398 -1.357
- 15 / 151: -0.254 -1.391
- 15.1 / 152: -0.107 -1.410
- 15.2 / 153: 0.041 -1.414
- 15.3 / 154: 0.188 -1.402
- 15.4 / 155: 0.334 -1.374
- 15.5 / 156: 0.476 -1.332
- 15.6 / 157: 0.612 -1.275
- 15.7 / 158: 0.742 -1.204
- 15.8 / 159: 0.864 -1.120
- 15.9 / 160: 0.976 -1.023
- 16 / 161: 1.078 -0.916
- 16.1 / 162: 1.168 -0.798
- 16.2 / 163: 1.245 -0.672
- 16.3 / 164: 1.308 -0.538
- 16.4 / 165: 1.357 -0.398
- 16.5 / 166: 1.391 -0.254
- 16.6 / 167: 1.410 -0.107
- 16.7 / 168: 1.414 0.041
- 16.8 / 169: 1.402 0.188
- 16.9 / 170: 1.374 0.334
- 17 / 171: 1.332 0.476
- 17.1 / 172: 1.275 0.612
- 17.2 / 173: 1.204 0.742
- 17.3 / 174: 1.120 0.864
- 17.4 / 175: 1.023 0.976
- 17.5 / 176: 0.916 1.078
- 17.6 / 177: 0.798 1.168
- 17.7 / 178: 0.672 1.245
- 17.8 / 179: 0.538 1.308
- 17.9 / 180: 0.398 1.357
- 18 / 181: 0.254 1.391
- 18.1 / 182: 0.107 1.410
- 18.2 / 183: -0.041 1.414
- 18.3 / 184: -0.188 1.402
- 18.4 / 185: -0.334 1.374
- 18.5 / 186: -0.476 1.332
- 18.6 / 187: -0.612 1.275
- 18.7 / 188: -0.742 1.204
- 18.8 / 189: -0.864 1.120
- 18.9 / 190: -0.976 1.023
- 19 / 191: -1.078 0.916
- 19.1 / 192: -1.168 0.798
- 19.2 / 193: -1.245 0.672
- 19.3 / 194: -1.308 0.538
- 19.4 / 195: -1.357 0.398
- 19.5 / 196: -1.391 0.254
- 19.6 / 197: -1.410 0.107
- 19.7 / 198: -1.414 -0.041
- 19.8 / 199: -1.402 -0.188
- 19.9 / 200: -1.374 -0.334
- 20 / 201: -1.332 -0.476
- 20.1 / 202: -1.275 -0.612
- 20.2 / 203: -1.204 -0.742
- 20.3 / 204: -1.120 -0.864
- 20.4 / 205: -1.023 -0.976
- 20.5 / 206: -0.916 -1.078
- 20.6 / 207: -0.798 -1.168
- 20.7 / 208: -0.672 -1.245
- 20.8 / 209: -0.538 -1.308
- 20.9 / 210: -0.398 -1.357
- 21 / 211: -0.254 -1.391
- 21.1 / 212: -0.107 -1.410
- 21.2 / 213: 0.041 -1.414
- 21.3 / 214: 0.188 -1.402
- 21.4 / 215: 0.334 -1.374
- 21.5 / 216: 0.476 -1.332
- 21.6 / 217: 0.612 -1.275
- 21.7 / 218: 0.742 -1.204
- 21.8 / 219: 0.864 -1.120
- 21.9 / 220: 0.976 -1.023
- 22 / 221: 1.078 -0.916
- 22.1 / 222: 1.168 -0.798
- 22.2 / 223: 1.245 -0.672
- 22.3 / 224: 1.308 -0.538
- 22.4 / 225: 1.357 -0.398
- 22.5 / 226: 1.391 -0.254
- 22.6 / 227: 1.410 -0.107
- 22.7 / 228: 1.414 0.041
- 22.8 / 229: 1.402 0.188
- 22.9 / 230: 1.374 0.334
- 23 / 231: 1.332 0.476
- 23.1 / 232: 1.275 0.612
- 23.2 / 233: 1.204 0.742
- 23.3 / 234: 1.120 0.864
- 23.4 / 235: 1.023 0.976
- 23.5 / 236: 0.916 1.078
- 23.6 / 237: 0.798 1.168
- 23.7 / 238: 0.672 1.245
- 23.8 / 239: 0.538 1.308
- 23.9 / 240: 0.398 1.357
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 23.9 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 23.9 full
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 240.0
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ -5.285E-14
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ -5.285E-14
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 240.0
! Explanation:
! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
@@ -68204,19 +67733,110 @@ list tafs[I=1:2]
! = (0.0, cosT * sinT, cosT * sinT, 0.0)
! Adding these three gives the original data
+! -----------------------------------------------
+! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
+
+set mode ignore
+
+show func eof_stat
+EOF_STAT(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data.
+! Two are of equal significance with eigenvalues of 0.25.
+! Two are negligable (eigenvalues of zero or close to it).
+list eof_stat(spacetime, 1.0)
+
+show func eof_space
+EOF_SPACE(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data
+! Ideally:
+! +- [ 0.35355, 0.0,
+! 0.0, -0.35355 ] (norm^2 = 0.25)
+! corresponding to 0.25 * sqrt(2.0) * (cosT^2 - sinT^2)
+! = 0.25 * sqrt(2.0) * cos2T
+! and
+! +- [ 0.0, 0.35355,
+! 0.35355, 0.0 ] (norm^2 = 0.25)
+! corresponding to 0.25 * sqrt(2.0) * 2 * cosT * sinT
+! = 0.25 * sqrt(2.0) * sin2T
+! The norm^2 of an EOF should be the eigenvalue.
+! The two EOFs should be orthogonal to each other.
+! Rotation (mixing) of these two may occur.
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 2 r 1 2 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 2 r 1 2 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+show func eof_tfunc
+EOF_TFUNC(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data
+! Ideally:
+! +- sqrt(2.0) * cos2T (norm^2 = 240)
+! +- sqrt(2.0) * sin2T (norm^2 = 240)
+! The norm^2 of a TAF should be the number of time values.
+! The two TAFs should be orthogonal to each other.
+! Rotation (mixing) of these two may occur.
+let tafs = eof_tfunc(spacetime, 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 23.9 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G089)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 23.9 full
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+! Explanation:
+! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
+! EOF1 * TAF1 = (0.5 * cos2T, 0.0, 0.0, -0.5 * cos2T)
+! = (cosT^2 - 0.5, 0.0, 0.0, sinT^2 - 0.5)
+ ! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
+! = (0.0, cosT * sinT, cosT * sinT, 0.0)
+! Adding these three gives the original data
+
+set mode/last ignore
+
! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
set grid abstract
+can var /all
can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
-exit/script
! 6D tests for Ferret v6.8
@@ -70058,7 +69678,7 @@ SHOW GRID
PSXT70_71 LONGITUDE 2mr 160.5W 159.5W full
PSYT15_75 LATITUDE 61 i 10.169S 9.833N full
PSZT2 DEPTH (m) 27 i- 5 3824 full
- TIME13 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00 full
+ TIME23 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00 full
EAXIS E 5 r 1 5 full
FAXIS F 4 r 1 7 full
SET GRID/SAVE
@@ -70071,7 +69691,7 @@ SHOW GRID
PSXT70_71 LONGITUDE 2mr 160.5W 159.5W full
PSYT15_75 LATITUDE 61 i 10.169S 9.833N full
PSZT2 DEPTH (m) 27 i- 5 3824 full
- TIME13 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00 full
+ TIME23 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00 full
EAXIS E 5 r 1 5 full
FAXIS F 4 r 1 7 full
SHOW GRID/X=180:165W SALT
@@ -70080,7 +69700,7 @@ SHOW GRID/X=180:165W SALT
PSXT70_71 LONGITUDE 2mr 160.5W 159.5W full
PSYT15_75 LATITUDE 61 i 10.169S 9.833N full
PSZT2 DEPTH (m) 27 i- 5 3824 full
- TIME13 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00 full
+ TIME23 TIME 3 r 15-MAR-1983 10:00 15-MAR-1983 12:00 full
EAXIS E 5 r 1 5 full
FAXIS F 4 r 1 7 full
@@ -70103,7 +69723,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1]
TIME: 15-MAR-1983 10:00
E: 3
F: 7
- DATA SET: ./6dfile.nc
+ DATA SET: ./data/6dfile.nc
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 0
@@ -70120,7 +69740,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1,g=u]
TIME: 15-MAR-1983 10:00
E: 3
F: 7
- DATA SET: ./6dfile.nc
+ DATA SET: ./data/6dfile.nc
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 0
@@ -70699,7 +70319,7 @@ use 6dfile
list/i=1/j=15/k=1/l=1/n=1 temp, ereverse(temp)
WARNING: Listed variables have ambiguous coordinates on axes: E
- DATA SET: ./6dfile.nc
+ DATA SET: ./data/6dfile.nc
LONGITUDE: 160.5W
LATITUDE: 5.5S
DEPTH (m): 5
@@ -70715,7 +70335,7 @@ M / 4: 33.7500 31.7500
M / 5: 34.7500 30.7500
list/i=1/j=15/k=1/l=1/m=1 temp, freverse(temp)
WARNING: Listed variables have ambiguous coordinates on axes: F
- DATA SET: ./6dfile.nc
+ DATA SET: ./data/6dfile.nc
LONGITUDE: 160.5W
LATITUDE: 5.5S
DEPTH (m): 5
@@ -70870,8 +70490,8 @@ define axis/f=23-jan-1982:30-jan-1982:20/unit=hour fax20
define axis/x=120e:60w:10/unit=degrees xax10
define grid/like=temp/f=fax20 g5day
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
- dealloc dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
+ allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAXIS
+ dealloc dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAXIS
set reg/x=130w:125w/y=0:1.5/e=1:2/f=23-JAN-1982:24-jan-1982/t=21-JAN-1982/z=5
@@ -70882,11 +70502,11 @@ stat temp[g=g5day] - temp[g=g5day at ave]
strip --> EX#1[T=1982 at ITP,D=1]
eval EX#1 C: 5 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
strip regrid on F: TEMP --> G5DAY @LIN
- reading TEMP M:248 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:236 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ reading TEMP M:246 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ regrid TEMP M:227 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
strip regrid on F: TEMP --> G5DAY @AVE
- found TEMP M:248 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:232 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ found TEMP M:246 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ regrid TEMP M:214 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
doing --> EX#1[T=1982 at ITP,D=1]
TEMP[G=G5DAY] - TEMP[G=G5DAY at AVE]
@@ -70896,7 +70516,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
TIME: 1982 (interpolated)
E: 1 to 2
FORECAST: 1982 to 1982
- DATA SET: ./gtsa056_1_ef.nc
+ DATA SET: ./data/gtsa056_1_ef.nc
Total # of data points: 120 (5*6*1*1*2*2)
# flagged as bad data: 0
@@ -70907,17 +70527,17 @@ stat temp[g=g5day] - temp[g=g5day at ave]
! basic regrid tests
LIST temp[g=g5day at ave]
- -DELETE EX#1 M:226 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- -DELETE EX#1 M:234 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:232 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- -DELETE TEMP M:236 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ -DELETE EX#1 M:210 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ -DELETE EX#1 M:224 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
+ dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAX20
+ -DELETE TEMP M:214 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ -DELETE TEMP M:227 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=1982 at ITP,D=1]
eval EX#1 C: 5 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
strip regrid on F: TEMP --> G5DAY @AVE
- found TEMP M:248 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:236 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ found TEMP M:246 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ regrid TEMP M:227 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
doing --> TEMP[T=1982 at ITP,D=1]
VARIABLE : TEMPERATURE (deg. C)
regrid: G5DAY on F at AVE
@@ -70958,15 +70578,15 @@ LIST temp[g=g5day at ave]
0.17N / 42: 43.2944 43.2343 43.1825 43.2263 43.4336
0.17S / 41: 43.3538 43.2657 43.1716 43.1285 43.2282
LIST temp[g=g5day]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:232 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
- -DELETE TEMP M:236 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAX20
+ -DELETE TEMP M:214 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
+ -DELETE TEMP M:227 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=1982 at ITP,D=1]
eval EX#1 C: 5 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
strip regrid on F: TEMP --> G5DAY @LIN
- found TEMP M:248 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:236 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ found TEMP M:246 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ regrid TEMP M:227 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
doing --> TEMP[T=1982 at ITP,D=1]
VARIABLE : TEMPERATURE (deg. C)
regrid: G5DAY
@@ -71026,17 +70646,17 @@ set window/size=.5/aspect=.4 1
use gtsa056_1_ef !kob 4/99
set region/x=180E/y=0/f=23-JAN-1982/t=21-JAN-1982/z=5
plot temp
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:232 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
- -DELETE TEMP M:236 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAX20
+ -DELETE TEMP M:214 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: -999 -999 M: 1 2 N: 1 2
+ -DELETE TEMP M:227 dset: 1 I: 101 105 J: 41 46 K: 1 1 L: 2 3 M: 1 2 N: 1 2
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
+ allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAXIS
strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=1982 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 8 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- reading TEMP M:236 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ reading TEMP M:227 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=1982 at ITP,D=1]
@@ -71044,53 +70664,53 @@ plot temp
setting up plot
PPL plot 869 complete
plot/over temp[g=g5day]
- dealloc dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
+ dealloc dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAXIS
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=1982 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @LIN
- found TEMP M:236 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:216 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ found TEMP M:227 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ regrid TEMP M:197 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=1982 at ITP,D=1]
setting up plot
PPL plot 870 complete
plot/over temp[g=g5day at ave]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:216 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M:220 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M:228 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M:242 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
+ dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAX20
+ -DELETE TEMP M:197 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M:204 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M:212 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M:230 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=1982 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @AVE
- found TEMP M:236 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:242 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ found TEMP M:227 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ regrid TEMP M:230 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=1982 at ITP,D=1]
setting up plot
PPL plot 871 complete
plot/over temp[g=g5day at asn]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:216 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
- -DELETE TEMP M:220 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M:228 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M:242 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAX20
+ -DELETE TEMP M:197 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
+ -DELETE TEMP M:204 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M:212 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M:230 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=1982 at ITP,D=1]
strip --> EX#1[Y=0 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @ASN
- found TEMP M:236 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
- regrid TEMP M:242 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ found TEMP M:227 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 2
+ regrid TEMP M:230 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[Y=0 at ITP,D=1]
doing --> TEMP[T=1982 at ITP,D=1]
@@ -71100,64 +70720,64 @@ PPL plot 872 complete
! F axis
set region/x=180/y=20s:20n/e=2/t=21-JAN-1982/z=5
plot temp
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:216 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
- -DELETE TEMP M:220 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M:228 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
- -DELETE TEMP M:242 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAX20
+ -DELETE TEMP M:197 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: -999 -999 M: 1 2 N: 1 1
+ -DELETE TEMP M:204 dset: 1 I: -999 -999 J: -999 -999 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M:212 dset: 1 I: -999 -999 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
+ -DELETE TEMP M:230 dset: 1 I: 50 51 J: 41 42 K: 1 1 L: 2 3 M: 1 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
+ allocate dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAXIS
strip --> EX#1[F=1982 at ITP,D=1]
strip --> EX#1[T=1982 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 7 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
- reading TEMP M:242 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
+ reading TEMP M:230 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=1982 at ITP,D=1]
doing --> TEMP[F=1982 at ITP,D=1]
setting up plot
PPL plot 873 complete
plot/over temp[g=g5day]
- dealloc dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAXIS
+ dealloc dynamic grid GGR1 PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAXIS
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=1982 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 6 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @LIN
- found TEMP M:242 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
- regrid TEMP M:224 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ found TEMP M:230 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
+ regrid TEMP M:208 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=1982 at ITP,D=1]
setting up plot
PPL plot 874 complete
plot/over temp[g=g5day at ave]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:212 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
- -DELETE TEMP M:224 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- -DELETE TEMP M:240 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAX20
+ -DELETE TEMP M:194 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
+ -DELETE TEMP M:208 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ -DELETE TEMP M:229 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=1982 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 6 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @AVE
- found TEMP M:242 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
- regrid TEMP M:240 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ found TEMP M:230 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
+ regrid TEMP M:229 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=1982 at ITP,D=1]
setting up plot
PPL plot 875 complete
plot/over temp[g=g5day at asn]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:212 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
- -DELETE TEMP M:224 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- -DELETE TEMP M:240 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAX20
+ -DELETE TEMP M:194 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
+ -DELETE TEMP M:208 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ -DELETE TEMP M:229 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
strip --> EX#1[T=1982 at ITP,D=1]
strip --> EX#1[X=180E at ITP,D=1]
eval EX#1 C: 6 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
strip regrid on F: TEMP --> G5DAY @ASN
- found TEMP M:242 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
- regrid TEMP M:240 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ found TEMP M:230 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 2
+ regrid TEMP M:229 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
doing --> TEMP[X=180E at ITP,D=1]
doing --> TEMP[T=1982 at ITP,D=1]
setting up plot
@@ -71182,10 +70802,10 @@ let a1 = _e[ge=e1pt]+_f[gf=f1pt]
let a2 = _e[ge=e2pt]+_f[gf=f2pt]
list a1[ge=eoffset at ave, gf=fax4day at ave]
- dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME21 EAXIS FAX20
- -DELETE TEMP M:212 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
- -DELETE TEMP M:224 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
- -DELETE TEMP M:240 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ dealloc dynamic grid G5DAY PSXT PSYT5_89 PSZT1_2 TIME23 EAXIS FAX20
+ -DELETE TEMP M:194 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: -999 -999 M: 2 2 N: 1 1
+ -DELETE TEMP M:208 dset: 1 I: -999 -999 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
+ -DELETE TEMP M:229 dset: 1 I: 50 51 J: 1 84 K: 1 1 L: 2 3 M: 2 2 N: 1 1
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G089) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
@@ -71202,16 +70822,16 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
strip regrid on F: A1 --> ENTERMED @AVE
eval A1 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ pseudo _E M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
allocate dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- pseudo _F M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
- -DELETE _F M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
+ pseudo _F M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
+ -DELETE _F M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 1
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL NORMAL F1PT
- -DELETE _E M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ -DELETE _E M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- regrid A1 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A1 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -71236,7 +70856,7 @@ list a1[ge=eoffset at ave, gf=fax4day at ave]
16-MAR-1982 00 / 16: .... ....
list a1[ge=eoffset at sum, gf=fax4day at sum]
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A1 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
@@ -71245,10 +70865,10 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
strip regrid on E: A1 --> (G091) @SUM
strip regrid on F: A1 --> ENTERMED @SUM
- found A1 M:212 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- regrid A1 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- regrid A1 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A1 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ found A1 M:194 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
+ regrid A1 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : _E[GE=E1PT]+_F[GF=F1PT]
regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -71273,7 +70893,7 @@ list a1[ge=eoffset at sum, gf=fax4day at sum]
16-MAR-1982 00 / 16: .... ....
list a1[ge=eoffset at var, gf=fax4day at var]
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A1 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
@@ -71282,10 +70902,10 @@ list a1[ge=eoffset at var, gf=fax4day at var]
allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
strip regrid on E: A1 --> (G091) @VAR
strip regrid on F: A1 --> ENTERMED @VAR
- found A1 M:212 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
- regrid A1 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
- regrid A1 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A1 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ found A1 M:194 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
+ regrid A1 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
+ regrid A1 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 16
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : Variance of _E[GE=E1PT]+_F[GF=F1PT]
regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -71311,7 +70931,7 @@ list a1[ge=eoffset at var, gf=fax4day at var]
list a2[ge=eoffset at ave, gf=fax4day at ave]
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A1 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A1 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A2 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
@@ -71328,16 +70948,16 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
strip regrid on F: A2 --> ENTERMED @AVE
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ pseudo _E M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
allocate dynamic grid (G108) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- pseudo _F M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- -DELETE _F M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
+ pseudo _F M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
+ -DELETE _F M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
dealloc dynamic grid (G108) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
- -DELETE _E M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE _E M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- regrid A2 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- regrid A2 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ regrid A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ regrid A2 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
regrid: 1 delta on E at AVE, 96 hour on F at AVE
@@ -71362,7 +70982,7 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
16-MAR-1982 00 / 16: .... ....
list a2[ge=eoffset at sum, gf=fax4day at sum]
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A2 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
@@ -71371,10 +70991,10 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
strip regrid on E: A2 --> (G103) @SUM
strip regrid on F: A2 --> ENTERMED @SUM
- found A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
- regrid A2 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- regrid A2 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ found A2 M:188 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
+ regrid A2 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ regrid A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : _E[GE=E2PT]+_F[GF=F2PT]
regrid: 1 delta on E at SUM, 96 hour on F at SUM
@@ -71399,7 +71019,7 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
16-MAR-1982 00 / 16: .... ....
list a2[ge=eoffset at var, gf=fax4day at var]
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A2 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
@@ -71408,10 +71028,10 @@ list a2[ge=eoffset at var, gf=fax4day at var]
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
strip regrid on E: A2 --> (G103) @VAR
strip regrid on F: A2 --> ENTERMED @VAR
- found A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
- regrid A2 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- regrid A2 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ found A2 M:188 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
+ regrid A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ regrid A2 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
VARIABLE : Variance of _E[GE=E2PT]+_F[GF=F2PT]
regrid: 1 delta on E at VAR, 96 hour on F at VAR
@@ -71439,10 +71059,10 @@ list a2[ge=eoffset at var, gf=fax4day at var]
let a1 = _e[ge=e1pt]
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET FAX4DAY
- -DELETE A2 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
- -DELETE A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
+ -DELETE A2 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
+ -DELETE A2 M:188 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E2PT F2PT
- -DELETE A1 M:212 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
+ -DELETE A1 M:194 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: 1 1
dealloc dynamic grid (G089) NORMAL NORMAL NORMAL NORMAL E1PT F1PT
let a2 = _e[ge=e2pt]
let a4 = _e[ge=e4pt]
@@ -71461,9 +71081,9 @@ list a1[ge=eoffset at max]
strip regrid on E: A1 --> (G091) @MAX
eval A1 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
allocate dynamic grid (G089) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- pseudo _E M:212 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ pseudo _E M:194 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
dealloc dynamic grid (G089) NORMAL NORMAL NORMAL NORMAL E1PT NORMAL
- regrid A1 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ regrid A1 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
VARIABLE : _E[GE=E1PT]
regrid: 1 delta on E at MAX
@@ -71471,9 +71091,9 @@ list a1[ge=eoffset at max]
1.1 / 1: ....
2.1 / 2: 2.50000
list a2[ge=eoffset at max]
- -DELETE _E M:212 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
+ -DELETE _E M:194 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 1 N: -999 -999
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A1 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE A1 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A2 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
@@ -71487,9 +71107,9 @@ list a2[ge=eoffset at max]
strip regrid on E: A2 --> (G103) @MAX
eval A2 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
allocate dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- pseudo _E M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ pseudo _E M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G091) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
- regrid A2 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ regrid A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
VARIABLE : _E[GE=E2PT]
regrid: 1 delta on E at MAX
@@ -71497,9 +71117,9 @@ list a2[ge=eoffset at max]
1.1 / 1: 1.50000
2.1 / 2: 2.50000
list a4[ge=eoffset at max]
- -DELETE _E M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE _E M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A2 M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE A2 M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A4 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
@@ -71513,9 +71133,9 @@ list a4[ge=eoffset at max]
strip regrid on E: A4 --> (G094) @MAX
eval A4 C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- pseudo _E M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
+ pseudo _E M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL E4PT NORMAL
- regrid A4 M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ regrid A4 M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
VARIABLE : _E[GE=E4PT]
regrid: 1 delta on E at MAX
@@ -71523,9 +71143,9 @@ list a4[ge=eoffset at max]
1.1 / 1: 1.50000
2.1 / 2: 2.50000
list a4[ge=eoffset at min]
- -DELETE _E M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
+ -DELETE _E M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A4 M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE A4 M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
@@ -71533,8 +71153,8 @@ list a4[ge=eoffset at min]
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
allocate dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
strip regrid on E: A4 --> (G094) @MIN
- found A4 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- regrid A4 M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ found A4 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
+ regrid A4 M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
VARIABLE : _E[GE=E4PT]
regrid: 1 delta on E at MIN
@@ -71543,7 +71163,7 @@ list a4[ge=eoffset at min]
2.1 / 2: 2.00000
list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A4 M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE A4 M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
@@ -71551,8 +71171,8 @@ list a4[ge=eoffset at sum] ! 5+5.5+6+6.5=23
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
allocate dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
strip regrid on E: A4 --> (G094) @SUM
- found A4 M:240 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
- regrid A4 M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ found A4 M:229 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 3 N: -999 -999
+ regrid A4 M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
VARIABLE : _E[GE=E4PT]
regrid: 1 delta on E at SUM
@@ -71566,7 +71186,7 @@ define axis/f=1-jan-1990:5-jan-1990:24/units=hours ehour
let afcst = _f[gf=eday]
list afcst
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL EOFFSET NORMAL
- -DELETE A4 M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
+ -DELETE A4 M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid AFCST C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
@@ -71576,7 +71196,7 @@ list afcst
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
eval AFCST C: 6 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
allocate dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
- pseudo _F M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
+ pseudo _F M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
VARIABLE : _F[GF=EDAY]
SUBSET : 5 points (FORECAST)
@@ -71597,7 +71217,7 @@ show grid
normal E
EDAY FORECAST 5 r 01-JAN-1990 00:00 05-JAN-1990 00:00 full
list afcst[gf=ehour at max]
- -DELETE _F M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
+ -DELETE _F M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G094) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G108) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
@@ -71606,8 +71226,8 @@ list afcst[gf=ehour at max]
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
allocate dynamic grid (G108) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
strip regrid on F: AFCST --> (G108) @MAX
- found AFCST M:224 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- regrid AFCST M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
+ found AFCST M:208 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
+ regrid AFCST M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G108) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
VARIABLE : _F[GF=EDAY]
regrid: 24 hour on F at MAX
@@ -71661,23 +71281,23 @@ show data fourfiles
list/i=3 sst[T=@ave]
getgrid EX#1 C: 5 dset: 5 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G108) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ allocate dynamic grid (G108) COADSX116_COADSY52_6NORMAL TIME24 ENSEMBLE NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
strip --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
strip aggregate gathering SST on E axis: 1 4 dset: 5
- reading SST M:248 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ reading SST M:246 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing aggregate gathering SST on E axis: 1 1 dset: 1
- -DELETE SST M:248 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- reading SST M:248 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE SST M:246 dset: 1 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ reading SST M:246 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing aggregate gathering SST on E axis: 2 2 dset: 3
- -DELETE SST M:248 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- reading SST M:248 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE SST M:246 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ reading SST M:246 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing aggregate gathering SST on E axis: 3 3 dset: 2
- -DELETE SST M:248 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- reading SST M:248 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE SST M:246 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ reading SST M:246 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing aggregate gathering SST on E axis: 4 4 dset: 4
- -DELETE SST M:248 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE SST M:246 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
final --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
VARIABLE : SST_IN (Deg C)
@@ -71698,19 +71318,19 @@ show memory/all ! show memory-resident variables before canceling dataset
Peak demand: 540 words
Current cache: 504 words
all data in memory:
- SST[D=fourfiles] YE mr:248 size:72
+ SST[D=fourfiles] YE mr:246 size:72
3/106W 1/12N ... / ... ... /01-JAN 00:45 1/0.5 ... / ...
3/104W 9/30N ... / ... ... /31-DEC 06:34 4/4.5 ... / ...
AVE
- SST[D=fourfiles] YTE mr:242 size:432
+ SST[D=fourfiles] YTE mr:230 size:432
3/106W 1/12N ... / ... 1/01-JAN 00:45 1/0.5 ... / ...
3/104W 9/30N ... / ... 12/31-DEC 06:34 4/4.5 ... / ...
cancel data fourfiles
- dealloc dynamic grid (G108) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ dealloc dynamic grid (G108) COADSX116_COADSY52_6NORMAL TIME24 ENSEMBLE NORMAL
canceling dset fourfiles
- -DELETE SST M:242 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
- -DELETE SST M:248 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: -999 -999 M: 1 4 N: -999 -999
+ -DELETE SST M:230 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
+ -DELETE SST M:246 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: -999 -999 M: 1 4 N: -999 -999
show memory/all ! show memory-resident variables after canceling dataset
SET MEMORY/SIZE: 25.6 megawords
Peak demand: 540 words
@@ -71719,17 +71339,17 @@ all data in memory:
! 12/15 now do again adding COADS to de-align toe dset #s from the sequence #s
cancel data/all
- canceling dset ./ens1.nc
- canceling dset ./ens2.nc
- canceling dset ./ens3.nc
- canceling dset ./ens4.nc
+ canceling dset ./data/ens1.nc
+ canceling dset ./data/ens2.nc
+ canceling dset ./data/ens3.nc
+ canceling dset ./data/ens4.nc
use coads_climatology
use ens1, ens2, ens3, ens4
define data/agg/E/hide fourfiles = ens1, ens3, ens2, ens4
! confirm that it isn't COADS that got hidden
show data
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -71738,14 +71358,14 @@ show data
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
cancel data fourfiles
- canceling dset ./ens1.nc
- canceling dset ./ens3.nc
- canceling dset ./ens2.nc
- canceling dset ./ens4.nc
+ canceling dset ./data/ens1.nc
+ canceling dset ./data/ens3.nc
+ canceling dset ./data/ens2.nc
+ canceling dset ./data/ens4.nc
canceling dset fourfiles
show data/brief/all/hidden
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
! Create airt in the other datasets by LET/D definitions.
use ens1, ens2, ens3, ens4
@@ -71755,11 +71375,11 @@ let/d=ens4 airt = sst + 1
ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
getgrid AIRT C: 5 dset: 4 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME13
+ allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME24
getgrid AIRT C: 5 dset: 3 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME13
+ allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME24
getgrid AIRT C: 5 dset: 5 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME13
+ allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME24
show data fourfiles
currently SET data sets:
6> fourfiles (default) Ensemble aggregation
@@ -71770,32 +71390,32 @@ show data fourfiles
list/i=3 airt[T=@ave]
getgrid EX#1 C: 5 dset: 6 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G091) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ allocate dynamic grid (G091) COADSX116_COADSY52_6NORMAL TIME24 ENSEMBLE NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 6 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
strip aggregate gathering AIRT on E axis: 1 4 dset: 6
- reading AIRT M:248 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ reading AIRT M:246 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing aggregate gathering AIRT on E axis: 1 1 dset: 2
- -DELETE AIRT M:248 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE AIRT M:246 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
eval AIRT C: 9 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- reading SST M:248 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- constan cnst M:236 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
- -DELETE cnst M:236 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ reading SST M:246 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ constan cnst M:227 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE cnst M:227 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
doing aggregate gathering AIRT on E axis: 2 2 dset: 4
- -DELETE AIRT M:234 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE AIRT M:224 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
eval AIRT C: 9 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- reading SST M:234 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- constan cnst M:236 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
- -DELETE cnst M:236 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ reading SST M:224 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ constan cnst M:227 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE cnst M:227 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
doing aggregate gathering AIRT on E axis: 3 3 dset: 3
- -DELETE AIRT M:232 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE AIRT M:214 dset: 3 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
eval AIRT C: 9 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- reading SST M:232 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- constan cnst M:236 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
- -DELETE cnst M:236 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ reading SST M:214 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ constan cnst M:227 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE cnst M:227 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
doing aggregate gathering AIRT on E axis: 4 4 dset: 5
- -DELETE AIRT M:228 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE AIRT M:212 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=6]
VARIABLE : AIR TEMPERATURE (DEG C)
@@ -71814,9 +71434,9 @@ list/i=3 airt[T=@ave]
! create an ensemble where one member is missing
ENSEMBLE fourfiles_gap = ens1, -, ens3, ens4
getgrid AIRT C: 5 dset: 4 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME13
+ allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME24
getgrid AIRT C: 5 dset: 5 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME13
+ allocate dynamic grid GOH1 COADSX116_COADSY52_6NORMAL TIME24
show data/files fourfiles_gap
currently SET data sets:
7> fourfiles_gap (default) Ensemble aggregation
@@ -71825,35 +71445,35 @@ show data/files fourfiles_gap
AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 1:4 ...
Member datasets:
- 7.1: ./ens1.nc
+ 7.1: ./data/ens1.nc
7.2: (dummy)
- 7.3: ./ens3.nc
- 7.4: ./ens4.nc
+ 7.3: ./data/ens3.nc
+ 7.4: ./data/ens4.nc
list/i=3 airt[T=@ave]
getgrid EX#1 C: 5 dset: 7 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G091) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ allocate dynamic grid (G091) COADSX116_COADSY52_6NORMAL TIME24 ENSEMBLE NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 7 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
strip --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
strip aggregate gathering AIRT on E axis: 1 4 dset: 7
- reading AIRT M:236 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ reading AIRT M:227 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing aggregate gathering AIRT on E axis: 1 1 dset: 2
- -DELETE AIRT M:236 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- dummy AIRT M:236 dset:5001 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE AIRT M:227 dset: 2 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ dummy AIRT M:227 dset:5001 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing aggregate gathering AIRT on E axis: 2 2 dset:5001
- -DELETE AIRT M:236 dset:5001 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE AIRT M:227 dset:5001 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
eval AIRT C: 9 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- found SST M:248 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- constan cnst M:236 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
- -DELETE cnst M:236 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ found SST M:246 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ constan cnst M:227 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE cnst M:227 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
doing aggregate gathering AIRT on E axis: 3 3 dset: 4
- -DELETE AIRT M:220 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE AIRT M:204 dset: 4 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
eval AIRT C: 9 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- found SST M:232 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
- constan cnst M:220 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
- -DELETE cnst M:220 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ found SST M:214 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ constan cnst M:204 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE cnst M:204 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
doing aggregate gathering AIRT on E axis: 4 4 dset: 5
- -DELETE AIRT M:236 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
+ -DELETE AIRT M:227 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12
doing --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
final --> AIRT[T=01-JAN00:45:31-DEC06:34 at AVE,D=7]
VARIABLE : AIR TEMPERATURE (DEG C)
@@ -71910,13 +71530,13 @@ let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
show data
currently SET data sets:
- 1> ./coads_uw.nc
+ 1> ./data/coads_uw.nc
name title I J K L
UWND ZONAL WIND 1:30 1:30 ... 1:12
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12
SPEH SPECIFIC HUMIDITY 1:30 1:30 ... 1:12
- 2> ./navy_uw.nc (default)
+ 2> ./data/navy_uw.nc (default)
name title I J K L
UIN ZONAL WIND 1:30 1:30 ... 1:30
VIN MERIDIONAL WIND 1:30 1:30 ... 1:30
@@ -71957,14 +71577,14 @@ list/l=3/y=30/x=-59:-51 uwnd[d=1], uwnd[d=2], uwnd[d=3,e=1], uwnd[d=3,e=2], uwnd
! Use the other order. As long as we have a file variable, we're ok
show data/brief ! see what is *not* hidden
currently SET data sets:
- 1> ./coads_uw.nc
- 2> ./navy_uw.nc
+ 1> ./data/coads_uw.nc
+ 2> ./data/navy_uw.nc
3> windy (default) Ensemble aggregation
cancel data 3
show data/brief ! see what is *not* hidden
currently SET data sets:
- 1> ./coads_uw.nc
- 2> ./navy_uw.nc
+ 1> ./data/coads_uw.nc
+ 2> ./data/navy_uw.nc
! Define the ensemble dataset
ensemble windy = 2,1
@@ -72054,32 +71674,32 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
! should just show the ensemble set. Members are hidden.
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
6> fourfiles (default) Ensemble aggregation
! If ask for a member set by name or number, do show it
show data/brief 2
currently SET data sets:
- 2> ./ens1.nc
+ 2> ./data/ens1.nc
show data/brief ens3
currently SET data sets:
- 4> ./ens3.nc
+ 4> ./data/ens3.nc
! should show all members plus ensemble
show data/brief/hidden
currently SET data sets:
- 1> ./coads_climatology.cdf
- 2> ./ens1.nc
- 3> ./ens2.nc
- 4> ./ens3.nc
- 5> ./ens4.nc
+ 1> ./data/coads_climatology.cdf
+ 2> ./data/ens1.nc
+ 3> ./data/ens2.nc
+ 4> ./data/ens3.nc
+ 5> ./data/ens4.nc
6> fourfiles (default) Ensemble aggregation
! Since the members were hidden, they get deleted with the aggregation
cancel data fourfiles
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
cancel data/all
! Cancel a member, then the ensemble gets canceled.
@@ -72089,16 +71709,16 @@ use ens1, ens2, ens3, ens4
ensemble/HIDE/title="uvars in dset 2" my_ens = 2,3
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf
- 4> ./ens3.nc
- 5> ./ens4.nc
+ 1> ./data/coads_climatology.cdf
+ 4> ./data/ens3.nc
+ 5> ./data/ens4.nc
6> my_ens (default) Ensemble aggregation
cancel data ens2
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf
- 4> ./ens3.nc
- 5> ./ens4.nc
+ 1> ./data/coads_climatology.cdf
+ 4> ./data/ens3.nc
+ 5> ./data/ens4.nc
! Cancel the ensemble, then hidden members get canceled too
@@ -72108,14 +71728,14 @@ ensemble/HIDE/title="uvars in dset 2" my_ens = 2,3,4,5
! members hidden, showing only ensemble.
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
6> my_ens (default) Ensemble aggregation
cancel data my_ens
! Cancel ensemble dataset: hidden members deleted
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
! Define several ensembles with /HIDE
ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -72125,28 +71745,28 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
! Shows all the ensembles
show data/brief/files
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
6> fourfiles Ensemble aggregation
Member datasets:
- 6.1: ./ens1.nc
- 6.2: ./ens2.nc
- 6.3: ./ens3.nc
- 6.4: ./ens4.nc
+ 6.1: ./data/ens1.nc
+ 6.2: ./data/ens2.nc
+ 6.3: ./data/ens3.nc
+ 6.4: ./data/ens4.nc
7> some Ensemble aggregation
Member datasets:
- 7.1: ./ens1.nc
- 7.2: ./ens2.nc
+ 7.1: ./data/ens1.nc
+ 7.2: ./data/ens2.nc
8> more (default) Ensemble aggregation
Member datasets:
- 8.1: ./ens2.nc
- 8.2: ./ens3.nc
- 8.3: ./ens4.nc
+ 8.1: ./data/ens2.nc
+ 8.2: ./data/ens3.nc
+ 8.3: ./data/ens4.nc
! Cancel a member of all the ensembles. All the ensembles get deleted.
cancel data ens2
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
GO bn_reset bn_6d_lab_mode
@@ -72165,7 +71785,7 @@ use gt4d011
set mode 6d_lab ! this is the default setting
show data
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -72179,7 +71799,7 @@ show data
cancel mode 6d_lab
show data
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -72200,7 +71820,7 @@ show grid temp
PSXT LONGITUDE 160mr 130.5E 70.5W full
PSYT1 LATITUDE 100 i 28.836S 48.568N full
PSZT2 DEPTH (m) 27 i- 5 3824 full
- TIME14 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00 full
+ TIME111 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00 full
cancel mode 6d_lab
show grid temp
GRID PS3DT21
@@ -72208,7 +71828,7 @@ show grid temp
PSXT LONGITUDE 160mr 130.5E 70.5W full
PSYT1 LATITUDE 100 i 28.836S 48.568N full
PSZT2 DEPTH (m) 27 i- 5 3824 full
- TIME14 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00 full
+ TIME111 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00 full
! Mode affects output of STAT
@@ -72222,7 +71842,7 @@ stat temp
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
E: N/A
F: N/A
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 99000 (18*22*10*25*1*1)
# flagged as bad data: 0
@@ -72238,7 +71858,7 @@ stat temp
LATITUDE: 3.6667S to 3.6667N
DEPTH (m): 0 to 100
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 99000 (18*22*10*25)
# flagged as bad data: 0
@@ -72252,13 +71872,13 @@ stat temp
set mode diag
set mode 6d_lab
list/L=1:8 taux[x=@ave,y=@ave]
- dealloc dynamic grid PS3DT21 PSXT PSYT1 PSZT2 TIME14
+ dealloc dynamic grid PS3DT21 PSXT PSYT1 PSZT2 TIME111
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS2DU2 PSXU PSYU NORMAL TIME14
+ allocate dynamic grid PS2DU2 PSXU PSYU NORMAL TIME111
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 160 J: 1 100 K: -999 -999 L: 1 8
strip --> TAUX[Y=28.8361S:51.4321N at AV4,D=1]
- reading TAUX M:226 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8
+ reading TAUX M:210 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8
doing --> TAUX[Y=3.5S:3.5N at AV4,D=1]
final --> TAUX[Y=3.5S:3.5N at AV4,D=1]
VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
@@ -72276,13 +71896,13 @@ list/L=1:8 taux[x=@ave,y=@ave]
29-SEP-1982 02 / 8: -0.105418
cancel mode 6d_lab
list/L=1:8 taux[x=@sum,y=@sum]
- dealloc dynamic grid PS2DU2 PSXU PSYU NORMAL TIME14
+ dealloc dynamic grid PS2DU2 PSXU PSYU NORMAL TIME111
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid PS2DU2 PSXU PSYU NORMAL TIME14
+ allocate dynamic grid PS2DU2 PSXU PSYU NORMAL TIME111
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 1 160 J: 1 100 K: -999 -999 L: 1 8
strip --> TAUX[Y=28.8361S:51.4321N at SM4,D=1]
- found TAUX M:226 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8
+ found TAUX M:210 dset: 1 I: 91 108 J: 35 55 K: -999 -999 L: 1 8
doing --> TAUX[Y=3.5S:3.5N at SM4,D=1]
VARIABLE : ZONAL WIND STRESS (dynes/cm**2)
FILENAME : gt4d011.cdf
@@ -72342,7 +71962,7 @@ GO err681_dims_direction
use dims_not_coord
sh dat
currently SET data sets:
- 1> ./dims_not_coord.nc (default)
+ 1> ./data/dims_not_coord.nc (default)
name title I J K L
U zonal current 1:4 1:7 1:1 ...
LON_C uv longitude 1:4 1:7 ... ...
@@ -72532,7 +72152,7 @@ GO err682_axis_no_clue
use xsz.nc
sh dat
currently SET data sets:
- 1> ./xsz.nc (default)
+ 1> ./data/xsz.nc (default)
name title I J K L
TEMP TEMPERATURE 1:5 1:7 1:3 ...
@@ -72700,7 +72320,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72710,13 +72330,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -72753,7 +72373,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72763,13 +72383,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST DOUBLE missing_value DOUBLE 1 T -1.E+34
_FillValue DOUBLE 1 T -1.E+34
@@ -72795,7 +72415,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72805,13 +72425,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -72837,7 +72457,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72847,13 +72467,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST3 INT missing_value INT 1 T -999
_FillValue INT 1 T -999
@@ -72870,7 +72490,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72880,13 +72500,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST3 SHORT missing_value SHORT 1 T -999
_FillValue SHORT 1 T -999
@@ -72904,7 +72524,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72914,13 +72534,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST4 BYTE missing_value BYTE 1 T -99
_FillValue BYTE 1 T -99
@@ -72967,7 +72587,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -72977,13 +72597,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -73015,7 +72635,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73025,13 +72645,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST3 INT missing_value INT 1 T -999
_FillValue INT 1 T -999
@@ -73072,7 +72692,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73082,13 +72702,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST2 DOUBLE missing_value DOUBLE 1 T -1.E+34
_FillValue DOUBLE 1 T -1.E+34
@@ -73110,7 +72730,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73120,13 +72740,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST2 FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -73148,7 +72768,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73158,13 +72778,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST4 INT missing_value INT 1 T -99
_FillValue INT 1 T -99
@@ -73186,7 +72806,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73196,13 +72816,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST4 BYTE missing_value BYTE 1 T -99
_FillValue BYTE 1 T -99
@@ -73220,7 +72840,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73230,13 +72850,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST4 INT missing_value INT 1 T -99
_FillValue INT 1 T -99
@@ -73414,7 +73034,7 @@ GO bn_descr_4digit
use coads_clim_4digit.des
sh dat
currently SET data sets:
- 1> ./coads_clim_4digit.des (default)
+ 1> ./data/coads_clim_4digit.des (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:4 1:4 ... 1:6
@@ -73449,7 +73069,7 @@ set axis/outtype=float `sst,return=xaxis`
set axis/outtype=float `sst,return=yaxis`
!-> set axis/outtype=float COADSY
set axis/outtype=float `sst,return=taxis`
- !-> set axis/outtype=float TIME10
+ !-> set axis/outtype=float TIME20
save/x=300/y=0:5/clobber/file=mytype.nc sst
use mytype.nc; sh dat/att mytype.nc; can data mytype
@@ -73458,7 +73078,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
@@ -73468,13 +73088,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME101) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME201) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo FLOAT 1 T 8765.82
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -73492,7 +73112,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
@@ -73502,13 +73122,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME101) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME201) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo FLOAT 1 T 8765.82
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST DOUBLE missing_value DOUBLE 1 T -1.E+34
_FillValue DOUBLE 1 T -1.E+34
@@ -73527,7 +73147,7 @@ set axis/outtype=input `sst,return=xaxis`
set axis/outtype=input `sst,return=yaxis`
!-> set axis/outtype=input COADSY
set axis/outtype=input `sst,return=taxis`
- !-> set axis/outtype=input TIME10
+ !-> set axis/outtype=input TIME20
save/x=300/y=0:5/clobber/file=mytype.nc sst
use mytype.nc; sh dat/att mytype.nc; can data mytype
@@ -73536,7 +73156,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
@@ -73546,13 +73166,13 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
orig_file_axname
CHAR 11 F COADSY46_48
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo DOUBLE 1 T 8765.82
axis CHAR 1 T T
standard_name CHAR 4 F time
orig_file_axname
- CHAR 6 F TIME10
+ CHAR 6 F TIME20
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -73577,7 +73197,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73603,7 +73223,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73629,7 +73249,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -73922,7 +73542,7 @@ GO err684_delimited_precision
! Data has numeric, longitude, and latitude values needing double precision.
! The seconds portion of time is also now read with double precision
-sp cat delim_prec.dat
+sp cat data/delim_prec.dat
734654.0000 330.1234500E 42.00001000N 00:00:1.00000001
734654.0104 330.1234600E 42.00004000N 00:00:1.00000003
734654.0208 330.1234700E 42.00006000N 00:00:1.00000007
@@ -73931,7 +73551,7 @@ sp cat delim_prec.dat
! Delimited read, automatically detect data types
set data/ez/format=delim/del=" " delim_prec.dat
list/i=1:5/prec=10 v1,v2,v3,v4
- DATA SET: ./delim_prec.dat
+ DATA SET: ./data/delim_prec.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2 is V2 (degrees_east)(Longitude)
@@ -73947,7 +73567,7 @@ list/i=1:5/prec=10 v1,v2,v3,v4
can dat/all
set data/ez/format=delim/del=" "/var="day,lon,lat,tim"/type="numeric,longitude,latitude,time" delim_prec.dat
list/prec=10 day, lon, lat, tim
- DATA SET: ./delim_prec.dat
+ DATA SET: ./data/delim_prec.dat
X: 0.5 to 4.5
Column 1: DAY is day
Column 2: LON is lon (degrees_east)(Longitude)
@@ -74070,15 +73690,15 @@ save/clob/file=a.nc a
sp ncdump a.nc
netcdf a {
dimensions:
- TIME10 = UNLIMITED ; // (3 currently)
+ TIME20 = UNLIMITED ; // (3 currently)
variables:
- double TIME10(TIME10) ;
- TIME10:units = "hour since 0000-01-01 00:00:00" ;
- TIME10:time_origin = "01-JAN-0000 00:00:00" ;
- TIME10:modulo = " " ;
- TIME10:axis = "T" ;
- TIME10:standard_name = "time" ;
- double A(TIME10) ;
+ double TIME20(TIME20) ;
+ TIME20:units = "hour since 0000-01-01 00:00:00" ;
+ TIME20:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME20:modulo = " " ;
+ TIME20:axis = "T" ;
+ TIME20:standard_name = "time" ;
+ double A(TIME20) ;
A:missing_value = -1.e+34 ;
A:_FillValue = -1.e+34 ;
A:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
@@ -74086,11 +73706,11 @@ variables:
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
- TIME10 = 366, 1096.485, 1826.97 ;
+ TIME20 = 366, 1096.485, 1826.97 ;
A = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
}
@@ -74099,15 +73719,15 @@ save/clob/file=aa.nc sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
sp ncdump aa.nc
netcdf aa {
dimensions:
- TIME10 = UNLIMITED ; // (3 currently)
+ TIME20 = UNLIMITED ; // (3 currently)
variables:
- double TIME10(TIME10) ;
- TIME10:units = "hour since 0000-01-01 00:00:00" ;
- TIME10:time_origin = "01-JAN-0000 00:00:00" ;
- TIME10:modulo = " " ;
- TIME10:axis = "T" ;
- TIME10:standard_name = "time" ;
- double E410(TIME10) ;
+ double TIME20(TIME20) ;
+ TIME20:units = "hour since 0000-01-01 00:00:00" ;
+ TIME20:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME20:modulo = " " ;
+ TIME20:axis = "T" ;
+ TIME20:standard_name = "time" ;
+ double E410(TIME20) ;
E410:missing_value = -1.e+34 ;
E410:_FillValue = -1.e+34 ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
@@ -74115,11 +73735,11 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
- TIME10 = 366, 1096.485, 1826.97 ;
+ TIME20 = 366, 1096.485, 1826.97 ;
E410 = -0.0994369294620867, -0.0415768591395924, 0.141480238198152 ;
}
@@ -74150,15 +73770,15 @@ save/clob/file=aa.nc/outtype=float sst[x=@ave,y=@ave]-sst[x=@ave,y=@ave,t=@ave]
sp ncdump aa.nc
netcdf aa {
dimensions:
- TIME10 = UNLIMITED ; // (3 currently)
+ TIME20 = UNLIMITED ; // (3 currently)
variables:
- double TIME10(TIME10) ;
- TIME10:units = "hour since 0000-01-01 00:00:00" ;
- TIME10:time_origin = "01-JAN-0000 00:00:00" ;
- TIME10:modulo = " " ;
- TIME10:axis = "T" ;
- TIME10:standard_name = "time" ;
- float E410(TIME10) ;
+ double TIME20(TIME20) ;
+ TIME20:units = "hour since 0000-01-01 00:00:00" ;
+ TIME20:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME20:modulo = " " ;
+ TIME20:axis = "T" ;
+ TIME20:standard_name = "time" ;
+ float E410(TIME20) ;
E410:missing_value = -1.e+34f ;
E410:_FillValue = -1.e+34f ;
E410:long_name = "SST[X=@AVE,Y=@AVE]-SST[X=@AVE,Y=@AVE,T=@AVE]" ;
@@ -74166,11 +73786,11 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
- TIME10 = 366, 1096.485, 1826.97 ;
+ TIME20 = 366, 1096.485, 1826.97 ;
E410 = -0.09943693, -0.04157686, 0.1414802 ;
}
@@ -74260,7 +73880,7 @@ GO err684_FillValue_xml
use fill_value_int.nc
sh dat/var/xml
<datasets>
-<dataset name="./fill_value_int.nc" default="true">
+<dataset name="./data/fill_value_int.nc" default="true">
<title>INT variable with _FillValue -2147483647</title>
<var name="A_dd">
<attribute name="units" type="char">
@@ -74610,7 +74230,7 @@ GO bn_dsg_e_x
use dsg.nc
sh dat
currently SET data sets:
- 1> ./dsg.nc (default)
+ 1> ./data/dsg.nc (default)
name title I J K L
ROWSIZE number of obs for this profile ... ... ... ... 1:3 ...
PROFILE profile ID: Cruise and Station ... ... ... ... 1:3 ...
@@ -74623,7 +74243,7 @@ sh dat
SAL sal 1:34 ... ... ...
sh att profile
- attributes for dataset: ./dsg.nc
+ attributes for dataset: ./data/dsg.nc
profile.missing_value = -1.E+34
profile._FillValue = -1.E+34
profile.long_name = profile ID: Cruise and Station
@@ -74655,7 +74275,7 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
sh dat 2
currently SET data sets:
- 2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ 2> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
name title I J K L
PROF Prof ... ... ... ... 1:21 ...
TIME Time ... ... ... ... 1:21 ...
@@ -74667,7 +74287,7 @@ sh dat 2
PCO2 PCO2 1:373 ... ... ...
sh att (profile)
- attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ attributes for dataset: ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
(profile)._FillValue = -1.E+34
(profile).actual_range = 70, 90
(profile).cf_role = profile_id
@@ -74745,8 +74365,8 @@ variables:
DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
// global attributes:
- :history = "Wed Sep 6 13:00:05 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
- "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "Wed Nov 29 17:34:22 2017: ncks -h -A -h z1.nc append_to_this.nc\n",
+ "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
:NCO = "4.4.6" ;
}
@@ -74782,7 +74402,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -74813,7 +74433,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -74827,7 +74447,7 @@ data:
use gappy_bounds.nc
sh dat
currently SET data sets:
- 1> ./gappy_bounds.nc (default)
+ 1> ./data/gappy_bounds.nc (default)
name title I J K L
A SST[X=150:180 at AVE,Y=-10:0 at AVE] ... ... ... 1:6
@@ -74835,7 +74455,7 @@ sh dat
! See the bounds attribute on the t axis
sh dat/att
currently SET data sets:
- 1> ./gappy_bounds.nc (default)
+ 1> ./data/gappy_bounds.nc (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -74876,7 +74496,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -74904,7 +74524,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -74925,7 +74545,7 @@ GO bn_write_integer_att
use write_int_att.nc
sh att mhchla
- attributes for dataset: ./write_int_att.nc
+ attributes for dataset: ./data/write_int_att.nc
MHCHLA.missing_value = -9999999
MHCHLA._FillValue = -9999999
MHCHLA.actual_range = 0.00049, 91.76669
@@ -76366,7 +75986,7 @@ GO err685_lowercaseAxis
use lowercaseTime.nc
sh dat
currently SET data sets:
- 1> ./lowercaseTime.nc (default)
+ 1> ./data/lowercaseTime.nc (default)
name title I J K L
AA ... ... ... 1:15
BB ... ... ... 1:8
@@ -76395,7 +76015,7 @@ sh grid aa
normal X
normal Y
normal Z
- TIME17 T 15 r 1 15 full
+ TIME28 T 15 r 1 15 full
set axis/t0=1-jan-2001/units=days time
! showed no output
@@ -76441,16 +76061,16 @@ GO err685_use_no_extension
! but .des was not being tried.
! The directory contains files with all three extensions
-sp ls duplicate.*
-duplicate.cdf
-duplicate.des
-duplicate.nc
+sp ls data/duplicate.*
+data/duplicate.cdf
+data/duplicate.des
+data/duplicate.nc
! The one that's used is .nc
use duplicate
sh dat
currently SET data sets:
- 1> ./duplicate.nc (default)
+ 1> ./data/duplicate.nc (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:1 1:10 ... 1:3
@@ -76644,7 +76264,7 @@ variables:
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -76667,7 +76287,7 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -76898,7 +76518,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -76928,7 +76548,7 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -76949,7 +76569,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -76970,7 +76590,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -76992,7 +76612,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -77038,14 +76658,14 @@ GO err686_redef_ascii_att
columns/delim=" " EZ.DAT
sh att v1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
V1.long_name = V1
V1.missing_value = -1.E+34
! A new attribuge causes no problems
define att/output v1.comment = "First var from EZ.DAT"
sh att v1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
V1.long_name = V1
V1.missing_value = -1.E+34
V1.comment = First var from EZ.DAT
@@ -77060,7 +76680,7 @@ define att/output v1.units="km"
define att/output v1.units="meters"
sh att v1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
V1.long_name = vee one
V1.missing_value = -1.E+34
V1.comment = First var from EZ.DAT
@@ -77119,7 +76739,7 @@ set var/name=b a
set var/name=temp salt
show dat
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -77134,7 +76754,7 @@ show dat
set var/name=salinity salt
show dat
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALINITY (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -77154,7 +76774,7 @@ set var/name=psi myvar
set var/name=diff myvar
show dat
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALINITY (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -77185,7 +76805,7 @@ GO bn_bad_axis_bounds
use badbounds.nc
show data
currently SET data sets:
- 1> ./badbounds.nc (default)
+ 1> ./data/badbounds.nc (default)
name title I J K L
MONTH_IRREG_BNDS
1:2 ... ... 1:12
@@ -77213,7 +76833,7 @@ go bn_shortgo
! short script for bn_enter_exit_GO
plot/i=1:15/color=red/thick i
-! Exit_GO
+! Exit_GO
! Inside an IF
let a = 1
@@ -77234,8 +76854,8 @@ LIST/nohead/norow $1[t=-5:9@$2] ! neg/pos t endpoints
!-> LIST/nohead/norow tvar[t=-5:9 at ave]
2.000
-! Exit_GO
-! Exit_GO
+! Exit_GO
+! Exit_GO
! Inside a REPEAT
define symbol ok = 0
@@ -77251,7 +76871,7 @@ repeat/L=1:3 (if ($ok) then go bn_shortgo; def sym ok = `($ok)+1`)
! short script for bn_enter_exit_GO
plot/i=1:15/color=red/thick i
-! Exit_GO
+! Exit_GO
!-> def sym ok = 2
!-> REPEAT: L=3
!-> if 2 then go bn_shortgo
@@ -77260,7 +76880,7 @@ plot/i=1:15/color=red/thick i
! short script for bn_enter_exit_GO
plot/i=1:15/color=red/thick i
-! Exit_GO
+! Exit_GO
!-> def sym ok = 3
cancel redirect
@@ -77425,7 +77045,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -77442,7 +77062,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -77459,7 +77079,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -77777,7 +77397,7 @@ set mode ignore
! caused Ferret to mis-read the time axis
use badbounds_even.nc
list var, tbox[gt=var]
- DATA SET: ./badbounds_even.nc
+ DATA SET: ./data/badbounds_even.nc
TIME: 03-JAN-2000 12:00 to 02-FEB-2000 12:00
Column 1: VAR is T (My Variable)
Column 2: TBOX is TBOX (axis TAX_BB_PTSPAC)
@@ -77794,7 +77414,7 @@ list var, tbox[gt=var]
! caused Ferret to mis-read the time axis
use badbounds_non_enclose
list var, tbox[gt=var]
- DATA SET: ./badbounds_non_enclose.nc
+ DATA SET: ./data/badbounds_non_enclose.nc
TIME: 03-JAN-2000 12:00 to 02-FEB-2000 12:00
Column 1: VAR is T (My Variable)
Column 2: TBOX is TBOX (axis TAX_BB_EVEN_NOENC)
@@ -77810,7 +77430,7 @@ list var, tbox[gt=var]
! spaced, no point-spacing attribute.
use badbounds_uneven
list var, tbox[gt=var]
- DATA SET: ./badbounds_uneven.nc
+ DATA SET: ./data/badbounds_uneven.nc
TIME: 02-JAN-2000 12:00 to 02-FEB-2000 12:00
Column 1: VAR is T (My Variable)
Column 2: TBOX is TBOX (axis TAX_BB_IRR)
@@ -77920,7 +77540,7 @@ use maize_1.nc, maize_2.nc, maize_3.nc
! Note the _FillValue, flag
sho att maize_yield
- attributes for dataset: ./maize_3.nc
+ attributes for dataset: ./data/maize_3.nc
MAIZE_YIELD._FillValue = 9.96921E+36
MAIZE_YIELD.long_name = Maize harvest
MAIZE_YIELD.units = kgC.m-2.yr-1
@@ -78116,7 +77736,7 @@ let/d=`sst,r=dsetnum` a = 1
!-> DEFINE VARIABLE/d=1 a = 1
sh dat
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
------------------------------
@@ -78256,7 +77876,7 @@ sh grid temp
PSXT LONGITUDE 160mr 130.5E 70.5W full
PSYT1 LATITUDE 100 i 28.836S 48.568N full
PSZT2 DEPTH (m) 27 i- 5 3824 full
- TIME17 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00 full
+ TIME111 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00 full
let a = temp[x=@ave,y=@ave,L=1]
! The attribute we ask not to write is not written for this variable
@@ -78272,7 +77892,7 @@ sp ncdump -h a.nc | grep -i "`a,r=zaxis`"
PSZT21_10:standard_name = "depth" ;
PSZT21_10:bounds = "PSZT21_10_bnds" ;
double PSZT21_10_bnds(PSZT21_10, bnds) ;
- double A(TIME17, PSZT21_10) ;
+ double A(TIME111, PSZT21_10) ;
! But it was being written for this one. It should not.
let b = temp[x=@ave,y=@ave,L=1,d=1]
@@ -78286,7 +77906,7 @@ sp ncdump -h a.nc | grep -i "`b,r=zaxis`"
PSZT21_10:standard_name = "depth" ;
PSZT21_10:bounds = "PSZT21_10_bnds" ;
double PSZT21_10_bnds(PSZT21_10, bnds) ;
- double B(TIME17, PSZT21_10) ;
+ double B(TIME111, PSZT21_10) ;
! A variable that depends on more than one dataset.
use coads_climatology
@@ -78656,7 +78276,7 @@ GO bn_append_dsg
! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
sp rm test_save_dsg.nc
-sp cp test_save_dsg_in.nc test_save_dsg.nc
+sp cp data/test_save_dsg_in.nc test_save_dsg.nc
use test_save_dsg.nc
@@ -78717,7 +78337,7 @@ variables:
:geospatial_lat_max = 29.07 ;
:time_coverage_start = "2006-06-10T23:48:00Z" ;
:time_converage_end = "2006-06-11T00:12:00Z" ;
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
}
set mode/last upcase
@@ -78733,7 +78353,7 @@ GO bn_global_atts
cancel mode upcase
-sp cp global.nc global_copy.nc
+sp cp data/global.nc global_copy.nc
use global_copy.nc
! Lon in 0-360
let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
@@ -78741,7 +78361,7 @@ define attribute/output lon360.ioos_category = "Location"
define attribute/output lon360.standard_name = "Longitude"
define attribute/output lon360.history = "added to test_save_dsg.nc"
save/quiet/append/file=global_copy.nc lon360
-sp ncdump -h global.nc
+sp ncdump -h data/global.nc
netcdf global {
dimensions:
trajectory = 1 ;
@@ -78815,7 +78435,7 @@ variables:
lon360:history = "added to test_save_dsg.nc" ;
// global attributes:
- :history = "CruiseDsgNcFile 1.0FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "CruiseDsgNcFile 1.0FERRET V7.23 (beta/debug) 29-Nov-17" ;
:featureType = "Trajectory" ;
:Conventions = "Some other conventionsCF-1.6" ;
:geospatial_lon_min = -92.77 ;
@@ -78829,7 +78449,7 @@ variables:
! This dataset has global attributes history and Conventions that include
! a Ferret version and CF version that Ferret will replace.
-sp ncgen -o anew_global.nc anew_global.cdl
+sp ncgen -o anew_global.nc data/anew_global.cdl
use anew_global.nc
sh att .
attributes for dataset: ./anew_global.nc
@@ -78842,7 +78462,7 @@ can dat/all; use anew_global.nc
sh att .
attributes for dataset: ./anew_global.nc
..history = Subset of etopo20,
- FERRET V7.21 (beta/debug) 6-Sep-17
+ FERRET V7.23 (beta/debug) 29-Nov-17
..Conventions = Existing conventions note, , CF-1.6
@@ -78860,7 +78480,7 @@ GO bn_conventions_history
! When appending to the Conventions and history
! attribute, add the new stuff with a comma and newline.
-sp cp conventions_history_in.nc conventions_history.nc
+sp cp data/conventions_history_in.nc conventions_history.nc
use conventions_history
!
! The existing global attributes
@@ -78877,7 +78497,7 @@ can dat/all; use conventions_history
! The new attibutes
sh att .
attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V7.21 (beta/debug) 6-Sep-17
+ ..history = The history of the fileFERRET V7.23 (beta/debug) 29-Nov-17
..Conventions = Conventions for variables named V2CF-1.6
GO bn_reset bn_center_key_labels
@@ -79112,7 +78732,7 @@ sp cat a.txt
COADSX LONGITUDE 180mr 21E 19E(379) full
COADSY LATITUDE 90 r 89S 89N full
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
! show var/outfile
@@ -79138,7 +78758,7 @@ sp cat a.txt
MYVAR = SST*2
TWO = 2
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -79152,7 +78772,7 @@ SAY ---------------- Just show data, two show data/clobber commands in a row
---------------- Just show data, two show data/clobber commands in a row
sp cat a.txt
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -79167,7 +78787,7 @@ sp cat a.txt
COADSX LONGITUDE 180mr 21E 19E(379) full
COADSY LATITUDE 90 r 89S 89N full
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
use coads_climatology
use levitus_climatology
@@ -79178,7 +78798,7 @@ SAY ---------------- Just dataset 1
---------------- Just dataset 1
sp cat a.txt
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -79189,12 +78809,12 @@ SAY ---------------- appending datset 2 by name
---------------- appending datset 2 by name
sp cat a.txt
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
currently SET data sets:
- 2> ./levitus_climatology.cdf (default)
+ 2> ./data/levitus_climatology.cdf (default)
name title I J K L
TEMP TEMPERATURE 1:160 1:90 1:1 ...
@@ -80353,11 +79973,11 @@ say `a[x=@min]`
strip --> A[X=25E:25E(385)@MIN,D=2]
strip modulo-void-filling A on X axis: 0 83 dset: 2
strip moduloing A on X axis: 0 82 dset: 2
- reading A M:246 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999
+ reading A M:241 dset: 2 I: 1 82 J: -999 -999 K: -999 -999 L: -999 -999
doing moduloing A on X axis: 1 82 dset: 2
doing modulo-void-filling A on X axis: 0 82 dset: 2
doing --> A[X=25E:25E(385)@MIN,D=2]
- -DELETE A M:238 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE A M:224 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
!-> MESSAGE/CONTINUE 25.27740573883057
25.27740573883057
@@ -80370,8 +79990,8 @@ say `b`
allocate dynamic grid GSI1 COADSX51_1NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999
eval B C: 6 dset: 2 I: 0 83 J: -999 -999 K: -999 -999 L: -999 -999
- found A M:241 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
- -DELETE B M:240 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ found A M:229 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE B M:228 dset: 2 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
!-> MESSAGE/CONTINUE 25.27740573883057
25.27740573883057
@@ -80668,14 +80288,14 @@ list sst.dimnames
SUBSET : 3 points (X)
1 / 1:"COADSX"
2 / 2:"COADSY"
- 3 / 3:"TIME10"
+ 3 / 3:"TIME20"
list dncase(sst.dimnames)
VARIABLE : DNCASE(SST.DIMNAMES)
FILENAME : coads_climatology.cdf
SUBSET : 3 points (X)
1 / 1:"coadsx"
2 / 2:"coadsy"
- 3 / 3:"time10"
+ 3 / 3:"time20"
list strlen( sst.dimnames)
VARIABLE : STRLEN( SST.DIMNAMES)
FILENAME : coads_climatology.cdf
@@ -80703,7 +80323,7 @@ list ysequence(dncase(sst.dimnames))
SUBSET : 3 points (Y)
1 / 1:"coadsx"
2 / 2:"coadsy"
- 3 / 3:"time10"
+ 3 / 3:"time20"
GO bn_reset
cancel mode verify
@@ -81085,7 +80705,7 @@ def grid/x=x4ax/t=t12 txgrid
FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L
TM Tm 1:4 ... ... 1:12
@@ -81115,7 +80735,7 @@ def grid/x=x4ax/t=t12 txgrid
FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L
TM Tm 1:4 ... ... 1:12
@@ -81147,7 +80767,7 @@ def grid/x=x4ax/f=f12 fxgrid
FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L M N
TM Tm 1:4 ... ... ... ... 1:12
@@ -81180,7 +80800,7 @@ def grid/y=y2ax/z=z4ax/t=t6ax grid3d
FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L
TM Tm ... 1:2 1:4 1:6
@@ -81232,7 +80852,7 @@ def grid/y=y2ax/z=z4ax/t=t6ax grid3d
FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L
TM Tm ... 1:2 1:4 1:6
@@ -81284,7 +80904,7 @@ def grid/y=y2ax/z=z4ax/e=e6ax grid3d
FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L M N
TM Tm ... 1:2 1:4 ... 1:6 ...
@@ -81334,7 +80954,7 @@ def grid/y=y2ax/z=z4ax/e=e6ax grid3d
FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L M N
TM Tm ... 1:2 1:4 ... 1:6 ...
@@ -81429,7 +81049,7 @@ GO bn_save_justdim
use twodtime.nc
sh dat
currently SET data sets:
- 1> ./twodtime.nc (default)
+ 1> ./data/twodtime.nc (default)
name title I J K L M N
TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
@@ -81462,12 +81082,12 @@ GO bn_time2d
use twodtime.nc
sh dat
currently SET data sets:
- 1> ./twodtime.nc (default)
+ 1> ./data/twodtime.nc (default)
name title I J K L M N
TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
sh att time
- attributes for dataset: ./twodtime.nc
+ attributes for dataset: ./data/twodtime.nc
time.units = calendar Month since 2014-11-01T00:00:00Z
time.long_name = GRIB forecast or observation time
time.calendar = proleptic_gregorian
@@ -81507,15 +81127,15 @@ let/title=March sst3 = sst[l=3]
plot/x=300/y=20:65 sst1,sst2,sst3
sh sym lab7,lab8,lab9
LAB7 = "SST1[T=16-JAN 06:00]"
-LAB9 = "SST3[T=17-MAR 02:58]"
LAB8 = "SST2[T=15-FEB 16:29]"
+LAB9 = "SST3[T=17-MAR 02:58]"
! Draw a plot with legend labeled with the variable titles.
plot/x=300/y=20:65/key=title sst1,sst2,sst3
sh sym lab7,lab8,lab9
LAB7 = "January"
-LAB9 = "March"
LAB8 = "February"
+LAB9 = "March"
GO bn_reset bn_DQ
cancel mode verify
@@ -81685,41 +81305,41 @@ list a
2 / 2:""foobar""
! ======
-list {SPAWN:"ls weird_name1.cdf","foobar"}
- VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+list {SPAWN:"ls data/weird_name1.cdf","foobar"}
+ VARIABLE : {SPAWN:"ls data/weird_name1.cdf","foobar"}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
-let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:"ls data/weird_name1.cdf","foobar"}
list a
- VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ VARIABLE : {SPAWN:"ls data/weird_name1.cdf","foobar"}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
-list {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
- VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
-let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
list a
- VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
-list {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
- VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+ VARIABLE : {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
-let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
list a
- VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
! ======
! in repl_exprns:
@@ -81905,33 +81525,33 @@ SHOW ATTRIBUTE/ALL foobar
foobar.some_text = "quoted attribute"
! ======
-SPAWN "ls weird_name1.*"
-weird_name1.cdf
-SPAWN _DQ_ls weird_name1.*_DQ_
-weird_name1.cdf
+SPAWN "ls data/weird_name1.*"
+data/weird_name1.cdf
+SPAWN _DQ_ls data/weird_name1.*_DQ_
+data/weird_name1.cdf
! ======
-LET a = {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+LET a = {"first.nc", SPAWN: "ls data/weird_name1.*" ,"last.nc"}
LIST a
- VARIABLE : {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+ VARIABLE : {"first.nc", SPAWN: "ls data/weird_name1.*" ,"last.nc"}
SUBSET : 3 points (X)
- 1 / 1:"first.nc"
- 2 / 2:"weird_name1.cdf"
- 3 / 3:"last.nc"
-LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ 1 / 1:"first.nc"
+ 2 / 2:"data/weird_name1.cdf"
+ 3 / 3:"last.nc"
+LET a = {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
LIST a
- VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ VARIABLE : {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
SUBSET : 3 points (X)
- 1 / 1:"first.nc"
- 2 / 2:"weird_name1.cdf"
- 3 / 3:"last.nc"
+ 1 / 1:"first.nc"
+ 2 / 2:"data/weird_name1.cdf"
+ 3 / 3:"last.nc"
! =========================
! !!!!!! TEMPORARY LINE
! !!!!!! see bug report err693_xeq_show.jnl
show data ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
currently SET data sets:
- 1> ./weird_name1.cdf (default)
+ 1> ./data/weird_name1.cdf (default)
name title I J K L
v1 lower case v1 1:20 ... ... ...
v2-and-minus
@@ -82094,7 +81714,7 @@ GO err694_longname_showdat
!
! Make a file whose name starts the same as file with long name.
sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
-sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
@@ -82102,7 +81722,7 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
! this previously returned an unknown dataset error
sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
currently SET data sets:
- 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ 1> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
name title I J K L
PROF Prof ... ... ... ... 1:21 ...
TIME Time ... ... ... ... 1:21 ...
@@ -82120,7 +81740,7 @@ sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
use WestCoastCarbon_9d9c_f562_77b5_5
sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
currently SET data sets:
- 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ 1> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
name title I J K L
PROF Prof ... ... ... ... 1:21 ...
TIME Time ... ... ... ... 1:21 ...
@@ -82500,7 +82120,7 @@ show att sst
SST.long_name = SST_IN
SST.units = Deg C
SST.missing_value = -1.E+34
- SST.coordinates = RUN TIME16 TF_TIMES TIME16 LAT LON1
+ SST.coordinates = RUN TIME27 TF_TIMES TIME27 LAT LON1
SST._ftime2d = TF_TIMES
SST._cal_t_ax = TF_CAL_T
SST._lag_f_ax = TF_LAG_F
@@ -82970,20 +82590,20 @@ SET VAR/layerz=depth temp[d=levitus_3d_subset]
SHOW VAR/LAYERZ/d=levitus_3d_subset temp
DEPTH holds the designated vertical (layerz) coordinates of TEMP
SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
- attributes for dataset: ./levitus_3d_subset.nc
+ attributes for dataset: ./data/levitus_3d_subset.nc
TEMP.__LayerzRef_ = DEPTH
! modify the layerz link
SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
SHOW VAR/LAYERZ/d=levitus_3d_subset temp
NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
- attributes for dataset: ./levitus_3d_subset.nc
+ attributes for dataset: ./data/levitus_3d_subset.nc
TEMP.__LayerzRef_ = NEWDEPTH
cancel var/layerz temp[d=levitus_3d_subset]
SHOW VAR/LAYERZ/d=levitus_3d_subset temp
No variable holds vertical (layerz) coordinates of TEMP
SHOW ATT temp[d=levitus_3d_subset] ! __LayerzRef_ has been deleted
- attributes for dataset: ./levitus_3d_subset.nc
+ attributes for dataset: ./data/levitus_3d_subset.nc
TEMP.missing_value = -1.E+10
TEMP._FillValue = -1.E+10
TEMP.long_name = TEMPERATURE
@@ -83064,27 +82684,27 @@ LIST/PREC=7 tempz
getgrid DEPTH C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GAO1 XAXLEVITR1YAXLEVITR4ZAXLEVITR NORMAL
getgrid ZPTS C: 9 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G096) NORMAL NORMAL (AX113) NORMAL
- dealloc dynamic grid (G096) NORMAL NORMAL (AX113) NORMAL
- allocate dynamic grid (G096) NORMAL NORMAL (AX113) NORMAL
- allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX113) NORMAL
- dealloc dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX113) NORMAL
- allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX113) NORMAL
- allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX113) NORMAL
+ allocate dynamic grid (G096) NORMAL NORMAL (AX114) NORMAL
+ dealloc dynamic grid (G096) NORMAL NORMAL (AX114) NORMAL
+ allocate dynamic grid (G096) NORMAL NORMAL (AX114) NORMAL
+ allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX114) NORMAL
+ dealloc dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX114) NORMAL
+ allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX114) NORMAL
+ allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX114) NORMAL
eval EX#1 C: 4 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999
eval TEMPZ C: 6 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999
- allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX113) NORMAL
+ allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX114) NORMAL
strip regrid on Z: TEMP --> (G088) @LIN
eval DEPTH C: 9 dset: 1 I: 1 2 J: 1 2 K: 1 20 L: -999 -999
- pseudo Z M:246 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999
- constan cnst M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
- found TEMP M:248 dset: 1 I: 1 2 J: 1 2 K: 1 11 L: -999 -999
- -DELETE cnst M:244 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
- -DELETE tpry M:243 dset: 0 I: 1 2 J: 1 2 K: 1 1 L: -999 -999 M: -999 -999 N: -999 -999
- -DELETE Z M:246 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999
- reading TEMP M:246 dset: 1 I: 1 2 J: 1 2 K: 7 12 L: -999 -999
- auxgrd TEMP M:243 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999
- dealloc dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX113) NORMAL
+ pseudo Z M:241 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999
+ constan cnst M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ found TEMP M:246 dset: 1 I: 1 2 J: 1 2 K: 1 11 L: -999 -999
+ -DELETE cnst M:235 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE tpry M:232 dset: 0 I: 1 2 J: 1 2 K: 1 1 L: -999 -999 M: -999 -999 N: -999 -999
+ -DELETE Z M:241 dset: 1 I: -999 -999 J: -999 -999 K: 1 20 L: -999 -999
+ reading TEMP M:241 dset: 1 I: 1 2 J: 1 2 K: 7 12 L: -999 -999
+ auxgrd TEMP M:232 dset: 1 I: 1 2 J: 1 2 K: 1 5 L: -999 -999
+ dealloc dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX114) NORMAL
VARIABLE : TEMP[GZ(DEPTH)=ZPTS]
FILENAME : levitus_3d_subset.nc
SUBSET : 2 by 2 by 5 points (LONGITUDE-LATITUDE-Z)
@@ -83106,14 +82726,14 @@ LIST/PREC=7 tempz
48.5S / 2: 5.835500 6.045001
49.5S / 1: 4.879000 5.102500
SHOW GRID tempz
- dealloc dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX113) NORMAL
+ dealloc dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX114) NORMAL
getgrid EX#1 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX113) NORMAL
+ allocate dynamic grid (G088) XAXLEVITR1YAXLEVITR4(AX114) NORMAL
GRID (G088)
name axis # pts start end subset
XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E full
YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S full
- (AX113) Z 5 r 100 500 full
+ (AX114) Z 5 r 100 500 full
normal T
!LET tempz = temp[gz=zpts,layerz] ! same regrid using semi-automated notation
!LIST/PREC=7 tempz
@@ -83220,7 +82840,7 @@ SHOW GRID/z tempz_1pt
name axis # pts start end subset
XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E full
YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S full
- (AX125) Z 1 r 6 6 1 pt
+ (AX124) Z 1 r 6 6 1 pt
normal T
K Z ZBOX ZBOXLO
@@ -83376,7 +82996,7 @@ stat/z=100 temp6d-tempz6d
T: 0.5 to 2.5
E: 0.5 to 2.5
F: 0.5 to 2.5
- DATA SET: ./levitus_3d_subset.nc
+ DATA SET: ./data/levitus_3d_subset.nc
Total # of data points: 32 (2*2*1*2*2*2)
# flagged as bad data: 0
@@ -83393,7 +83013,7 @@ stat/z=400 temp6d-tempz6d
T: 0.5 to 2.5
E: 0.5 to 2.5
F: 0.5 to 2.5
- DATA SET: ./levitus_3d_subset.nc
+ DATA SET: ./data/levitus_3d_subset.nc
Total # of data points: 32 (2*2*1*2*2*2)
# flagged as bad data: 0
@@ -83549,7 +83169,7 @@ LIST/PREC=7 tempz6d_tDep
48.5S / 2: 6.347000 6.533000
49.5S / 1: 5.341800 5.563000
LIST/PREC=7/k=7:8 temp6d_const, depth6d ! reference values at Z=100, 200, 300 for visual comparison
- DATA SET: ./levitus_3d_subset.nc
+ DATA SET: ./data/levitus_3d_subset.nc
LONGITUDE: 120E to 122E
LATITUDE: 50S to 48S
DEPTH (m): 87.5 to 175
@@ -86848,7 +86468,7 @@ LET var1 = FLOATSTR(sst-10,"(i5.5)")
LET var2 = FLOATSTR(sst-10,"(i05)")
LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 91S to 11S
LONGITUDE: 165W
TIME: 16-JAN 06:00
@@ -86904,7 +86524,7 @@ list floatstr(a, "(f04.1)")
LET var1 = FLOATSTR(sst-20,"(f5.1)")
LET var2 = FLOATSTR(sst-20,"(f05.1)")
LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 91S to 11S
LONGITUDE: 165W
TIME: 16-JAN 06:00
@@ -86940,7 +86560,7 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
LET var1 = FLOATSTR(sst-20,"(f0.0)")
LET var2 = FLOATSTR(sst-20,"(I0)")
LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 91S to 11S
LONGITUDE: 165W
TIME: 16-JAN 06:00
@@ -86999,7 +86619,7 @@ sh grid/l=1:4444 temp
LON1 LONGITUDE 1 r 97.45W 97.45W full
LAT LATITUDE 1 r 36.65N 36.65N full
PFULL1_1 Z (hpa) 1 r- 3.3236 3.3236 full
- TIME17 TIME 4 i 19-JUN-1997 00:00 19-JUN-1997 01:30 full
+ TIME28 TIME 4 i 19-JUN-1997 00:00 19-JUN-1997 01:30 full
L T TBOX TBOXLO TSTEP (days)
1> 19-JUN-1997 00:00:00 0.0208333 18-JUN-1997 23:30:00 0.02083333
@@ -87021,13 +86641,13 @@ USE coads_climatology
SHOW DATA 1
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
SHOW DATA coads_climatology
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -87594,7 +87214,7 @@ GO err696_ft_calendars
use ft_cal_one.nc
sh dat
currently SET data sets:
- 1> ./ft_cal_one.nc (default)
+ 1> ./data/ft_cal_one.nc (default)
name title I J K L M N
TIMEVAR GRIB forecast or observation ti ... ... ... 1:2 ... 1:3
@@ -87678,20 +87298,20 @@ GO err696_time_overlay
def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=noleap tax_nlp
def ax/t="1-jan-0001":"1-jan-0009":1/unit="year"/t0="1-jan-0001"/cal=julian tax_jul
sp date
-Wed Sep 6 13:00:38 PDT 2017
+Wed Nov 29 17:35:00 PST 2017
set view upper
plot t[gt=tax_nlp]
plot/ov/vs/line/dash {1,1}, 1e6*{-1,1}
sp date
-Wed Sep 6 13:00:38 PDT 2017
+Wed Nov 29 17:35:00 PST 2017
sp date
-Wed Sep 6 13:00:38 PDT 2017
+Wed Nov 29 17:35:00 PST 2017
set view lower
plot t[gt=tax_jul]
plot/ov/vs/line/dash {2,2}, 1e6*{-1,1}
sp date
-Wed Sep 6 13:00:38 PDT 2017
+Wed Nov 29 17:35:00 PST 2017
GO bn_reset
cancel mode verify
@@ -87748,7 +87368,7 @@ variables:
var:long_name = "0*TT + X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -87836,10 +87456,10 @@ define data/agg/E fourfiles = ens1, ens3, ens2, ens4
show data/brief
currently SET data sets:
- 1> ./ens1.nc
- 2> ./ens2.nc
- 3> ./ens3.nc
- 4> ./ens4.nc
+ 1> ./data/ens1.nc
+ 2> ./data/ens2.nc
+ 3> ./data/ens3.nc
+ 4> ./data/ens4.nc
5> fourfiles (default) Ensemble aggregation
list/i=3 sst[T=@ave]
@@ -87861,11 +87481,11 @@ show mem/all
Peak demand: 540 words
Current cache: 504 words
all data in memory:
- SST[D=fourfiles] YE mr:242 size:72
+ SST[D=fourfiles] YE mr:230 size:72
3/106W 1/12N ... / ... ... /01-JAN 00:45 1/0.5 ... / ...
3/104W 9/30N ... / ... ... /31-DEC 06:34 4/4.5 ... / ...
AVE
- SST[D=fourfiles] YTE mr:194 size:432
+ SST[D=fourfiles] YTE mr:175 size:432
3/106W 1/12N ... / ... 1/01-JAN 00:45 1/0.5 ... / ...
3/104W 9/30N ... / ... 12/31-DEC 06:34 4/4.5 ... / ...
@@ -87991,7 +87611,7 @@ IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS
let//d=coads_sst myvar = 1
sh dat
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -88613,7 +88233,7 @@ go err696_write_no_dim
use nodim
sh dat
currently SET data sets:
- 1> ./nodim.nc (default)
+ 1> ./data/nodim.nc (default)
name title I J K L
EXPOCODE expocode ... ... ... ... 1:1 ...
NUM_OBS Number of observations ... ... ... ... 1:1 ...
@@ -88650,7 +88270,7 @@ variables:
TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -89632,7 +89252,7 @@ sp ncdump a.nc | grep -i coadsx
COADSX:new2 = 1.f, 3.f, 6.f ;
COADSX:axis = "X" ;
COADSX:standard_name = "longitude" ;
- float SST(TIME10, COADSY, COADSX) ;
+ float SST(TIME20, COADSY, COADSX) ;
COADSX = 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53,
can dat/all
@@ -89651,7 +89271,7 @@ define att/output/type=double sst.dbint = 123.45678901
save/clobber/file=a.nc sst
sp ncdump a.nc | grep -i sst
- float SST(TIME10, COADSY, COADSX) ;
+ float SST(TIME20, COADSY, COADSX) ;
SST:missing_value = -1.e+34f ;
SST:_FillValue = -1.e+34f ;
SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -89751,7 +89371,7 @@ let/d=1 w2 = w[d=2]
let/d=1 salt2 = salt[d=2]
sh dat 1
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
------------------------------
@@ -90047,7 +89667,7 @@ show data/brief
2> myagg1
3> myagg2
4> myAgg2
- 5> ./bn_aggregate_t.jnl (default)
+ 5> ./v6jnls/bn_aggregate_t.jnl (default)
! define a long aggregation
define data/agg/t myagg8 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc, tmp/tagg_reg_4.nc,tmp/tagg_reg_5.nc, tmp/tagg_reg_6.nc,tmp/tagg_reg_7.nc, tmp/tagg_reg_8.nc
@@ -90115,7 +89735,7 @@ show data/full ! all 4 datasets
01-JAN-1980 00:00 -> 10-JAN-1980 00:00 tmp/tagg_reg_1.nc
11-JAN-1980 00:00 -> 20-JAN-1980 00:00 tmp/tagg_reg_2.nc
- 5> ./bn_aggregate_t.jnl
+ 5> ./v6jnls/bn_aggregate_t.jnl
T-aggregation of 2 netCDF files
name title I J K L
@@ -90833,7 +90453,7 @@ show grid/T air
LON1 LONGITUDE 180mr 1E 1W full
LAT LATITUDE 90 r 89S 89N full
normal Z
- TIME17 TIME 36 i 16-JAN-2012 12:00 16-DEC-2014 12:00 full
+ TIME28 TIME 36 i 16-JAN-2012 12:00 16-DEC-2014 12:00 full
L T TBOX TBOXLO TSTEP (days)
1> 16-JAN-2012 12:00:00 31 01-JAN-2012 00:00:00 77446.5
@@ -90925,10 +90545,10 @@ save/clobber/file="tmp/test3.nc" i[i=1:3] + 3
! generate absolute path
let dir = SPAWN("pwd")
define sym use_abs_path = `DIR+"/tmp/test1.nc"`
- !-> define sym use_abs_path = /home/users/ansley/build/trunk/FERRET/bench/tmp/test1.nc
+ !-> define sym use_abs_path = /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc
say ($use_abs_path)
- !-> MESSAGE/CONTINUE /home/users/ansley/build/trunk/FERRET/bench/tmp/test1.nc
-/home/users/ansley/build/trunk/FERRET/bench/tmp/test1.nc
+ !-> MESSAGE/CONTINUE /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc
+/home/users/ansley/build/working/FERRET/bench/tmp/test1.nc
use tmp/test1.nc
show data/brief
@@ -90955,17 +90575,17 @@ show data/brief
canc data/all
use "($use_abs_path)"
- !-> SET DAT/FORM=CDF "/home/users/ansley/build/trunk/FERRET/bench/tmp/test1.nc"
+ !-> SET DAT/FORM=CDF "/home/users/ansley/build/working/FERRET/bench/tmp/test1.nc"
show data/brief
currently SET data sets:
- 1> /home/users/ansley/build/trunk/FERRET/bench/tmp/test1.nc (default)
+ 1> /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc (default)
canc data/all
use ($use_abs_path)
- !-> SET DAT/FORM=CDF /home/users/ansley/build/trunk/FERRET/bench/tmp/test1.nc
+ !-> SET DAT/FORM=CDF /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc
show data/brief
currently SET data sets:
- 1> /home/users/ansley/build/trunk/FERRET/bench/tmp/test1.nc (default)
+ 1> /home/users/ansley/build/working/FERRET/bench/tmp/test1.nc (default)
canc data/all
use tmp/test1.nc,tmp/test2.nc,tmp/test3.nc
@@ -91031,10 +90651,10 @@ spawn echo 'say $1"1-n/a" $2"2-n/a" $3"3-n/a" $4"4-n/a" $5"5-n/a" $6"6-n/a" $
! generate absolute path
let dir = SPAWN("pwd")
define sym abs_path = `DIR+"/tmp/testMe.jnl"`
- !-> define sym abs_path = /home/users/ansley/build/trunk/FERRET/bench/tmp/testMe.jnl
+ !-> define sym abs_path = /home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl
say ($abs_path)
- !-> MESSAGE/CONTINUE /home/users/ansley/build/trunk/FERRET/bench/tmp/testMe.jnl
-/home/users/ansley/build/trunk/FERRET/bench/tmp/testMe.jnl
+ !-> MESSAGE/CONTINUE /home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl
+/home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl
go tmp/testMe.jnl
say $1"1-n/a" $2"2-n/a" $3"3-n/a" $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
@@ -91047,13 +90667,13 @@ say $1"1-n/a" $2"2-n/a" $3"3-n/a" $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"
1-n/a 2-n/a 3-n/a 4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
go ($abs_path)
- !-> go /home/users/ansley/build/trunk/FERRET/bench/tmp/testMe.jnl
+ !-> go /home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl
say $1"1-n/a" $2"2-n/a" $3"3-n/a" $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
!-> MESSAGE/CONTINUE 1-n/a 2-n/a 3-n/a 4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
1-n/a 2-n/a 3-n/a 4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
go "($abs_path)"
- !-> go "/home/users/ansley/build/trunk/FERRET/bench/tmp/testMe.jnl"
+ !-> go "/home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl"
say $1"1-n/a" $2"2-n/a" $3"3-n/a" $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
!-> MESSAGE/CONTINUE 1-n/a 2-n/a 3-n/a 4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
1-n/a 2-n/a 3-n/a 4-n/a 5-n/a 6-n/a 7-n/a 8-n/a
@@ -91069,13 +90689,13 @@ say $1"1-n/a" $2"2-n/a" $3"3-n/a" $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"
5 hello bye /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
go ($abs_path) 5 hello "bye" "/quoted_path" /unquoted_path
- !-> go /home/users/ansley/build/trunk/FERRET/bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go /home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl 5 hello "bye" "/quoted_path" /unquoted_path
say $1"1-n/a" $2"2-n/a" $3"3-n/a" $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
!-> MESSAGE/CONTINUE 5 hello bye /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
5 hello bye /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
go "($abs_path)" 5 hello "bye" "/quoted_path" /unquoted_path
- !-> go "/home/users/ansley/build/trunk/FERRET/bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
+ !-> go "/home/users/ansley/build/working/FERRET/bench/tmp/testMe.jnl" 5 hello "bye" "/quoted_path" /unquoted_path
say $1"1-n/a" $2"2-n/a" $3"3-n/a" $4"4-n/a" $5"5-n/a" $6"6-n/a" $7"7-n/a" $8"8-n/a"
!-> MESSAGE/CONTINUE 5 hello bye /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
5 hello bye /quoted_path /unquoted_path 6-n/a 7-n/a 8-n/a
@@ -91282,7 +90902,7 @@ show grid sst[x=240:320,y=0,t=@ave]
COADSX LONGITUDE 180mr 21E 19E(379) 40 pts
COADSY LATITUDE 90 r 89S 89N 1 pt
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 compressed
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 compressed
! Modulo axes ask for superset
show grid sst[x=0:540,L=1:15]
@@ -91291,7 +90911,7 @@ show grid sst[x=0:540,L=1:15]
COADSX LONGITUDE 180mr 21E 19E(379) 270 pts
COADSY LATITUDE 90 r 89S 89N full
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 15 pts
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 15 pts
! Constant: full abstract grid
show grid 1
@@ -91329,7 +90949,7 @@ show grid `sst,return=grid`
COADSX LONGITUDE 180mr 21E 19E(379)
COADSY LATITUDE 90 r 89S 89N
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58
! grid of last variable loaded
load sst[x=240,y=@iin,t=@ave]
@@ -91341,7 +90961,7 @@ show grid
COADSX LONGITUDE 180mr 21E 19E(379) 1 pt
COADSY LATITUDE 90 r 89S 89N full
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 compressed
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 compressed
! Result grid is full grid
let var = sst[L=@ave] - sst[x=@max] - sst[y=0]
@@ -91351,7 +90971,7 @@ show grid var
COADSX LONGITUDE 180mr 21E 19E(379) full
COADSY LATITUDE 90 r 89S 89N full
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
! transform on single-point range is equiv. to single-point subset
@@ -91363,7 +90983,7 @@ show grid var
COADSX LONGITUDE 180mr 21E 19E(379) 1 pt
COADSY LATITUDE 90 r 89S 89N full
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
set mode/last interpolate
let var = sst[X=30:30.1 at max]
show grid var
@@ -91372,7 +90992,7 @@ show grid var
COADSX LONGITUDE 180mr 21E 19E(379) 1 pt
COADSY LATITUDE 90 r 89S 89N full
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
! dynamic grid
let var = sst[y=-10:10:.1,l=1,x=160e]
@@ -91380,18 +91000,18 @@ show grid var
GRID (G086)
name axis # pts start end subset
COADSX LONGITUDE 180mr 21E 19E(379) 1 pt
- (AX111) LATITUDE 201 r 10S 10N 201 pts
+ (AX114) LATITUDE 201 r 10S 10N 201 pts
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 1 pt
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 1 pt
! striding
show grid sst[i=1:180:3,j=1:90:2]
GRID (G085)
name axis # pts start end subset
- (AX113) LONGITUDE 60 r 21E 15E(375) 60 pts
- (AX133) LATITUDE 45 r 89S 87N 45 pts
+ (AX125) LONGITUDE 60 r 21E 15E(375) 60 pts
+ (AX107) LATITUDE 45 r 89S 87N 45 pts
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
! regridding
@@ -91427,7 +91047,7 @@ show grid var
COADSX LONGITUDE 180mr 21E 19E(379) full
COADSY LATITUDE 90 r 89S 89N full
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
let var = sst[y=-30:30 at iin]
show grid var
@@ -91436,7 +91056,7 @@ show grid var
COADSX LONGITUDE 180mr 21E 19E(379) full
COADSY LATITUDE 90 r 89S 89N 30 pts
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
use levitus_3d_subset
let var = temp[z=@weq:20]
@@ -91481,7 +91101,7 @@ show grid ffta(sample_function)
normal X
normal Y
normal Z
- (AX125) T (CYC/HOURS) 182 r 0.00011447 0.020833 (axis from grid-changing func)
+ (AX113) T (CYC/HOURS) 182 r 0.00011447 0.020833 (axis from grid-changing func)
show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
GRID (G085)
@@ -91489,7 +91109,7 @@ show grid ffta(sample_function[t=15-jan-1990:15-jun-1990])
normal X
normal Y
normal Z
- (AX133) T (CYC/HOURS) 76 r 0.00027412 0.020833 (axis from grid-changing func)
+ (AX107) T (CYC/HOURS) 76 r 0.00027412 0.020833 (axis from grid-changing func)
show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
GRID (G084)
@@ -91497,7 +91117,7 @@ show grid ffta(sample_function + temp[d=levitus_3d_subset,z=0:40])
XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E full
YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S full
ZAXLEVITR DEPTH (m) 20 i- 0 5000 4 pts
- (AX125) T (CYC/HOURS) 182 r 0.00011447 0.020833 (axis from grid-changing func)
+ (AX113) T (CYC/HOURS) 182 r 0.00011447 0.020833 (axis from grid-changing func)
can dat/all
@@ -91514,14 +91134,14 @@ sh grid tempz
name axis # pts start end subset
XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E full
YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S full
- (AX111) Z 5 r 100 500 full
+ (AX114) Z 5 r 100 500 full
normal T
sh grid tempz[z=100:400]
GRID (G086)
name axis # pts start end subset
XAXLEVITR101_102 LONGITUDE 2mr 120.5E 121.5E full
YAXLEVITR41_42 LATITUDE 2 r 49.5S 48.5S full
- (AX111) Z 5 r 100 500 4 pts
+ (AX114) Z 5 r 100 500 4 pts
normal T
! and with a grid-changing function thrown in
@@ -91708,7 +91328,7 @@ show data/attr my_fmrc
FCST DOUBLE long_name CHAR 18 T FIELD + FCST_ERROR
missing_value DOUBLE 1 T -1.E+34
- coordinates CHAR 34 T RUN TIME16 TF_TIMES TIME16 YAX XAX
+ coordinates CHAR 34 T RUN TIME27 TF_TIMES TIME27 YAX XAX
_ftime2d CHAR 8 T TF_TIMES
_cal_t_ax CHAR 8 T TF_CAL_T
_lag_f_ax CHAR 8 T TF_LAG_F
@@ -91722,7 +91342,7 @@ show data/attr my_fmrc
FCST_2 DOUBLE long_name CHAR 16 T another variable
missing_value DOUBLE 1 T -1.E+34
- coordinates CHAR 39 T TF_CAL_F TIME16 TF_TIMES TIME16 YAX XAX
+ coordinates CHAR 39 T TF_CAL_F TIME27 TF_TIMES TIME27 YAX XAX
_ftime2d CHAR 8 T TF_TIMES
_cal_t_ax CHAR 8 T TF_CAL_T
_lag_f_ax CHAR 8 T TF_LAG_F
@@ -92647,13 +92267,13 @@ cancel data my_fmrc
fmrc/hide tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
show data/brief
currently SET data sets:
- 6> ./bn_aggregate_f.jnl (default) Forecast aggregation
+ 6> ./v6jnls/bn_aggregate_f.jnl (default) Forecast aggregation
! the same agg using the very same files under a different name
fmrc/hide my_fmrc = tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
show data/full
currently SET data sets:
- 6> ./bn_aggregate_f.jnl Forecast aggregation
+ 6> ./v6jnls/bn_aggregate_f.jnl Forecast aggregation
Forecast series of 5 datasets patterned on fcst_3.nc
name title I J K L M N
FCST FIELD + FCST_ERROR 1:21 1:21 ... 1:24 ... 1:5
@@ -92709,7 +92329,7 @@ show data/br/hidden
3> tmp/fcst_5.nc
4> tmp/one_var_fcst_6.nc
5> tmp/fcst_3.nc
- 6> ./bn_aggregate_f.jnl Forecast aggregation
+ 6> ./v6jnls/bn_aggregate_f.jnl Forecast aggregation
cancel data bn_aggregate_f.jnl ! 3/16 bug fix (was "...sub")
show data
currently SET data sets:
@@ -93476,7 +93096,7 @@ SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.22 (beta/debug) 25-Oct-17
Conventions CHAR 6 F CF-1.6
(XAX) DOUBLE point_spacing CHAR 4 T even
@@ -93761,7 +93381,7 @@ SHOW DATA/ATTRIB tfe ! also notice the promotion of fcst.im_everywhere
FCST DOUBLE long_name CHAR 13 T some variable
missing_value DOUBLE 1 T -1.E+34
- coordinates CHAR 33 T RUN TIME16 TF_TIMES ZAX1 YAX1 XAX
+ coordinates CHAR 33 T RUN TIME27 TF_TIMES ZAX1 YAX1 XAX
_ftime2d CHAR 8 T TF_TIMES
_cal_t_ax CHAR 8 T TF_CAL_T
_lag_f_ax CHAR 8 T TF_LAG_F
@@ -93776,7 +93396,7 @@ SHOW DATA/ATTRIB tfe ! also notice the promotion of fcst.im_everywhere
FCST_2 DOUBLE long_name CHAR 16 T another variable
missing_value DOUBLE 1 T -1.E+34
- coordinates CHAR 39 T TF_CAL_F1 TIME16 TF_TIMES ZAX1 YAX1 XAX
+ coordinates CHAR 39 T TF_CAL_F1 TIME27 TF_TIMES ZAX1 YAX1 XAX
_ftime2d CHAR 8 T TF_TIMES
_cal_t_ax CHAR 8 T TF_CAL_T
_lag_f_ax CHAR 8 T TF_LAG_F
@@ -93924,7 +93544,7 @@ let nv = ..nvars
let nd = ..ndims
let vnames = ..varnames
list/DAT=1 nv, nd
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
@@ -93948,14 +93568,14 @@ list/DAT=1 vnames
12 / 12:"PSI"
list/DAT=coads_climatology nv,nd
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
NV ND
I / *: 1.000000 3.000000
list/DAT=gt4d011 nv,nd
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
@@ -93974,7 +93594,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
use a.nc
sh att .
attributes for dataset: ./a.nc
- ..history = FERRET V7.21 (beta/debug) 6-Sep-17
+ ..history = FERRET V7.23 (beta/debug) 29-Nov-17
..Conventions = CF-1.6
..dt_internal = 15
sh att elev
@@ -93995,7 +93615,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
use a.nc
sh att .
attributes for dataset: ./a.nc
- ..history = FERRET V7.21 (beta/debug) 6-Sep-17
+ ..history = FERRET V7.23 (beta/debug) 29-Nov-17
..Conventions = CF-1.6
sh att elev
attributes for dataset: ./a.nc
@@ -94019,9 +93639,9 @@ show grid
GRID (G200)
name axis # pts start end subset
COADSX LONGITUDE 180mr 21E 19E(379) 1 pt
- (AX114) LATITUDE 201 r 10S 10N 201 pts
+ (AX107) LATITUDE 201 r 10S 10N 201 pts
normal Z
- TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58 1 pt
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 1 pt
! LIST/DAT=, LET/DAT=,
can dat/all
@@ -94048,7 +93668,7 @@ list/DAT=3 temp.history
let/DAT=2 temp = sst + 0*z[z=1:5:1]
sh dat 2
currently SET data sets:
- 2> ./coads_climatology.cdf
+ 2> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
------------------------------
@@ -94070,7 +93690,7 @@ stat/DATASET=1 elev
T (day): 1.7837
E: N/A
F: N/A
- DATA SET: ./err491_attval.cdf
+ DATA SET: ./data/err491_attval.cdf
Total # of data points: 4445 (35*127*1*1*1*1)
# flagged as bad data: 3065
@@ -94121,9 +93741,9 @@ GO bn_speedtest
! bn_speedtest.jnl
! issue large numbers of commands, timing with clock time
can mode verify
-10K LET commands LET a = 0 takes 0.5519999999999925 seconds
-Second 10K LET commands LET a = 0 takes 1.209 seconds
-5K LOAD with transform takes 1.638 seconds
+10K LET commands LET a = 0 takes 1.987 seconds
+Second 10K LET commands LET a = 0 takes 3.251 seconds
+5K LOAD with transform takes 3.652 seconds
GO bn_reset bn_show_noupcase
cancel mode verify
@@ -94164,13 +93784,13 @@ USE a1478.nc
USE a_cartesian_bug1179.nc
show data
currently SET data sets:
- 1> ./a1478.nc
+ 1> ./data/a1478.nc
name title I J K L
lat1_5_bnds
1:2 1:5 ... ...
olr outgoing longwave radiation 1:5 1:5 ... 1:3
- 2> ./a_cartesian_bug1179.nc (default)
+ 2> ./data/a_cartesian_bug1179.nc (default)
name title I J K L
temp THETA_FO(SALT_EXTRAP,TEMP_EXTRA 1:1 1:1 1:10 1:1
@@ -94205,7 +93825,7 @@ LET/D=2 newvar = 0*zvar[d=2] + olr[d=1]
show data
currently SET data sets:
- 1> ./a1478.nc
+ 1> ./data/a1478.nc
name title I J K L
lat1_5_bnds
1:2 1:5 ... ...
@@ -94213,7 +93833,7 @@ show data
------------------------------
zvar[D=a1478] = 2*TEMP[D=2]
- 2> ./a_cartesian_bug1179.nc (default)
+ 2> ./data/a_cartesian_bug1179.nc (default)
name title I J K L
temp THETA_FO(SALT_EXTRAP,TEMP_EXTRA 1:1 1:1 1:10 1:1
------------------------------
@@ -94236,7 +93856,7 @@ say/quiet <data>
show var/xml
show data/var/xml
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
<title> </title>
<var name="temp">
<attribute name="units" type="char">
@@ -94301,35 +93921,6 @@ show data/var/xml
<value><![CDATA[grid_x_T]]></value>
</attribute>
</axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[days since 1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>1</value>
-</attribute>
-<attribute name="start" type="double">
- <value>1900-02-15 03:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>1900-02-15 03:00:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[JULIAN]]></value>
-</attribute>
-</axis>
<axis name="zt">
<attribute name="direction" type="char">
<value><![CDATA[K]]></value>
@@ -94406,87 +93997,6 @@ show data/var/xml
<value><![CDATA[grid_y_T]]></value>
</attribute>
</axis>
-</axes>
-say/quiet </data>
-</data>
-
-USE a_cartesian_bug1179.nc
-
-SHO DATA/XML
-<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
-<title> </title>
-<var name="temp" />
-</dataset>
-</datasets>
-
-SHO DATA/VAR/XML
-<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
-<title> </title>
-<var name="temp">
-<attribute name="units" type="char">
- <value><![CDATA[nounits]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[THETA_FO(SALT_EXTRAP,TEMP_EXTRAP,Z[G=TEMP_EXTRAP],0)]]></value>
-</attribute>
-<attribute name="missing_value" type="float">
- <value>-1.E+34</value>
-</attribute>
-<attribute name="ferret_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[DOUBLE]]></value>
-</attribute>
-<grid name="GHU1">
-<axes>
-<xaxis>grid_x_T</xaxis>
-<yaxis>grid_y_T</yaxis>
-<zaxis>zt</zaxis>
-<taxis>TIME</taxis>
-</axes>
-</grid>
-</var>
-</dataset>
-</datasets>
-<axes>
-<axis name="grid_x_T">
-<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>1</value>
-</attribute>
-<attribute name="start" type="double">
- <value>79</value>
-</attribute>
-<attribute name="end" type="double">
- <value>79</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[Nominal Longitude of T-cell center]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
- <value><![CDATA[X]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[grid_x_T]]></value>
-</attribute>
-</axis>
<axis name="TIME">
<attribute name="direction" type="char">
<value><![CDATA[L]]></value>
@@ -94516,85 +94026,40 @@ SHO DATA/VAR/XML
<value><![CDATA[JULIAN]]></value>
</attribute>
</axis>
-<axis name="zt">
-<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
-</attribute>
+</axes>
+say/quiet </data>
+</data>
+
+USE a_cartesian_bug1179.nc
+
+SHO DATA/XML
+<datasets>
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
+<title> </title>
+<var name="temp" />
+</dataset>
+</datasets>
+
+SHO DATA/VAR/XML
+<datasets>
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
+<title> </title>
+<var name="temp">
<attribute name="units" type="char">
- <value><![CDATA[meters]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>10</value>
-</attribute>
-<attribute name="start" type="double">
- <value>22.5</value>
-</attribute>
-<attribute name="end" type="double">
- <value>157.9952</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value>uneven</value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
+ <value><![CDATA[nounits]]></value>
</attribute>
<attribute name="long_name" type="char">
- <value><![CDATA[zt]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
- <value><![CDATA[z]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[zt]]></value>
-</attribute>
-<attribute name="bounds" type="char">
- <value>zt_bnds</value>
-</attribute>
-</axis>
-<axis name="grid_y_T">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_north]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>1</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-0.25</value>
-</attribute>
-<attribute name="end" type="double">
- <value>-0.25</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
+ <value><![CDATA[THETA_FO(SALT_EXTRAP,TEMP_EXTRAP,Z[G=TEMP_EXTRAP],0)]]></value>
</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
+<attribute name="missing_value" type="float">
+ <value>-1.E+34</value>
</attribute>
-<attribute name="infile_datatype" type="char">
+<attribute name="ferret_datatype" type="char">
<value><![CDATA[FLOAT]]></value>
</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[Nominal Latitude of T-cell center]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
- <value><![CDATA[Y]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[grid_y_T]]></value>
+<attribute name="infile_datatype" type="char">
+ <value><![CDATA[DOUBLE]]></value>
</attribute>
-</axis>
-</axes>
-
-SHO GRID/XML temp
<grid name="GHU1">
<axes>
<xaxis>grid_x_T</xaxis>
@@ -94603,9 +94068,9 @@ SHO GRID/XML temp
<taxis>TIME</taxis>
</axes>
</grid>
-
-SHO AXIS/XML `temp,return=xaxis`
- !-> SHO AXIS/XML grid_x_T
+</var>
+</dataset>
+</datasets>
<axes>
<axis name="grid_x_T">
<attribute name="direction" type="char">
@@ -94642,49 +94107,204 @@ SHO AXIS/XML `temp,return=xaxis`
<value><![CDATA[grid_x_T]]></value>
</attribute>
</axis>
-</axes>
-SHO AXIS/XML `temp,return=yaxis`
- !-> SHO AXIS/XML grid_y_T
-<axes>
-<axis name="grid_y_T">
-<attribute name="direction" type="char">
- <value><![CDATA[J]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[degrees_north]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>1</value>
-</attribute>
-<attribute name="start" type="double">
- <value>-0.25</value>
-</attribute>
-<attribute name="end" type="double">
- <value>-0.25</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-<attribute name="infile_datatype" type="char">
- <value><![CDATA[FLOAT]]></value>
-</attribute>
-<attribute name="long_name" type="char">
- <value><![CDATA[Nominal Latitude of T-cell center]]></value>
-</attribute>
-<attribute name="cartesian_axis" type="char">
- <value><![CDATA[Y]]></value>
-</attribute>
-<attribute name="orig_file_axname" type="char">
- <value><![CDATA[grid_y_T]]></value>
-</attribute>
-</axis>
-</axes>
-SHO AXIS/XML `temp,return=zaxis`
- !-> SHO AXIS/XML zt
-<axes>
+<axis name="zt">
+<attribute name="direction" type="char">
+ <value><![CDATA[K]]></value>
+</attribute>
+<attribute name="units" type="char">
+ <value><![CDATA[meters]]></value>
+</attribute>
+<attribute name="length" type="short">
+ <value>10</value>
+</attribute>
+<attribute name="start" type="double">
+ <value>22.5</value>
+</attribute>
+<attribute name="end" type="double">
+ <value>157.9952</value>
+</attribute>
+<attribute name="positive" type="char">
+ <value><![CDATA[down]]></value>
+</attribute>
+<attribute name="point_spacing" type="char">
+ <value>uneven</value>
+</attribute>
+<attribute name="modulo" type="char">
+ <value>no</value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+ <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+ <value><![CDATA[zt]]></value>
+</attribute>
+<attribute name="cartesian_axis" type="char">
+ <value><![CDATA[z]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+ <value><![CDATA[zt]]></value>
+</attribute>
+<attribute name="bounds" type="char">
+ <value>zt_bnds</value>
+</attribute>
+</axis>
+<axis name="grid_y_T">
+<attribute name="direction" type="char">
+ <value><![CDATA[J]]></value>
+</attribute>
+<attribute name="units" type="char">
+ <value><![CDATA[degrees_north]]></value>
+</attribute>
+<attribute name="length" type="short">
+ <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+ <value>-0.25</value>
+</attribute>
+<attribute name="end" type="double">
+ <value>-0.25</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+ <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+ <value>no</value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+ <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+ <value><![CDATA[Nominal Latitude of T-cell center]]></value>
+</attribute>
+<attribute name="cartesian_axis" type="char">
+ <value><![CDATA[Y]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+ <value><![CDATA[grid_y_T]]></value>
+</attribute>
+</axis>
+<axis name="TIME">
+<attribute name="direction" type="char">
+ <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="units" type="char">
+ <value><![CDATA[days since 1900-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="length" type="short">
+ <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+ <value>1900-02-15 03:00:00</value>
+</attribute>
+<attribute name="end" type="double">
+ <value>1900-02-15 03:00:00</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+ <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+ <value><![CDATA[yes]]></value>
+</attribute>
+<attribute name="time_origin" type="char">
+ <value><![CDATA[1900-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="calendar" type="char">
+ <value><![CDATA[JULIAN]]></value>
+</attribute>
+</axis>
+</axes>
+
+SHO GRID/XML temp
+<grid name="GHU1">
+<axes>
+<xaxis>grid_x_T</xaxis>
+<yaxis>grid_y_T</yaxis>
+<zaxis>zt</zaxis>
+<taxis>TIME</taxis>
+</axes>
+</grid>
+
+SHO AXIS/XML `temp,return=xaxis`
+ !-> SHO AXIS/XML grid_x_T
+<axes>
+<axis name="grid_x_T">
+<attribute name="direction" type="char">
+ <value><![CDATA[I]]></value>
+</attribute>
+<attribute name="units" type="char">
+ <value><![CDATA[degrees_east]]></value>
+</attribute>
+<attribute name="length" type="short">
+ <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+ <value>79</value>
+</attribute>
+<attribute name="end" type="double">
+ <value>79</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+ <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+ <value>no</value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+ <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+ <value><![CDATA[Nominal Longitude of T-cell center]]></value>
+</attribute>
+<attribute name="cartesian_axis" type="char">
+ <value><![CDATA[X]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+ <value><![CDATA[grid_x_T]]></value>
+</attribute>
+</axis>
+</axes>
+SHO AXIS/XML `temp,return=yaxis`
+ !-> SHO AXIS/XML grid_y_T
+<axes>
+<axis name="grid_y_T">
+<attribute name="direction" type="char">
+ <value><![CDATA[J]]></value>
+</attribute>
+<attribute name="units" type="char">
+ <value><![CDATA[degrees_north]]></value>
+</attribute>
+<attribute name="length" type="short">
+ <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+ <value>-0.25</value>
+</attribute>
+<attribute name="end" type="double">
+ <value>-0.25</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+ <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+ <value>no</value>
+</attribute>
+<attribute name="infile_datatype" type="char">
+ <value><![CDATA[FLOAT]]></value>
+</attribute>
+<attribute name="long_name" type="char">
+ <value><![CDATA[Nominal Latitude of T-cell center]]></value>
+</attribute>
+<attribute name="cartesian_axis" type="char">
+ <value><![CDATA[Y]]></value>
+</attribute>
+<attribute name="orig_file_axname" type="char">
+ <value><![CDATA[grid_y_T]]></value>
+</attribute>
+</axis>
+</axes>
+SHO AXIS/XML `temp,return=zaxis`
+ !-> SHO AXIS/XML zt
+<axes>
<axis name="zt">
<attribute name="direction" type="char">
<value><![CDATA[K]]></value>
@@ -94728,7 +94348,7 @@ SHO AXIS/XML `temp,return=zaxis`
</axis>
</axes>
SHO AXIS/XML `temp,return=taxis`
- !-> SHO AXIS/XML TIME17
+ !-> SHO AXIS/XML TIME28
<axes>
<axis name="TIME">
<attribute name="direction" type="char">
@@ -94767,7 +94387,7 @@ LET/D=a_cartesian_bug1179 temp_180 = temp[X=79E:79E at AVE]
SHOW DATA/XML
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
<title> </title>
<var name="temp" />
<var name="temp_180" />
@@ -94777,12 +94397,12 @@ SHOW DATA/XML
USE a1478.nc
SHOW DATA/XML
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="false">
+<dataset name="./data/a_cartesian_bug1179.nc" default="false">
<title> </title>
<var name="temp" />
<var name="temp_180" />
</dataset>
-<dataset name="./a1478.nc" default="true">
+<dataset name="./data/a1478.nc" default="true">
<title> </title>
<var name="lat1_5_bnds" />
<var name="olr" />
@@ -94790,7 +94410,7 @@ SHOW DATA/XML
</datasets>
SHO DATA/VAR/XML
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="false">
+<dataset name="./data/a_cartesian_bug1179.nc" default="false">
<title> </title>
<var name="temp">
<attribute name="units" type="char">
@@ -94879,35 +94499,6 @@ SHO DATA/VAR/XML
<value><![CDATA[grid_x_T]]></value>
</attribute>
</axis>
-<axis name="TIME">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="units" type="char">
- <value><![CDATA[days since 1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>1</value>
-</attribute>
-<attribute name="start" type="double">
- <value>1900-02-15 03:00:00</value>
-</attribute>
-<attribute name="end" type="double">
- <value>1900-02-15 03:00:00</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
-</attribute>
-<attribute name="time_origin" type="char">
- <value><![CDATA[1900-01-01 00:00:00]]></value>
-</attribute>
-<attribute name="calendar" type="char">
- <value><![CDATA[JULIAN]]></value>
-</attribute>
-</axis>
<axis name="zt">
<attribute name="direction" type="char">
<value><![CDATA[K]]></value>
@@ -94984,8 +94575,37 @@ SHO DATA/VAR/XML
<value><![CDATA[grid_y_T]]></value>
</attribute>
</axis>
+<axis name="TIME">
+<attribute name="direction" type="char">
+ <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="units" type="char">
+ <value><![CDATA[days since 1900-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="length" type="short">
+ <value>1</value>
+</attribute>
+<attribute name="start" type="double">
+ <value>1900-02-15 03:00:00</value>
+</attribute>
+<attribute name="end" type="double">
+ <value>1900-02-15 03:00:00</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+ <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+ <value><![CDATA[yes]]></value>
+</attribute>
+<attribute name="time_origin" type="char">
+ <value><![CDATA[1900-01-01 00:00:00]]></value>
+</attribute>
+<attribute name="calendar" type="char">
+ <value><![CDATA[JULIAN]]></value>
+</attribute>
+</axis>
</axes>
-<dataset name="./a1478.nc" default="true">
+<dataset name="./data/a1478.nc" default="true">
<title> </title>
<var name="lat1_5_bnds">
<attribute name="ferret_datatype" type="char">
@@ -95086,26 +94706,6 @@ SHO DATA/VAR/XML
<value><![CDATA[lon1_5]]></value>
</attribute>
</axis>
-<axis name="bnds">
-<attribute name="direction" type="char">
- <value><![CDATA[L]]></value>
-</attribute>
-<attribute name="length" type="short">
- <value>2</value>
-</attribute>
-<attribute name="start" type="double">
- <value>1</value>
-</attribute>
-<attribute name="end" type="double">
- <value>2</value>
-</attribute>
-<attribute name="point_spacing" type="char">
- <value><![CDATA[even]]></value>
-</attribute>
-<attribute name="modulo" type="char">
- <value>no</value>
-</attribute>
-</axis>
<axis name="lat1_5">
<attribute name="direction" type="char">
<value><![CDATA[J]]></value>
@@ -95135,6 +94735,26 @@ SHO DATA/VAR/XML
<value>lat1_5_bnds</value>
</attribute>
</axis>
+<axis name="bnds">
+<attribute name="direction" type="char">
+ <value><![CDATA[L]]></value>
+</attribute>
+<attribute name="length" type="short">
+ <value>2</value>
+</attribute>
+<attribute name="start" type="double">
+ <value>1</value>
+</attribute>
+<attribute name="end" type="double">
+ <value>2</value>
+</attribute>
+<attribute name="point_spacing" type="char">
+ <value><![CDATA[even]]></value>
+</attribute>
+<attribute name="modulo" type="char">
+ <value>no</value>
+</attribute>
+</axis>
</axes>
! tests of SHOW VAR/XML for global variables.
@@ -95202,7 +94822,7 @@ let/d=1/title="coads myvar" myvar = 1
! Now SHOW DATA/ATT lists the LET/D variables, as SHOW DATA does
show dat 1
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
------------------------------
@@ -95211,7 +94831,7 @@ show dat 1
show dat/att 1
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -95228,7 +94848,7 @@ show dat/att 1
orig_file_axname
CHAR 6 F COADSY
-(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME20) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 19 T 1-JAN-0000 00:00:00
modulo CHAR 1 T
orig_file_axname
@@ -95246,7 +94866,7 @@ show dat/att 1
show att myvar
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
myvar.long_name = coads myvar
myvar.missing_value = -1.E+34
@@ -95266,7 +94886,7 @@ use levitus_climatology
let/d=2/title="Levitus myvar" myvar = 2
show dat 2
currently SET data sets:
- 2> ./levitus_climatology.cdf (default)
+ 2> ./data/levitus_climatology.cdf (default)
name title I J K L
TEMP TEMPERATURE 1:160 1:90 1:1 ...
------------------------------
@@ -95274,7 +94894,7 @@ show dat 2
show dat/att 2
currently SET data sets:
- 2> ./levitus_climatology.cdf (default)
+ 2> ./data/levitus_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -95312,7 +94932,7 @@ show att myvar
myvar.missing_value = -1.E+34
show att/d=1 myvar
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
myvar.long_name = coads myvar
myvar.missing_value = -1.E+34
@@ -95340,18 +94960,18 @@ list vnames
cancel var/all
show dat
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
- 2> ./levitus_climatology.cdf
+ 2> ./data/levitus_climatology.cdf
name title I J K L
TEMP TEMPERATURE 1:160 1:90 1:1 ...
show dat/att 2
currently SET data sets:
- 2> ./levitus_climatology.cdf
+ 2> ./data/levitus_climatology.cdf
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -95394,7 +95014,7 @@ let/d=2/title="Levitus myvar" myvar = 2
define att/output temp.my_new_att="temperature attrib"
define att/output myvar.units="meters"
show att temp
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
TEMP.missing_value = -1.E+10
TEMP._FillValue = -1.E+10
TEMP.long_name = TEMPERATURE
@@ -95402,7 +95022,7 @@ show att temp
TEMP.units = DEG C
TEMP.my_new_att = temperature attrib
show att myvar
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
myvar.long_name = Levitus myvar
myvar.missing_value = -1.E+34
myvar.units = meters
@@ -95412,7 +95032,7 @@ define att/output/d=2 myvar.standard_name = "None"
define att/output/d=1 myvar.units="feet"
show att/d=1 myvar
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
myvar.long_name = coads myvar
myvar.missing_value = -1.E+34
myvar.units = feet
@@ -95420,7 +95040,7 @@ save/clobber/file=a.nc myvar[d=1]
sp ncdump -h a.nc >> all_ncdump.out
show att/d=2 myvar
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
myvar.long_name = Levitus myvar
myvar.missing_value = -1.E+34
myvar.units = meters
@@ -95764,7 +95384,7 @@ sho command set
SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
- /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+ /TYPE/SWAP/REGULART/DELIMITE/STRICT
SET MODE/LAST
SET MOVI/FILE/COMPRESS/LASER/START
SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
@@ -95789,7 +95409,7 @@ sho command set l ! SET LIST
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
sho command set d ! SET DATA
SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
- /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+ /TYPE/SWAP/REGULART/DELIMITE/STRICT
sho command set m ! SET MODE
SET MODE/LAST
sho command set mov! SET MOVIE
@@ -96142,7 +95762,7 @@ sho command/brief v
! All the commands, no subcommands, no qualifiers
SHOW COMMAND/BRIEF
- Commands in Program FERRET (beta/debug) version7.21:
+ Commands in Program FERRET (beta/debug) version7.23:
SET
SHOW
CANCEL
@@ -96573,7 +96193,7 @@ go err700_reg_axis_check
use bug2445.nc
show data
currently SET data sets:
- 1> ./bug2445.nc (default)
+ 1> ./data/bug2445.nc (default)
name title I J K L
XAX 1:5 ... ... ...
(invalid coordinate axis)
@@ -96654,7 +96274,7 @@ go err700_inherit_all
! This non-standardfile has no missing-value attributes.
use no_miss_att.nc
sh att a
- attributes for dataset: ./no_miss_att.nc
+ attributes for dataset: ./data/no_miss_att.nc
A.min_value = 1
A.max_value = 3
A.long_name = {1,2,3}
@@ -97547,7 +97167,7 @@ go err700_coords
use err700_coords.nc
list/i=10:20/prec=16 du_coords, du_coords[i=@ddf]
- DATA SET: ./err700_coords.nc
+ DATA SET: ./data/err700_coords.nc
X: 9.5 to 20.5
Column 1: DU_COORDS is DU_VU[I=1:20]
Column 2: DU_COORDS[X=@DDF] is DU_VU[I=1:20] (forward derivative on X)
@@ -97592,9 +97212,9 @@ save/clob/file=a.nc c
eval EX#1 C: 4 dset: 1 I: 11 31 J: -999 -999 K: -999 -999 L: -999 -999
eval C C: 6 dset: 0 I: 11 31 J: -999 -999 K: -999 -999 L: -999 -999
allocate dynamic grid (G208) C2D_AX_X NORMAL NORMAL NORMAL
- pseudo X M:244 dset: 0 I: 11 31 J: -999 -999 K: -999 -999 L: -999 -999
+ pseudo X M:235 dset: 0 I: 11 31 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid (G208) C2D_AX_X NORMAL NORMAL NORMAL
- -DELETE C M:240 dset: 0 I: 11 30 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE C M:228 dset: 0 I: 11 30 J: -999 -999 K: -999 -999 L: -999 -999
set mode /last diag
@@ -97847,7 +97467,7 @@ variables:
VAR:long_name = "X[GX=XLON]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
go bn_reset
@@ -97906,7 +97526,7 @@ variables:
VAR:history = "From a1" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -97953,7 +97573,7 @@ variables:
VAR:history = "From a1" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -97972,7 +97592,7 @@ sh axis `var,return=xaxis`
use coads_climatology
sh att (`sst,return=xaxis`)
!-> sh att (COADSX)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(COADSX).units = degrees_east
(COADSX).modulo =
(COADSX).point_spacing = even
@@ -98054,6 +97674,7 @@ FRAME /FILE=forecast_actual.gif
! using actual should show single color on horizontal
!
LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
+
SHOW GRID diagview
GRID (G181)
name axis # pts start end subset
@@ -98063,6 +97684,7 @@ SHOW GRID diagview
TF_CAL_T TIME 34 r 17-OCT-2010 02:48 17-JUL-2013 10:00 full
normal E
TF_CAL_F FORECAST 4 r 01-OCT-2010 21:36 02-JUL-2011 19:12 full
+
LIST /WIDTH=600 /X=120W/Y=50N/Z=50 diagview
VARIABLE : actual (diag view)
DATA SET : Forecast series of 4 datasets patterned on forecast24
@@ -98194,16 +97816,14 @@ frame/file=legend_1d_plots.gif
! legend labels are titles
sh sym lab*
LABX = "Temperature Avg (deg. C)"
-LAB1 = "DEPTH (m) : 0 to 4149"
+LAB1 = "January Taux"
LABNUM_Z = "1"
LAB2 = "DATA SET: gt4d011"
LABNUM_DSET = "2"
LAB3 = ""
LABNUM_DATITL = "3"
LABY = "dynes/cm**2"
-LAB4 = "September Taux"
LABKEY = "January Taux"
-LAB5 = "January Taux"
! Overlaying on a 2D field
@@ -98300,20 +97920,20 @@ GO bn_delim_datetime
columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,eurodate" delim_datetime.csv
sh dat
currently SET data sets:
- 1> ./delim_datetime.csv (default)
+ 1> ./data/delim_datetime.csv (default)
name title I J K L
- INDEX index 1:8 ... ... ...
- EDTIM edtim 1:8 ... ... ...
+ INDEX index 1:5 ... ... ...
+ EDTIM edtim 1:5 ... ... ...
(Julian days since 1-Jan-1900)
- UDTIM udtim 1:8 ... ... ...
+ UDTIM udtim 1:5 ... ... ...
(Julian days since 1-Jan-1900)
- UDATE udate 1:8 ... ... ...
+ UDATE udate 1:5 ... ... ...
(Julian days since 1-Jan-1900)
- EDATE edate 1:8 ... ... ...
+ EDATE edate 1:5 ... ... ...
(Julian days since 1-Jan-1900)
list index,edtim,udtim,udate,edate
- DATA SET: ./delim_datetime.csv
+ DATA SET: ./data/delim_datetime.csv
X: 0.5 to 5.5
Column 1: INDEX is index
Column 2: EDTIM is edtim (days)(Julian days since 1-Jan-1900)
@@ -98393,7 +98013,7 @@ T0 = 1-JAN-1900
columns/skip=2/var="index,udate,udtim"/type="num,date,datime" delim_yyyy.csv
sh dat
currently SET data sets:
- 1> ./delim_datetime.csv
+ 1> ./data/delim_datetime.csv
name title I J K L
INDEX index 1:5 ... ... ...
EDTIM edtim 1:5 ... ... ...
@@ -98405,16 +98025,16 @@ sh dat
EDATE edate 1:5 ... ... ...
(Julian days since 1-Jan-1900)
- 2> ./delim_yyyy.csv (default)
+ 2> ./data/delim_yyyy.csv (default)
name title I J K L
- INDEX index 1:8 ... ... ...
- UDATE udate 1:8 ... ... ...
+ INDEX index 1:6 ... ... ...
+ UDATE udate 1:6 ... ... ...
(Julian days since 1-Jan-1900)
- UDTIM udtim 1:8 ... ... ...
+ UDTIM udtim 1:6 ... ... ...
(Julian days since 1-Jan-1900)
list/prec=10 index,udate,udtim
- DATA SET: ./delim_yyyy.csv
+ DATA SET: ./data/delim_yyyy.csv
X: 0.5 to 6.5
Column 1: INDEX is index
Column 2: UDATE is udate (days)(Julian days since 1-Jan-1900)
@@ -98510,7 +98130,7 @@ can dat/all
union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
sh dat
currently SET data sets:
- 5> ./bn_aggregate_u.jnl (default) Union aggregation
+ 5> ./v7jnls/bn_aggregate_u.jnl (default) Union aggregation
name title I J K L
SST sst 1:5 1:4 ... 1:10
TEMP temp 1:5 1:4 ... 1:10
@@ -99106,19 +98726,19 @@ save/clobber/file=a.nc abc
sp ncdump -h a.nc
netcdf a {
dimensions:
- AX043 = 5 ;
+ AX042 = 5 ;
variables:
- double AX043(AX043) ;
- AX043:point_spacing = "even" ;
- AX043:axis = "X" ;
- double abc(AX043) ;
+ double AX042(AX042) ;
+ AX042:point_spacing = "even" ;
+ AX042:axis = "X" ;
+ double abc(AX042) ;
abc:missing_value = -1.e+34 ;
abc:_FillValue = -1.e+34 ;
abc:long_name = "abc" ;
abc:history = "From abc.dat" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -99130,15 +98750,15 @@ sh dat
name title I J K L
abc abc 1:5 ... ... ...
- 2> ./bn_delimited_read_1.dat (default)
+ 2> ./data/bn_delimited_read_1.dat (default)
name title I J K L
- lab lab 1:7 ... ... ...
- nothing nothing 1:7 ... ... ...
- var var 1:7 ... ... ...
- latitude latitude 1:7 ... ... ...
+ lab lab 1:6 ... ... ...
+ nothing nothing 1:6 ... ... ...
+ var var 1:6 ... ... ...
+ latitude latitude 1:6 ... ... ...
(Latitude)
longitude
- longitude 1:7 ... ... ...
+ longitude 1:6 ... ... ...
(Longitude)
sh dat/att
@@ -99152,7 +98772,7 @@ sh dat/att
abc DOUBLE long_name CHAR 3 T abc
missing_value DOUBLE 1 T -1.E+34
- 2> ./bn_delimited_read_1.dat (default)
+ 2> ./data/bn_delimited_read_1.dat (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -99179,24 +98799,24 @@ sav/file=a.nc/clobber var,longitude,latitude
sp ncdump -h a.nc
netcdf a {
dimensions:
- AX103 = 6 ;
+ AX108 = 6 ;
variables:
- double AX103(AX103) ;
- AX103:point_spacing = "even" ;
- AX103:axis = "X" ;
- double var(AX103) ;
+ double AX108(AX108) ;
+ AX108:point_spacing = "even" ;
+ AX108:axis = "X" ;
+ double var(AX108) ;
var:missing_value = -1.e+34 ;
var:_FillValue = -1.e+34 ;
var:long_name = "var" ;
var:history = "From bn_delimited_read_1.dat" ;
- double longitude(AX103) ;
+ double longitude(AX108) ;
longitude:missing_value = -1.e+34 ;
longitude:_FillValue = -1.e+34 ;
longitude:long_name = "longitude" ;
longitude:units = "degrees_east" ;
longitude:long_name_mod = "Longitude" ;
longitude:history = "From bn_delimited_read_1.dat" ;
- double latitude(AX103) ;
+ double latitude(AX108) ;
latitude:missing_value = -1.e+34 ;
latitude:_FillValue = -1.e+34 ;
latitude:long_name = "latitude" ;
@@ -99205,7 +98825,7 @@ variables:
latitude:history = "From bn_delimited_read_1.dat" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -99223,9 +98843,9 @@ GO bn_spawn_fail
! 8/2016 *acm*
sp ls notafile.nowhere
-sp grep "this text is not in the file" bn_all.jnl
+sp grep "this text is not in the file" genjnls/bn_all.jnl
sp rm nothing.dat
-sp grep modulus non_COARDS.cdl
+sp grep modulus data/non_COARDS.cdl
sp cp nofile.dat not_either.dat
GO bn_reset bn_ave_of_ave
@@ -99456,7 +99076,7 @@ cancel var/all
union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
show data/members
currently SET data sets:
- 5> ./bn_agg_member_syntax.jnl (default) Union aggregation
+ 5> ./v7jnls/bn_agg_member_syntax.jnl (default) Union aggregation
name title I J K L
SST sst 1:5 1:4 ... 1:10
TEMP temp 1:5 1:4 ... 1:10
@@ -99484,7 +99104,7 @@ show data 5.3
cancel data/all
! Tests for Ensembles
-let files = SPAWN("ls -1 ens*.nc")
+let files = SPAWN("ls -1 data/ens*.nc")
ensemble my_ens = files
sh data/members my_ens
currently SET data sets:
@@ -99493,14 +99113,14 @@ sh data/members my_ens
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
Member datasets:
- 5.1: ./ens1.nc
- 5.2: ./ens2.nc
- 5.3: ./ens3.nc
- 5.4: ./ens4.nc
+ 5.1: data/ens1.nc
+ 5.2: data/ens2.nc
+ 5.3: data/ens3.nc
+ 5.4: data/ens4.nc
show data 5.3
currently SET data sets:
- 3> ./ens3.nc
+ 3> data/ens3.nc
name title I J K L
SST SST_IN 1:10 1:9 ... 1:12
@@ -99530,7 +99150,7 @@ stat sst[d=5.2]
TIME: 01-JAN 00:45 to 31-DEC 06:34
E: N/A
F: N/A
- DATA SET: ./ens2.nc
+ DATA SET: data/ens2.nc
Total # of data points: 1080 (10*9*1*12*1*1)
# flagged as bad data: 289
@@ -99547,7 +99167,7 @@ ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
! not this is dataset 2
show data 5.3
currently SET data sets:
- 3> ./ens2.nc
+ 3> ./data/ens2.nc
name title I J K L
SST SST_IN 1:10 1:9 ... 1:12
@@ -99914,14 +99534,14 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(TAXIS1) DOUBLE axis CHAR 1 T T
- bounds CHAR 10 T TAXIS_bnds
time_origin CHAR 10 T 1-JAN-2010
units CHAR 30 T days since 2010-01-01 00:00:00
standard_name CHAR 4 F time
+ bounds CHAR 10 T TAXIS_bnds
orig_file_axname
CHAR 5 F TAXIS
@@ -99983,15 +99603,15 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(TAXIS1) DOUBLE axis CHAR 1 T T
- bounds CHAR 10 T TAXIS_bnds
time_origin CHAR 10 T 1-JAN-2010
calendar CHAR 6 T JULIAN
units CHAR 30 T days since 2010-01-01 00:00:00
standard_name CHAR 4 F time
+ bounds CHAR 10 T TAXIS_bnds
orig_file_axname
CHAR 5 F TAXIS
@@ -100054,15 +99674,15 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 35 T FERRET V7.21 (beta/debug) 6-Sep-17
+ . history CHAR 35 T FERRET V7.23 (beta/debug) 29-Nov-17
Conventions CHAR 6 F CF-1.6
(TAXIS1) DOUBLE axis CHAR 1 T T
- bounds CHAR 10 T TAXIS_bnds
time_origin CHAR 10 T 1-JAN-2010
calendar CHAR 7 T 360_DAY
units CHAR 30 T days since 2010-01-01 00:00:00
standard_name CHAR 4 F time
+ bounds CHAR 10 T TAXIS_bnds
orig_file_axname
CHAR 5 F TAXIS
@@ -100471,7 +100091,7 @@ variables:
VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -100609,10 +100229,10 @@ use coads_climatology
let lnames = ..dimnames[d=2]
CANCEL DATA/ALL
- canceling dset ./ocean_atlas_temp.cdf
- canceling dset ./gt4d011.cdf
- canceling dset ./levitus_climatology.cdf
- canceling dset ./coads_climatology.cdf
+ canceling dset ./data/ocean_atlas_temp.cdf
+ canceling dset ./data/gt4d011.cdf
+ canceling dset ./data/levitus_climatology.cdf
+ canceling dset ./data/coads_climatology.cdf
! this line seems to be essential making the crash happen
PPL TICS .125,.25,.125,.25 !reset tics to default
@@ -100635,7 +100255,7 @@ list a[i=2]
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999
eval A C: 6 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
- attrib_val attr M:237 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
+ attrib_val attr M:221 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
VARIABLE : SST[D=coads_climatology].DIMNAMES
FILENAME : coads_climatology.cdf
X : 2
@@ -100645,10 +100265,10 @@ list a[i=2]
GO bn_reset
cancel mode verify
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
- -DELETE A M:238 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
+ -DELETE A M:224 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
- -DELETE attr M:237 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
- canceling dset ./coads_climatology.cdf
+ -DELETE attr M:221 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
+ canceling dset ./data/coads_climatology.cdf
ooooooooooooooooooooooooooooooooooooooooooo
GO err71_user_var_attrib
! err71_user_var_attrib.jnl
@@ -100878,7 +100498,7 @@ variables:
uave:history = "From 6dfile" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -100928,7 +100548,7 @@ variables:
uave:history = "From 6dfile" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -100975,7 +100595,7 @@ variables:
uave:history = "From 6dfile" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -101131,7 +100751,7 @@ variables:
BIN:history = "From shorttest.dat" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
@@ -101321,8 +100941,8 @@ let a1 = a*one
show grid a1
GRID (G175)
name axis # pts start end subset
- (AX125) X 1000 r 1 1000 1000 pts
- (AX125) Y 1000 r 1 1000 1000 pts
+ (AX102) X 1000 r 1 1000 1000 pts
+ (AX102) Y 1000 r 1 1000 1000 pts
normal Z
tax TIME 1000 r 01-JAN-0001 00:00 01-JAN-1000 06:10 full
say `a*one,return=cal`
@@ -101347,7 +100967,7 @@ stat co_emac
T: N/A
E: N/A
F: N/A
- DATA SET: ./co_emac.nc
+ DATA SET: ./data/co_emac.nc
Total # of data points: 48 (12*4*1*1*1*1)
# flagged as bad data: 4
@@ -102113,6 +101733,9 @@ LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
! the changes in results from old Ferret (particularly on @var)
+! clean up
+set mem/siz=25.6 ! return to the default setting
+
GO bn_reset bn_dynamic_gather
cancel mode verify
ooooooooooooooooooooooooooooooooooooooooooo
@@ -102155,8 +101778,8 @@ show data
currently SET data sets:
1> tmp/test_dyn_mem.nc (default)
name title I J K L
- v X[G=GG]+Y[G=GG]+Z[G=GG]+T[G=GG] 1:1000 1:1000 1:2 1:10
- v1000 X[GX=X10]+Y[GY=Y100]+Z[GZ=Z4]+T 1:10 1:100 1:4 1:1000
+ V X[G=GG]+Y[G=GG]+Z[G=GG]+T[G=GG] 1:1000 1:1000 1:2 1:10
+ V1000 X[GX=X10]+Y[GY=Y100]+Z[GZ=Z4]+T 1:10 1:100 1:4 1:1000
! excercise under the least strict memory management
@@ -102223,11 +101846,11 @@ show memory/all ! in memory following the last chunk
Peak demand: 6 megawords
Current cache: 6 megawords
all data in memory:
- V[D=test_dyn_mem] XYZ mr:228 size:4000000
+ V[D=test_dyn_mem] XYZ mr:208 size:4000000
1/0.5 1/0.5 1/0.5 ... /0.5
1000/1001 1000/1000.5 2/2.5 ... /10.5
AVE
- V[D=test_dyn_mem] XYZ mr:246 size:2000000
+ V[D=test_dyn_mem] XYZ mr:241 size:2000000
1/0.5 1/0.5 1/0.5 10/9.5
1000/1001 1000/1000.5 2/2.5 10/10.5
@@ -102308,15 +101931,15 @@ show memory/all ! in memory following the last chunk
Peak demand: 2.024 megawords
Current cache: 2.024 megawords
all data in memory:
- V[D=test_dyn_mem] XYZ mr:237 size:2000000
+ V[D=test_dyn_mem] XYZ mr:221 size:2000000
1/0.5 1/0.5 1/0.5 ... /0.5
1000/1001 1000/1000.5 2/2.5 ... /10.5
AVE
- V[D=test_dyn_mem] XZ mr:238 size:4000
+ V[D=test_dyn_mem] XZ mr:224 size:4000
1/0.5 1000/999.5 1/0.5 ... /0.5
1000/1001 1000/1000.5 2/2.5 ... /10.5
AVE
- V[D=test_dyn_mem] XZT mr:246 size:20000
+ V[D=test_dyn_mem] XZT mr:241 size:20000
1/0.5 1000/999.5 1/0.5 1/0.5
1000/1001 1000/1000.5 2/2.5 10/10.5
@@ -102417,16 +102040,13 @@ show memory/diagnostic ! split on Z-(T-Y,T-Y)
Last gather
Variable Axis Xform Chunk Repeated
V Z SUM 1 1
- V T SUM 1 1
- V Y AV4 989 10
- V T SUM 1 1
- V Y AV4 989 10
+ V Y AV4 98 2
Total table slots: 500
Free table slots: 496
Un-cached variables: 0
SET MEMORY/SIZE: 990000 words
- Peak demand: 989006 words
- Current cache: 11006 words
+ Peak demand: 980022 words
+ Current cache: 200024 words
cancel memory/all
! **************************************************
@@ -102443,14 +102063,13 @@ stat/brief v[x=@ave,y=@ave,z=@ave,L=@SUM]
show memory/diagnostic ! split on T-Y
Last gather
Variable Axis Xform Chunk Repeated
- V T SUM 1 1
- V Y AV4 494 10
+ V Y AV4 49 1
Total table slots: 500
Free table slots: 497
Un-cached variables: 0
SET MEMORY/SIZE: 990000 words
- Peak demand: 988004 words
- Current cache: 24004 words
+ Peak demand: 980020 words
+ Current cache: 400022 words
cancel memory/all
! **************************************************
@@ -102751,21 +102370,21 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
> Peak demand: 4.184 megawords
> Current cache: 4.524 megawords
68c68
-< V[D=test_dyn_mem] XYZ mr:224 size:4000000
+< V[D=test_dyn_mem] XYZ mr:204 size:4000000
---
-> V[D=test_dyn_mem] XYZ mr:208 size:2000000
+> V[D=test_dyn_mem] XYZ mr:188 size:2000000
72,73c72,77
-< V[D=test_dyn_mem] XYZ mr:243 size:2000000
+< V[D=test_dyn_mem] XYZ mr:232 size:2000000
< 1/0.5 1/0.5 1/0.5 10/9.5
---
-> V[D=test_dyn_mem] XYZ mr:224 size:360000
+> V[D=test_dyn_mem] XYZ mr:204 size:360000
> 1/0.5 911/910.5 1/0.5 ... /0.5
> 1000/1001 1000/1000.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:243 size:1800000
+> V[D=test_dyn_mem] XYZT mr:232 size:1800000
> 1/0.5 911/910.5 1/0.5 1/0.5
75a80,83
-> V[D=test_dyn_mem] XYZ mr:228 size:364000
+> V[D=test_dyn_mem] XYZ mr:208 size:364000
> 1/0.5 820/819.5 1/0.5 ... /0.5
> 1000/1001 910/910.5 2/2.5 ... /10.5
> AVE
@@ -102812,13 +102431,13 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
---
> Peak demand: 2.016 megawords
161,162c170,171
-< V[D=test_dyn_mem] XZT mr:243 size:20000
+< V[D=test_dyn_mem] XZT mr:232 size:20000
< 1/0.5 1000/999.5 1/0.5 1/0.5
---
-> V[D=test_dyn_mem] XZT mr:208 size:8000
+> V[D=test_dyn_mem] XZT mr:188 size:8000
> 1/0.5 1000/999.5 1/0.5 7/6.5
164a174,177
-> V[D=test_dyn_mem] XZT mr:243 size:12000
+> V[D=test_dyn_mem] XZT mr:232 size:12000
> 1/0.5 1000/999.5 1/0.5 1/0.5
> 1000/1001 1000/1000.5 2/2.5 6/6.5
>
@@ -102852,119 +102471,119 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
---
> Peak demand: 692002 words
> Current cache: 616002 words
-263c276
-< V Y AV4 989 10
+262c275
+< V Y AV4 98 2
---
-> V Y AV4 692 10
-265c278
-< V Y AV4 989 10
+> V Y AV4 69 2
+267,268c280,281
+< Peak demand: 980022 words
+< Current cache: 200024 words
---
-> V Y AV4 692 10
-270,271c283,284
-< Peak demand: 989006 words
-< Current cache: 11006 words
+> Peak demand: 690022 words
+> Current cache: 340024 words
+285c298
+< V Y AV4 49 1
---
-> Peak demand: 692006 words
-> Current cache: 308006 words
-289c302
-< V Y AV4 494 10
+> V Y AV4 34 1
+287c300
+< Free table slots: 497
---
-> V Y AV4 346 10
-294,295c307,308
-< Peak demand: 988004 words
-< Current cache: 24004 words
+> Free table slots: 496
+290,291c303,304
+< Peak demand: 980020 words
+< Current cache: 400022 words
---
-> Peak demand: 692004 words
-> Current cache: 616004 words
-312c325
+> Peak demand: 680020 words
+> Current cache: 960022 words
+308c321
< V Y AV4 24 1
---
> V Y AV4 17 1
-314c327
+310c323
< Free table slots: 494
---
> Free table slots: 492
-317,318c330,331
+313,314c326,327
< Peak demand: 480962 words
< Current cache: 802562 words
---
> Peak demand: 340682 words
> Current cache: 962602 words
-360c373
+356c369
< V1000 Z 3 1
---
> V1000 Z 2 1
-365,366c378,379
+361,362c374,375
< Peak demand: 3.108 megawords
< Current cache: 1.096 megawords
---
> Peak demand: 2.12 megawords
> Current cache: 2.096 megawords
-381c394
+377c390
< V1000 Y 22 1
---
> V1000 Y 15 1
-386,387c399,400
+382,383c395,396
< Peak demand: 959680 words
< Current cache: 544320 words
---
> Peak demand: 669600 words
> Current cache: 460000 words
-406a420
+402a416
> V1000 Z 2 99
-408c422
+404c418
< Free table slots: 496
---
> Free table slots: 493
-411,412c425,426
+407,408c421,422
< Peak demand: 89440 words
< Current cache: 88960 words
---
> Peak demand: 69200 words
> Current cache: 89440 words
-434c448
+430c444
< V T AVE 1 1
---
> V Y AVE 91 1
-436c450
+432c446
< Free table slots: 498
---
> Free table slots: 496
-439,440c453,454
+435,436c449,450
< Peak demand: 3 megawords
< Current cache: 3 megawords
---
> Peak demand: 2.092 megawords
> Current cache: 2.262 megawords
-457c471
+453c467
< A Y AVE 47 1
---
> A Y AVE 26 1
-459c473
+455c469
< Free table slots: 491
---
> Free table slots: 487
-462,463c476,477
+458,459c472,473
< Peak demand: 1.94 megawords
< Current cache: 2.884 megawords
---
> Peak demand: 1.52 megawords
> Current cache: 2.98 megawords
-476c490
+472c486
< D Y AVE 47 1
---
> D Y AVE 26 1
-478c492
+474c488
< Free table slots: 489
---
> Free table slots: 487
-481,482c495,496
+477,478c491,492
< Peak demand: 2.41 megawords
< Current cache: 2.84 megawords
---
> Peak demand: 1.78 megawords
> Current cache: 2.836 megawords
-514,517c528,531
+510,513c524,527
< A T AVE 1 1
< B Y AVE 71 1
< C Y AVE 47 1
@@ -102974,33 +102593,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
> B Y AVE 59 1
> C Y AVE 42 1
> D Y AVE 26 1
-519c533
+515c529
< Free table slots: 487
---
> Free table slots: 484
-522,523c536,537
+518,519c532,533
< Peak demand: 2.845 megawords
< Current cache: 2.979 megawords
---
> Peak demand: 2.39 megawords
> Current cache: 2.918 megawords
-538,539c552,553
+534,535c548,549
< A Y AVE 47 1
< B Y AVE 23 1
---
> A Y AVE 26 1
> B Y AVE 9 1
-541c555
+537c551
< Free table slots: 491
---
> Free table slots: 481
-544,545c558,559
+540,541c554,555
< Peak demand: 2.46 megawords
< Current cache: 2.794 megawords
---
> Peak demand: 2.18 megawords
> Current cache: 2.922 megawords
-551c565
+547c561
< ! excercise under the default memory management
---
> ! excercise under pretty strict memory management
@@ -103039,93 +102658,93 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
> Peak demand: 2.384 megawords
> Current cache: 5.712 megawords
68c68
-< V[D=test_dyn_mem] XYZ mr:224 size:4000000
+< V[D=test_dyn_mem] XYZ mr:204 size:4000000
---
-> V[D=test_dyn_mem] XYZ mr:241 size:2000000
+> V[D=test_dyn_mem] XYZ mr:229 size:2000000
72,73c72,77
-< V[D=test_dyn_mem] XYZ mr:243 size:2000000
+< V[D=test_dyn_mem] XYZ mr:232 size:2000000
< 1/0.5 1/0.5 1/0.5 10/9.5
---
-> V[D=test_dyn_mem] XYZ mr:226 size:32000
+> V[D=test_dyn_mem] XYZ mr:205 size:32000
> 1/0.5 993/992.5 1/0.5 ... /0.5
> 1000/1001 1000/1000.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:178 size:160000
+> V[D=test_dyn_mem] XYZT mr:157 size:160000
> 1/0.5 993/992.5 1/0.5 1/0.5
75a80,155
-> V[D=test_dyn_mem] XYZ mr:176 size:64000
+> V[D=test_dyn_mem] XYZ mr:151 size:64000
> 1/0.5 977/976.5 1/0.5 ... /0.5
> 1000/1001 992/992.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:194 size:320000
+> V[D=test_dyn_mem] XYZT mr:175 size:320000
> 1/0.5 977/976.5 1/0.5 1/0.5
> 1000/1001 992/992.5 2/2.5 10/10.5
>
-> V[D=test_dyn_mem] XYZ mr:186 size:64000
+> V[D=test_dyn_mem] XYZ mr:170 size:64000
> 1/0.5 961/960.5 1/0.5 ... /0.5
> 1000/1001 976/976.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:208 size:320000
+> V[D=test_dyn_mem] XYZT mr:188 size:320000
> 1/0.5 961/960.5 1/0.5 1/0.5
> 1000/1001 976/976.5 2/2.5 10/10.5
>
-> V[D=test_dyn_mem] XYZ mr:202 size:64000
+> V[D=test_dyn_mem] XYZ mr:185 size:64000
> 1/0.5 945/944.5 1/0.5 ... /0.5
> 1000/1001 960/960.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:224 size:320000
+> V[D=test_dyn_mem] XYZT mr:204 size:320000
> 1/0.5 945/944.5 1/0.5 1/0.5
> 1000/1001 960/960.5 2/2.5 10/10.5
>
-> V[D=test_dyn_mem] XYZ mr:218 size:64000
+> V[D=test_dyn_mem] XYZ mr:198 size:64000
> 1/0.5 929/928.5 1/0.5 ... /0.5
> 1000/1001 944/944.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:234 size:320000
+> V[D=test_dyn_mem] XYZT mr:215 size:320000
> 1/0.5 929/928.5 1/0.5 1/0.5
> 1000/1001 944/944.5 2/2.5 10/10.5
>
-> V[D=test_dyn_mem] XYZ mr:228 size:64000
+> V[D=test_dyn_mem] XYZ mr:208 size:64000
> 1/0.5 913/912.5 1/0.5 ... /0.5
> 1000/1001 928/928.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:238 size:320000
+> V[D=test_dyn_mem] XYZT mr:224 size:320000
> 1/0.5 913/912.5 1/0.5 1/0.5
> 1000/1001 928/928.5 2/2.5 10/10.5
>
-> V[D=test_dyn_mem] XYZ mr:237 size:64000
+> V[D=test_dyn_mem] XYZ mr:221 size:64000
> 1/0.5 897/896.5 1/0.5 ... /0.5
> 1000/1001 912/912.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:243 size:320000
+> V[D=test_dyn_mem] XYZT mr:232 size:320000
> 1/0.5 897/896.5 1/0.5 1/0.5
> 1000/1001 912/912.5 2/2.5 10/10.5
>
-> V[D=test_dyn_mem] XYZ mr:240 size:64000
+> V[D=test_dyn_mem] XYZ mr:228 size:64000
> 1/0.5 881/880.5 1/0.5 ... /0.5
> 1000/1001 896/896.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:247 size:320000
+> V[D=test_dyn_mem] XYZT mr:245 size:320000
> 1/0.5 881/880.5 1/0.5 1/0.5
> 1000/1001 896/896.5 2/2.5 10/10.5
>
-> V[D=test_dyn_mem] XYZ mr:244 size:64000
+> V[D=test_dyn_mem] XYZ mr:235 size:64000
> 1/0.5 865/864.5 1/0.5 ... /0.5
> 1000/1001 880/880.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:248 size:320000
+> V[D=test_dyn_mem] XYZT mr:246 size:320000
> 1/0.5 865/864.5 1/0.5 1/0.5
> 1000/1001 880/880.5 2/2.5 10/10.5
>
-> V[D=test_dyn_mem] XYZ mr:249 size:64000
+> V[D=test_dyn_mem] XYZ mr:247 size:64000
> 1/0.5 849/848.5 1/0.5 ... /0.5
> 1000/1001 864/864.5 2/2.5 ... /10.5
> AVE
-> V[D=test_dyn_mem] XYZT mr:216 size:320000
+> V[D=test_dyn_mem] XYZT mr:197 size:320000
> 1/0.5 849/848.5 1/0.5 1/0.5
> 1000/1001 864/864.5 2/2.5 10/10.5
>
-> V[D=test_dyn_mem] XYZ mr:239 size:64000
+> V[D=test_dyn_mem] XYZ mr:227 size:64000
> 1/0.5 833/832.5 1/0.5 ... /0.5
> 1000/1001 848/848.5 2/2.5 ... /10.5
> AVE
@@ -103172,33 +102791,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
---
> Peak demand: 2.008 megawords
153c234
-< V[D=test_dyn_mem] XYZ mr:228 size:2000000
+< V[D=test_dyn_mem] XYZ mr:208 size:2000000
---
-> V[D=test_dyn_mem] XYZ mr:247 size:2000000
+> V[D=test_dyn_mem] XYZ mr:245 size:2000000
157c238
-< V[D=test_dyn_mem] XZ mr:238 size:4000
+< V[D=test_dyn_mem] XZ mr:224 size:4000
---
-> V[D=test_dyn_mem] XZ mr:248 size:4000
+> V[D=test_dyn_mem] XZ mr:246 size:4000
161,162c242,243
-< V[D=test_dyn_mem] XZT mr:243 size:20000
+< V[D=test_dyn_mem] XZT mr:232 size:20000
< 1/0.5 1000/999.5 1/0.5 1/0.5
---
-> V[D=test_dyn_mem] XZT mr:241 size:4000
+> V[D=test_dyn_mem] XZT mr:229 size:4000
> 1/0.5 1000/999.5 1/0.5 9/8.5
164a246,261
-> V[D=test_dyn_mem] XZT mr:243 size:4000
+> V[D=test_dyn_mem] XZT mr:232 size:4000
> 1/0.5 1000/999.5 1/0.5 7/6.5
> 1000/1001 1000/1000.5 2/2.5 8/8.5
>
-> V[D=test_dyn_mem] XZT mr:244 size:4000
+> V[D=test_dyn_mem] XZT mr:235 size:4000
> 1/0.5 1000/999.5 1/0.5 5/4.5
> 1000/1001 1000/1000.5 2/2.5 6/6.5
>
-> V[D=test_dyn_mem] XZT mr:245 size:4000
+> V[D=test_dyn_mem] XZT mr:236 size:4000
> 1/0.5 1000/999.5 1/0.5 3/2.5
> 1000/1001 1000/1000.5 2/2.5 4/4.5
>
-> V[D=test_dyn_mem] XZT mr:249 size:4000
+> V[D=test_dyn_mem] XZT mr:247 size:4000
> 1/0.5 1000/999.5 1/0.5 1/0.5
> 1000/1001 1000/1000.5 2/2.5 2/2.5
>
@@ -103244,151 +102863,147 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
---
> Peak demand: 394002 words
> Current cache: 818002 words
-263c360
-< V Y AV4 989 10
----
-> V Y AV4 395 10
-265c362
-< V Y AV4 989 10
+262c359
+< V Y AV4 98 2
---
-> V Y AV4 395 10
-267c364
+> V Y AV4 39 2
+264c361
< Free table slots: 496
---
> Free table slots: 495
-270,271c367,368
-< Peak demand: 989006 words
-< Current cache: 11006 words
+267,268c364,365
+< Peak demand: 980022 words
+< Current cache: 200024 words
---
-> Peak demand: 395006 words
-> Current cache: 605006 words
-289c386
-< V Y AV4 494 10
+> Peak demand: 390022 words
+> Current cache: 640024 words
+285c382
+< V Y AV4 49 1
---
-> V Y AV4 197 10
-291c388
+> V Y AV4 19 1
+287c384
< Free table slots: 497
---
-> Free table slots: 495
-294,295c391,392
-< Peak demand: 988004 words
-< Current cache: 24004 words
+> Free table slots: 496
+290,291c387,388
+< Peak demand: 980020 words
+< Current cache: 400022 words
---
-> Peak demand: 394004 words
-> Current cache: 818004 words
-312c409
+> Peak demand: 380020 words
+> Current cache: 620022 words
+308c405
< V Y AV4 24 1
---
> V Y AV4 9 1
-314c411
+310c407
< Free table slots: 494
---
> Free table slots: 486
-317,318c414,415
+313,314c410,411
< Peak demand: 480962 words
< Current cache: 802562 words
---
> Peak demand: 180362 words
> Current cache: 922202 words
-339c436,438
+335c432,434
< No split/gather occurred in the last evaluation
---
> Last gather
> Variable Axis Xform Chunk Repeated
> V1000 Z 3 1
-341c440
+337c436
< Free table slots: 498
---
> Free table slots: 495
-344,345c443,444
+340,341c439,440
< Peak demand: 4.144 megawords
< Current cache: 4.048 megawords
---
> Peak demand: 3.108 megawords
> Current cache: 4.096 megawords
-360c459
+356c455
< V1000 Z 3 1
---
> V1000 Z 1 1
-362c461
+358c457
< Free table slots: 496
---
> Free table slots: 492
-365,366c464,465
+361,362c460,461
< Peak demand: 3.108 megawords
< Current cache: 1.096 megawords
---
> Peak demand: 1.084 megawords
> Current cache: 3.096 megawords
-381c480
+377c476
< V1000 Y 22 1
---
> V1000 Y 8 1
-383c482
+379c478
< Free table slots: 496
---
> Free table slots: 492
-386,387c485,486
+382,383c481,482
< Peak demand: 959680 words
< Current cache: 544320 words
---
> Peak demand: 379520 words
> Current cache: 861440 words
-406a506
+402a502
> V1000 Z 3 100
-408c508
+404c504
< Free table slots: 496
---
> Free table slots: 488
-411,412c511,512
+407,408c507,508
< Peak demand: 89440 words
< Current cache: 88960 words
---
> Peak demand: 58840 words
> Current cache: 89560 words
-434c534
+430c530
< V T AVE 1 1
---
> V Y AVE 16 1
-436c536
+432c532
< Free table slots: 498
---
> Free table slots: 478
-439,440c539,540
+435,436c535,536
< Peak demand: 3 megawords
< Current cache: 3 megawords
---
> Peak demand: 1.192 megawords
> Current cache: 2.856 megawords
-457c557
+453c553
< A Y AVE 47 1
---
> A Y AVE 4 1
-459c559
+455c555
< Free table slots: 491
---
> Free table slots: 431
-462,463c562,563
+458,459c558,559
< Peak demand: 1.94 megawords
< Current cache: 2.884 megawords
---
> Peak demand: 1.08 megawords
> Current cache: 2.984 megawords
-476c576
+472c572
< D Y AVE 47 1
---
> D Y AVE 4 1
-478c578
+474c574
< Free table slots: 489
---
> Free table slots: 442
-481,482c581,582
+477,478c577,578
< Peak demand: 2.41 megawords
< Current cache: 2.84 megawords
---
> Peak demand: 1.12 megawords
> Current cache: 2.992 megawords
-514,517c614,617
+510,513c610,613
< A T AVE 1 1
< B Y AVE 71 1
< C Y AVE 47 1
@@ -103398,33 +103013,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
> B Y AVE 23 1
> C Y AVE 14 1
> D Y AVE 4 1
-519c619
+515c615
< Free table slots: 487
---
> Free table slots: 439
-522,523c622,623
+518,519c618,619
< Peak demand: 2.845 megawords
< Current cache: 2.979 megawords
---
> Peak demand: 2.06 megawords
> Current cache: 2.996 megawords
-538,539c638,639
+534,535c634,635
< A Y AVE 47 1
< B Y AVE 23 1
---
> A Y AVE 4 1
> B Y AVE 9 1
-541c641
+537c637
< Free table slots: 491
---
> Free table slots: 481
-544,545c644,645
+540,541c640,641
< Peak demand: 2.46 megawords
< Current cache: 2.794 megawords
---
> Peak demand: 2.18 megawords
> Current cache: 2.922 megawords
-551d650
+547d646
< ! excercise under the default memory management
@@ -103434,6 +103049,9 @@ SET MODE FRUGAL:95
SET MODE/LAST IGNORE
+! clean up
+set mem/siz=25.6 ! return to the default setting
+
GO bn_reset bn_stat_precision
cancel mode verify
ooooooooooooooooooooooooooooooooooooooooooo
@@ -104018,7 +103636,7 @@ GO bn_cache_management
! So if no split-gather is performed, Ferret requires ~12+25=37 Mwords
DEFINE SYMBOL saved_memory_size = ($FERRET_MEMORY)
- !-> DEFINE SYMBOL saved_memory_size = 3
+ !-> DEFINE SYMBOL saved_memory_size = 25.6
SET MEMORY/SIZE=20
CANCEL MEMORY/ALL
@@ -104428,7 +104046,7 @@ spawn cat test_auto_cache.out
! clean up
SET MEMORY/SIZE=($saved_memory_size)
- !-> SET MEMORY/SIZE=3
+ !-> SET MEMORY/SIZE=25.6
GO bn_reset bn_transp_choose
cancel mode verify
@@ -105095,9 +104713,10 @@ list b2d[gf=aline_edges at iin]
! *********** v7.21 Additions ***********
-GO bn_reset
+GO bn_reset bn721_bug_fixes
cancel mode verify
ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn721_bug_fixes
GO bn721_bug_fixes
! bn721_bug_fixes.jnl
! test various fixes that went into version 7.21
@@ -105160,7 +104779,7 @@ list sst.dimnames[i=2:3]
FILENAME : coads_climatology.cdf
SUBSET : 2 points (X)
2 / 2:"COADSY"
- 3 / 3:"TIME10"
+ 3 / 3:"TIME20"
let dnames = sst.dimnames
list dnames[i=2]
@@ -105241,6 +104860,867 @@ list yvar[j=@sum]
0.0000
+! *********** v7.22 Additions ***********
+
+GO bn_reset bn722_bug_fixes
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn722_bug_fixes
+GO bn722_bug_fixes
+! bn721_bug_fixes.jnl
+! test various fixes that went into version 7.22
+! 9/17 *acm*
+!
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dynamic_gather
+! err72_dynamic_gather.jnl
+! 9/25/2017 Ticket 2561
+! Combination of two transforms, and
+
+cancel data/all
+cancel memory
+
+! dataset from bn_dynamic_gather.jnl
+use tmp/test_dyn_mem.nc
+
+! w/ default amount of memory this doesn't need a split-gather
+! This result is correct
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+ 2236000.
+show memory/diag
+ No split/gather occurred in the last evaluation
+ Total table slots: 500
+ Free table slots: 497
+ Un-cached variables: 0
+ SET MEMORY/SIZE: 25.6 megawords
+ Peak demand: 4.008 megawords
+ Current cache: 4.008002 megawords
+
+! Now use smaller memory, so it'll split/gather in the T
+! direction. The answer in v7.2 was wrong.
+cancel memory
+set mem/siz=10
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+ 2236000.
+show memory/diag
+ Last gather
+ Variable Axis Xform Chunk Repeated
+ V1000 T AV4 997 1
+ Total table slots: 500
+ Free table slots: 494
+ Un-cached variables: 0
+ SET MEMORY/SIZE: 10 megawords
+ Peak demand: 3.995976 megawords
+ Current cache: 4.012002 megawords
+
+! With an even smaller amount of memory, a different
+! incorrect result was listed with v7.2.
+cancel memory
+set mem/siz=1
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@SUM]
+ 2236000.
+sh mem/diag
+ Last gather
+ Variable Axis Xform Chunk Repeated
+ V1000 T AV4 98 1
+ Total table slots: 500
+ Free table slots: 491
+ Un-cached variables: 0
+ SET MEMORY/SIZE: 1000000 words
+ Peak demand: 396784 words
+ Current cache: 870514 words
+
+set mem/siz=25.6 ! return to the default setting
+
+
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_polymark_log
+
+! err721_polymark_log.jnl
+! Ticket 2562, polymark and other polygons over log axis.
+! 9/26/17 ACM
+
+let frqs = {0.01,0.011,0.012,0.013,0.014,0.015,0.025,0.026,0.027,0.028,\
+0.029,0.03,0.031,0.032,0.033,0.08,0.108,0.135,0.193,0.194,0.195,0.196,\
+0.197,0.227,0.228,0.229,0.255,0.256,0.31,0.311,0.312,0.362,0.363,0.364}
+
+let phas = {61.099,68.796,79.686,80.292, 104.212, 121.192,93.757,\
+102.549,115.240,112.831,103.433,102.032,105.109,104.216,93.173,-7.041,\
+-133.985,-162.018,161.157,154.128,146.717,140.252,132.944,-29.014,\
+-34.848,-38.376,-109.836,-119.620,12.858,17.047,22.327,-167.776,-169.991,-165.467}
+
+! Plots with /HLOG
+set v ul
+plot/hlog/vs/vlim=-180:180:45/nolabs/hlim=0.001:0.1 frqs,phas
+go polymark poly/hlog/over/nolabs/nokey/line/pal=red frqs, phas 1 square 0.6
+
+
+! more dynamic range
+set v ur
+let frq2 = XCAT(frqs, 10*frqs)
+let phas2 = XCAT(phas,phas)
+plot/hlog/vs/vlim=-180:180:45/nolabs frq2, phas2
+go polymark poly/hlog/over/nolabs/nokey/line/pal=green frq2, phas2 1 delta 0.8
+
+
+! more decades still
+set v ll
+let var3 = XCAT(0.1*frqs, frq2)
+let phas3 = XCAT(phas,phas2)
+plot/hlog/vs/vlim=-180:180:45/nolabs var3, phas3
+go polymark poly/hlog/over/nolabs/nokey/line/pal=purple_light var3, phas3 1 star 1.1
+
+
+! /VLOG
+set v lr
+plot/vlog/vs/hlim=-180:180:45/nolabs phas3, var3
+go polymark poly/vlog/over/nolabs/nokey/line/pal=blue_light phas3, var3 1 circle 0.7
+
+
+! Note /VLOG/HLOG together make a blank plot. Not worrying about that now.
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_letd_with_grave
+! err721_letd_with_grave
+! 10/6/17 ACM
+! See ticket 2563. Error parsing the grave-accent expr
+! because of the quotes around datset path and name.
+
+use "data/proleptic_gregorian.nc"
+
+! This is fine
+let/d="data/proleptic_gregorian.nc" var1 = my_data + 1
+
+! This resulted in an error
+let/d="data/proleptic_gregorian.nc" var2 = my_data - `my_data[L=@ave]`
+ !-> DEFINE VARIABLE/d="data/proleptic_gregorian.nc" var2 = my_data - 0.0133574854990002
+show data
+ currently SET data sets:
+ 1> data/proleptic_gregorian.nc (default)
+ name title I J K L
+ MY_DATA SIN(L[GT=TDAYS]) ... ... ... 1:32
+ ------------------------------
+ var2[D=proleptic_gregorian] = MY_DATA - 0.0133574854990002
+ var1[D=proleptic_gregorian] = MY_DATA + 1
+
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_color_levels
+! err721_color_levels
+! 10/11/2017 ACM
+! Ticket 2564, setting up color palette and levels for the second
+! plot caused a STOP in PyFerret or in Ferret the gks error message
+! gsetcolourrep() 96 Colour is outside range [0,1]
+
+
+let fcn = 0.5*COS(J[j=1:100]/30)+SIN(K[k=1:100]/20)
+fill/pal=land_sea_values/lev=vc 7000*fcn
+
+fill/pal=ocean_temp_bounds/lev=(-2,35,2) 18.5*fcn
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dup_labels
+! err721_dup_labels.jnl
+! ticket 2565
+! 10/13/17 ACM
+
+set mode logo
+use err721_dup_labels.nc
+
+! Draw time plot
+plot new_val
+ppl list labels
+ @ACRESHAPE(V,XTMS)
+
+
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 1.120E+01 5.100E+00 0.060 0 SYSTEM @ASFERRET (beta/debug) Ver.7.23
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 2 1.120E+01 5.000E+00 0.060 0 SYSTEM @ASNOAA/PMEL TMAP
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 3 1.120E+01 4.900E+00 0.060 0 SYSTEM @AS29-NOV-2017 17:37:59
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 4 1.120E+01 4.530E+00 0.120 0 SYSTEM @ASDATA SET: err721_dup_labels
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB 5 5.600E+00 4.230E+00 0.120 0 SYSTEM @A
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+
+! Overlay plots should add only the new labels needed. Ferret has
+! always redrawn them all, which was harmless. Now, only draw the
+! ones needed for each new /overlay
+
+plot/over/vs/line/color=green/title="deployment mean" {284.375, 285.5}, {3472.8, 3472.8}
+ppl list labels
+
+ @AS{284.375, 285.5}
+
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 -4.700E-01 -5.500E-01 0.080 0 SYSTEM @ASdeployment mean
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+plot/over/vs/line/color=red/title="HC mean" {284.375, 285.5}, {3472.9, 3472.9}
+ppl list labels
+
+ @AS{284.375, 285.5}
+
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 -4.700E-01 -7.300E-01 0.080 0 SYSTEM @ASHC mean
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+plot/over/vs/line/color=purple/nolab {284.42, 284.42}, {3472.6, 3473.1}
+
+! This caused labels below the plot way over to the right by the line
+plot/over/vs/line/color=purple/title="purple" {285.4, 285.4}, {3472.6, 3473.1}
+ppl list labels
+
+ @AS{285.4, 285.4}
+
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 -4.700E-01 -9.100E-01 0.080 0 SYSTEM @ASpurple
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+
+set mode/last logo
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_plotuv
+! err721_plotuv.jnl
+! Ticket 2566: text size of zero causes graphics library errors
+!
+
+if ($program_name"0|PyFerret>1|*>0") then set text/font=arial
+ !-> if 0 then set text/font=arial
+
+! In PyFerret with -nodisplay a Cairo error on the zero-length
+! text size caused an ERROR and exit. Without -nodisplay it
+! issued errors and used some nominal size
+
+use coads_climatology
+let uwnd = sst
+let vwnd = -1*sst
+
+plot/set/x=180/y=0 uwnd,vwnd
+ppl axlsze,0,0
+ ppl plotuv 0,1
+
+if ($program_name"0|PyFerret>1|*>0") then cancel text
+ !-> if 0 then cancel text
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_ascii_size
+! err721_ascii_size.jnl
+! ACM 10/25/2017 Ticket 2567
+! Initializing an EZ dataset mis-counts the size until data is loaded
+
+file/var="t1,t2"/skip=1 err721_ascii_size.dat
+show data
+ currently SET data sets:
+ 1> ./data/err721_ascii_size.dat (default)
+ name title I J K L
+ t1 t1 1:3 ... ... ...
+ t2 t2 1:3 ... ... ...
+
+say `t1,return=iend`
+ !-> MESSAGE/CONTINUE 3
+3
+load t1
+say `t1,return=iend`
+ !-> MESSAGE/CONTINUE 3
+3
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dot_grid
+! err721_dot_grid
+
+!!!! using dot_t(v1,v2) works fine
+
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot_t(v1,v2)
+
+show grid dp
+ GRID (G190)
+ name axis # pts start end subset
+ xaxis X 3 r 1 3 full
+ normal Y
+ normal Z
+ normal T
+
+list dp
+ VARIABLE : DOT_T(V1,V2)
+ SUBSET : 3 points (X)
+ 1 / 1: 0.0368
+ 2 / 2: 0.1471
+ 3 / 3: 0.3310
+
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+
+!!!! using dot(v1,v2,4) gives the correct results
+
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot(v1,v2,4)
+
+! It would be nice if this showed the right grid with NO t axis.
+show grid dp
+ GRID XTGRID
+ name axis # pts start end subset
+ xaxis X 3 r 1 3 full
+ normal Y
+ normal Z
+ taxis_dc T 240 r 0 59.75 full
+list dp
+ VARIABLE : DOT(V1,V2,4)
+ SUBSET : 3 points (X)
+ 1 / 1: 0.0368
+ 2 / 2: 0.1471
+ 3 / 3: 0.3310
+
+! but, at least cancel axis taxis_dc is ok
+! Previously the "can axis taxis_dc" failed.
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_stride_size
+! err721_stride_size.jnl
+! SHOW DATA and RETURN=isize were
+! not updated with new size on a SET AXIS/STRIDE
+! *ACM* 11/29/2017 github issue 1843
+
+use coads_climatology
+set axis/stride=5 `sst,return=xaxis`
+ !-> set axis/stride=5 COADSX
+
+! Should show new size for x axis
+show grid sst
+ GRID GSQ1
+ name axis # pts start end subset
+ (AX125) LONGITUDE 36mr 21E 11E(371) full
+ COADSY LATITUDE 90 r 89S 89N full
+ normal Z
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+say `sst,return=isize`
+ !-> MESSAGE/CONTINUE 36
+36
+
+! Restore axis, back to size 180
+cancel axis/stride `sst,return=xaxis`
+ !-> cancel axis/stride (AX125)
+show grid sst
+ GRID GSQ1
+ name axis # pts start end subset
+ COADSX LONGITUDE 180mr 21E 19E(379) full
+ COADSY LATITUDE 90 r 89S 89N full
+ normal Z
+ TIME20 TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+say `sst,return=isize`
+ !-> MESSAGE/CONTINUE 180
+180
+
+! Irregular axis
+
+USE truemonth.nc
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 239
+239
+SET AXIS/STRIDE=12/OFFSET=0 `var,return=taxis` ! every January
+ !-> SET AXIS/STRIDE=12/OFFSET=0 TRUEMONTH3
+LIST var
+ VARIABLE : COS(T[GT=TRUEMONTH]/100)
+ FILENAME : truemonth.nc
+ SUBSET : 20 points (TIME)
+ 16-JAN-1950 / 1: 0.8459
+ 16-JAN-1951 / 2: -0.4792
+ 16-JAN-1952 / 3: -0.0086
+ 16-JAN-1953 / 4: 0.5030
+ 16-JAN-1954 / 5: -0.8601
+ 16-JAN-1955 / 6: 0.9996
+ 16-JAN-1956 / 7: -0.8863
+ 16-JAN-1957 / 8: 0.5404
+ 16-JAN-1958 / 9: -0.0625
+ 16-JAN-1959 / 10: -0.4313
+ 16-JAN-1960 / 11: 0.8159
+ 16-JAN-1961 / 12: -0.9952
+ 16-JAN-1962 / 13: 0.9170
+ 16-JAN-1963 / 14: -0.6068
+ 16-JAN-1964 / 15: 0.1432
+ 16-JAN-1965 / 16: 0.3660
+ 16-JAN-1966 / 17: -0.7727
+ 16-JAN-1967 / 18: 0.9840
+ 16-JAN-1968 / 19: -0.9463
+ 16-JAN-1969 / 20: 0.6618
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 20
+20
+
+can axis/stride `var,return=taxis`
+ !-> can axis/stride (AX102)
+sh grid var
+ GRID GRZ1
+ name axis # pts start end subset
+ normal X
+ normal Y
+ normal Z
+ TRUEMONTH3 TIME 239 i 16-JAN-1950 12:00 16-NOV-1969 00:00 full
+SET AXIS/STRIDE=12/OFFSET=2 `var,return=taxis` ! every March
+ !-> SET AXIS/STRIDE=12/OFFSET=2 TRUEMONTH3
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 22
+22
+list var
+ VARIABLE : COS(T[GT=TRUEMONTH]/100)
+ FILENAME : truemonth.nc
+ SUBSET : 20 points (TIME)
+ 16-MAR-1950 / 1: 0.4061
+ 16-MAR-1951 / 2: 0.0901
+ 16-MAR-1952 / 3: -0.5718
+ 16-MAR-1953 / 4: 0.8988
+ 16-MAR-1954 / 5: -0.9985
+ 16-MAR-1955 / 6: 0.8456
+ 16-MAR-1956 / 7: -0.4700
+ 16-MAR-1957 / 8: -0.0191
+ 16-MAR-1958 / 9: 0.5034
+ 16-MAR-1959 / 10: -0.8603
+ 16-MAR-1960 / 11: 0.9999
+ 16-MAR-1961 / 12: -0.8814
+ 16-MAR-1962 / 13: 0.5400
+ 16-MAR-1963 / 14: -0.0620
+ 16-MAR-1964 / 15: -0.4407
+ 16-MAR-1965 / 16: 0.8219
+ 16-MAR-1966 / 17: -0.9952
+ 16-MAR-1967 / 18: 0.9168
+ 16-MAR-1968 / 19: -0.5985
+ 16-MAR-1969 / 20: 0.1328
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 22
+22
+
+
+GO bn_reset bn_tseries_modulo
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_tseries_modulo
+GO bn_tseries_modulo
+! bn_tseries_modulo.jnl
+! 9/2017 TSERIES aggregations
+!
+! If a time axis lies within year 0 or year 1 they are seen by ferret
+! as modulo. For a tseries aggregation, if the entire aggregated axis
+! is still modulo, then mark it as such, but otherwise it is not modulo.
+!
+! The time axes for these files both lie within year 0.
+! The aggregation has a modulo time axis.
+
+tseries heat_0a.nc, heat_0b.nc
+show grid total_ocean_sens_heat
+ GRID GMI1
+ name axis # pts start end subset
+ scalar_axis LONGITUDE 1 r 0E 0E full
+ normal Y
+ normal Z
+ TIME28 TIME 7mi 16-JAN 12:00 16-NOV 00:00 full
+
+! The file heat_01 lies in year 1 so the total TSERIES length is longer than a year.
+
+can dat/all
+tseries heat_0a.nc, heat_0b.nc, heat_01.nc
+show grid total_ocean_sens_heat
+ GRID GMI1
+ name axis # pts start end subset
+ scalar_axis LONGITUDE 1 r 0E 0E full
+ normal Y
+ normal Z
+ TIME28 TIME 19 i 16-JAN-0000 12:00 16-DEC-0002 12:00 full
+
+! Here is the example reported by Russ Fiedler, 9/5/17, on the Ferret list.
+! A file in year 1 and a file in year 2 were previously made into a 24-month
+! axis which was marked as modulo.
+
+can dat/all
+tseries heat_00.nc, heat_01.nc
+show grid total_ocean_sens_heat
+ GRID GAT1
+ name axis # pts start end subset
+ scalar_axis LONGITUDE 1 r 0E 0E full
+ normal Y
+ normal Z
+ TIME28 TIME 24 i 16-JAN-0001 12:00 16-DEC-0002 12:00 full
+
+
+! What happens with files that are members of our descriptor examples?
+! (coads_clim.003 needed changing to have the same time-axis name)
+
+tseries coads_clim_irreg = coads_clim.001, coads_clim.003
+show grid sst
+ GRID GMU1
+ name axis # pts start end subset
+ COADSX LONGITUDE 180mr 21E 19E(379) full
+ COADSY LATITUDE 90 r 89S 89N full
+ normal Z
+ TIME29 TIME 4mi 16-JAN 06:00 16-JUN 10:25 full
+list/x=180/y=0 sst
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_clim_irreg
+ SUBSET : 4 points (TIME)
+ LONGITUDE: 179E
+ LATITUDE : 1S
+ 179E
+ 80
+ 16-JAN / 1: 28.20
+ 15-FEB / 2: 28.36
+ 16-MAY / 3: 28.49
+ 16-JUN / 4: 28.32
+
+! This descriptor file lists the same datasets, which each contain two
+! timesteps, but it lists S_START = S_END on the second set so it reads
+! just one timestep from coads_clim.003
+
+! The descriptor-file code does not mark the axis as modulo.
+! (Not changing this at this time.)
+
+can data/all
+use coads_clim_irreg.des
+show grid sst
+ GRID GJR5
+ name axis # pts start end subset
+ COADSX LONGITUDE 180mr 21E 19E(379) full
+ COADSY LATITUDE 90 r 89S 89N full
+ normal Z
+ TIME28 TIME 3 i 16-JAN-1900 06:00 17-MAY-1900 23:56 full
+list/x=180/y=0 sst
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ DATA SET : COAD
+ FILENAME : coads_clim_irreg.des
+ SUBSET : 3 points (TIME)
+ LONGITUDE: 179E
+ LATITUDE : 1S
+ 179E
+ 80
+ 16-JAN-1900 / 1: 28.20
+ 15-FEB-1900 / 2: 28.36
+ 17-MAY-1900 / 3: 28.49
+
+GO bn_reset bn_huge_axis
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_huge_axis
+GO bn_huge_axis
+! bn_huge_axis
+! 9/14/17 Dynamic coordinate storage
+! Defining extra-long coordinate axes, and save to a file
+! Use a dataset with extra-long coordinate axis.
+
+! Previously this would have given a program-limit-reached error
+let yy = if y[j=1:900000] eq 10 then 10.1 else y[j=1:900000]
+define axis/y longyax = yy
+
+let/bad=0 var = y[gy=longyax]
+
+list/j=5:15 var
+ VARIABLE : Y[GY=LONGYAX]
+ SUBSET : 11 points (Y)
+ 5 / 5: 5.00
+ 6 / 6: 6.00
+ 7 / 7: 7.00
+ 8 / 8: 8.00
+ 9 / 9: 9.00
+ 10.1 / 10: 10.10
+ 11 / 11: 11.00
+ 12 / 12: 12.00
+ 13 / 13: 13.00
+ 14 / 14: 14.00
+ 15 / 15: 15.00
+save/clobber/file=a.nc/outtype=int var
+
+! Previously issued a limit-on-storage-for-coordinates error
+can var/all
+can axis longyax
+
+use a
+show dat
+ currently SET data sets:
+ 1> ./a.nc (default)
+ name title I J K L
+ var Y[GY=LONGYAX] ... 1:900000 ... ...
+
+list/j=5:15 var
+ VARIABLE : Y[GY=LONGYAX]
+ FILENAME : a.nc
+ SUBSET : 11 points (Y)
+ 5 / 5: 5.00
+ 6 / 6: 6.00
+ 7 / 7: 7.00
+ 8 / 8: 8.00
+ 9 / 9: 9.00
+ 10.1 / 10: 10.00
+ 11 / 11: 11.00
+ 12 / 12: 12.00
+ 13 / 13: 13.00
+ 14 / 14: 14.00
+ 15 / 15: 15.00
+list/j=899995:9000000 var
+ VARIABLE : Y[GY=LONGYAX]
+ FILENAME : a.nc
+ SUBSET : 6 points (Y)
+ 899995 / 899995: 899995.
+ 899996 / 899996: 899996.
+ 899997 / 899997: 899997.
+ 899998 / 899998: 899998.
+ 899999 / 899999: 899999.
+ 900000 / 900000: 900000.
+
+! clean up. Remove our huge file
+cancel data/all
+sp rm a.nc
+
+GO bn_reset bn_save_as_global
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+Starting test: bn_save_as_global
+GO bn_save_as_global
+! bn_save_asglobal
+! 11/2017
+! Simple command to save a variable as a global attribute.
+! Works on an existing or a new file.
+
+! Write to a new file. Gets the default global attributes.
+
+can mode upcase
+let my_extra_attribute = "Extra attribute: This file is just attributes to start with"
+save/asglobal/clobber/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+netcdf a {
+
+// global attributes:
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: This file is just attributes to start with" ;
+}
+
+! Or write new attributes to a file that has data
+
+use coads_climatology
+save/clobber/file=a.nc sst[x=150:170,y=0:10]
+let my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes"
+save/asglobal/append/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+ COADSX = 10 ;
+ COADSY = 5 ;
+ TIME = UNLIMITED ; // (3 currently)
+variables:
+ double COADSX(COADSX) ;
+ COADSX:units = "degrees_east" ;
+ COADSX:modulo = " " ;
+ COADSX:point_spacing = "even" ;
+ COADSX:axis = "X" ;
+ COADSX:standard_name = "longitude" ;
+ double COADSY(COADSY) ;
+ COADSY:units = "degrees_north" ;
+ COADSY:point_spacing = "even" ;
+ COADSY:axis = "Y" ;
+ COADSY:standard_name = "latitude" ;
+ double TIME(TIME) ;
+ TIME:units = "hour since 0000-01-01 00:00:00" ;
+ TIME:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME:modulo = 8765.81982421875 ;
+ TIME:axis = "T" ;
+ TIME:standard_name = "time" ;
+ float SST(TIME, COADSY, COADSX) ;
+ SST:missing_value = -1.e+34f ;
+ SST:_FillValue = -1.e+34f ;
+ SST:long_name = "SEA SURFACE TEMPERATURE" ;
+ SST:history = "From coads_climatology" ;
+ SST:units = "Deg C" ;
+
+// global attributes:
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+}
+
+! Create an attribute from a file variable
+
+use maize_1
+save/append/file=a.nc/j=4/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+ COADSX = 10 ;
+ COADSY = 5 ;
+ TIME = UNLIMITED ; // (3 currently)
+variables:
+ double COADSX(COADSX) ;
+ COADSX:units = "degrees_east" ;
+ COADSX:modulo = " " ;
+ COADSX:point_spacing = "even" ;
+ COADSX:axis = "X" ;
+ COADSX:standard_name = "longitude" ;
+ double COADSY(COADSY) ;
+ COADSY:units = "degrees_north" ;
+ COADSY:point_spacing = "even" ;
+ COADSY:axis = "Y" ;
+ COADSY:standard_name = "latitude" ;
+ double TIME(TIME) ;
+ TIME:units = "hour since 0000-01-01 00:00:00" ;
+ TIME:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME:modulo = 8765.81982421875 ;
+ TIME:axis = "T" ;
+ TIME:standard_name = "time" ;
+ float SST(TIME, COADSY, COADSX) ;
+ SST:missing_value = -1.e+34f ;
+ SST:_FillValue = -1.e+34f ;
+ SST:long_name = "SEA SURFACE TEMPERATURE" ;
+ SST:history = "From coads_climatology" ;
+ SST:units = "Deg C" ;
+
+// global attributes:
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+ :MAIZE_YIELD = 0.05408529f, 0.1875f, -0.04314715f, 9.96921e+36f ;
+}
+
+! A second write of the same attribute overwrites the attribute values
+! (append here is saying dont start a new file)
+
+save/append/file=a.nc/j=5/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+ COADSX = 10 ;
+ COADSY = 5 ;
+ TIME = UNLIMITED ; // (3 currently)
+variables:
+ double COADSX(COADSX) ;
+ COADSX:units = "degrees_east" ;
+ COADSX:modulo = " " ;
+ COADSX:point_spacing = "even" ;
+ COADSX:axis = "X" ;
+ COADSX:standard_name = "longitude" ;
+ double COADSY(COADSY) ;
+ COADSY:units = "degrees_north" ;
+ COADSY:point_spacing = "even" ;
+ COADSY:axis = "Y" ;
+ COADSY:standard_name = "latitude" ;
+ double TIME(TIME) ;
+ TIME:units = "hour since 0000-01-01 00:00:00" ;
+ TIME:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME:modulo = 8765.81982421875 ;
+ TIME:axis = "T" ;
+ TIME:standard_name = "time" ;
+ float SST(TIME, COADSY, COADSX) ;
+ SST:missing_value = -1.e+34f ;
+ SST:_FillValue = -1.e+34f ;
+ SST:long_name = "SEA SURFACE TEMPERATURE" ;
+ SST:history = "From coads_climatology" ;
+ SST:units = "Deg C" ;
+
+// global attributes:
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+ :MAIZE_YIELD = 0.02854787f, 0.02296161f, 0.02589183f, 0.01891576f ;
+}
+
+! Allow for various /OUTTYPE as in any SAVE command
+let another = {1, 2, 3.1}
+save/append/file=a.nc/outtype=INT/asglobal another
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+ COADSX = 10 ;
+ COADSY = 5 ;
+ TIME = UNLIMITED ; // (3 currently)
+variables:
+ double COADSX(COADSX) ;
+ COADSX:units = "degrees_east" ;
+ COADSX:modulo = " " ;
+ COADSX:point_spacing = "even" ;
+ COADSX:axis = "X" ;
+ COADSX:standard_name = "longitude" ;
+ double COADSY(COADSY) ;
+ COADSY:units = "degrees_north" ;
+ COADSY:point_spacing = "even" ;
+ COADSY:axis = "Y" ;
+ COADSY:standard_name = "latitude" ;
+ double TIME(TIME) ;
+ TIME:units = "hour since 0000-01-01 00:00:00" ;
+ TIME:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME:modulo = 8765.81982421875 ;
+ TIME:axis = "T" ;
+ TIME:standard_name = "time" ;
+ float SST(TIME, COADSY, COADSX) ;
+ SST:missing_value = -1.e+34f ;
+ SST:_FillValue = -1.e+34f ;
+ SST:long_name = "SEA SURFACE TEMPERATURE" ;
+ SST:history = "From coads_climatology" ;
+ SST:units = "Deg C" ;
+
+// global attributes:
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+ :MAIZE_YIELD = 0.02854787f, 0.02296161f, 0.02589183f, 0.01891576f ;
+ :another = 1, 2, 3 ;
+}
+
+
+! Intentional errors
+set mode ignore
+set data 1
+
+! String attributes may only be single-valued
+let multistring = {"a", "b", "c", "", "e"}
+save/asglobal/append/file=a.nc multistring
+
+! Refuse to write multi-dimensioned attributes y-t
+save/append/asglobal/x=150/outtype=float/file=a.nc sst
+
+! Also arbitrarily refuse to write more than a list of 100 values.
+set mode ignore
+save/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+
+set mode /last upcase
+
! *********** Always do a bn_reset ***********
! *********** make sure things clean up well **
GO bn_reset
@@ -105255,9 +105735,9 @@ yes? ! run bn_all_ef tests
yes?
yes? GO bn_all_ef
NOAA/PMEL TMAP
- FERRET v7.21 (beta/debug)
- Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 6-Sep-17 13:02
+ FERRET v7.23 (beta/debug)
+ Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 29-Nov-17 17:38
SET MODE VERIFY
! bn_all_ef.jnl
@@ -106075,7 +106555,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106100,7 +106580,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106124,7 +106604,7 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106163,7 +106643,7 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106198,7 +106678,7 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106239,7 +106719,7 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106296,7 +106776,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106353,7 +106833,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106408,7 +106888,7 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106456,7 +106936,7 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106517,7 +106997,7 @@ dimensions:
COADSX81_81 = 1 ;
bnds = 2 ;
COADSY46_46 = 1 ;
- TIME4 = UNLIMITED ; // (3 currently)
+ TIME7 = UNLIMITED ; // (3 currently)
variables:
double COADSX81_81(COADSX81_81) ;
COADSX81_81:units = "degrees_east" ;
@@ -106534,15 +107014,15 @@ variables:
COADSY46_46:standard_name = "latitude" ;
COADSY46_46:bounds = "COADSY46_46_bnds" ;
double COADSY46_46_bnds(COADSY46_46, bnds) ;
- double TIME4(TIME4) ;
- TIME4:units = "hour since 0000-01-01 00:00:00" ;
- TIME4:time_origin = "01-JAN-0000 00:00:00" ;
- TIME4:modulo = " " ;
- TIME4:axis = "T" ;
- TIME4:standard_name = "time" ;
- TIME4:bounds = "TIME4_bnds" ;
- double TIME4_bnds(TIME4, bnds) ;
- float SST(TIME4, COADSY46_46, COADSX81_81) ;
+ double TIME7(TIME7) ;
+ TIME7:units = "hour since 0000-01-01 00:00:00" ;
+ TIME7:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME7:modulo = " " ;
+ TIME7:axis = "T" ;
+ TIME7:standard_name = "time" ;
+ TIME7:bounds = "TIME7_bnds" ;
+ double TIME7_bnds(TIME7, bnds) ;
+ float SST(TIME7, COADSY46_46, COADSX81_81) ;
SST:missing_value = -1.e+34f ;
SST:_FillValue = -1.e+34f ;
SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -106550,7 +107030,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106564,9 +107044,9 @@ data:
COADSY46_46_bnds =
0, 2 ;
- TIME4 = 366, 1096.485, 1826.97 ;
+ TIME7 = 366, 1096.485, 1826.97 ;
- TIME4_bnds =
+ TIME7_bnds =
0.757499999999993, 731.2425,
731.2425, 1461.7275,
1461.7275, 2192.2125 ;
@@ -106583,8 +107063,8 @@ dimensions:
COADSX81_81edges = 2 ;
COADSY46_46 = 1 ;
COADSY46_46edges = 2 ;
- TIME4 = UNLIMITED ; // (3 currently)
- TIME4edges = 4 ;
+ TIME7 = UNLIMITED ; // (3 currently)
+ TIME7edges = 4 ;
variables:
double COADSX81_81(COADSX81_81) ;
COADSX81_81:units = "degrees_east" ;
@@ -106603,16 +107083,16 @@ variables:
COADSY46_46:edges = "COADSY46_46edges" ;
double COADSY46_46edges(COADSY46_46edges) ;
COADSY46_46edges:edges = " " ;
- double TIME4(TIME4) ;
- TIME4:units = "hour since 0000-01-01 00:00:00" ;
- TIME4:time_origin = "01-JAN-0000 00:00:00" ;
- TIME4:modulo = " " ;
- TIME4:axis = "T" ;
- TIME4:standard_name = "time" ;
- TIME4:edges = "TIME4edges" ;
- double TIME4edges(TIME4edges) ;
- TIME4edges:edges = " " ;
- float SST(TIME4, COADSY46_46, COADSX81_81) ;
+ double TIME7(TIME7) ;
+ TIME7:units = "hour since 0000-01-01 00:00:00" ;
+ TIME7:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME7:modulo = " " ;
+ TIME7:axis = "T" ;
+ TIME7:standard_name = "time" ;
+ TIME7:edges = "TIME7edges" ;
+ double TIME7edges(TIME7edges) ;
+ TIME7edges:edges = " " ;
+ float SST(TIME7, COADSY46_46, COADSX81_81) ;
SST:missing_value = -1.e+34f ;
SST:_FillValue = -1.e+34f ;
SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -106620,7 +107100,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106632,9 +107112,9 @@ data:
COADSY46_46edges = 0, 2 ;
- TIME4 = 366, 1096.485, 1826.97 ;
+ TIME7 = 366, 1096.485, 1826.97 ;
- TIME4edges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
+ TIME7edges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
SST =
28.28389,
@@ -106671,7 +107151,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106746,7 +107226,7 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106773,7 +107253,7 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -106797,7 +107277,7 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -106824,11 +107304,11 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
bn_bounds_defineax.jnl --- N+1 def of bounds.
netcdf irrxzt {
dimensions:
@@ -106859,7 +107339,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106931,7 +107411,7 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106947,7 +107427,7 @@ netcdf a {
dimensions:
COADSX105_105 = 1 ;
COADSY45_45 = 1 ;
- TIME4 = UNLIMITED ; // (3 currently)
+ TIME7 = UNLIMITED ; // (3 currently)
variables:
double COADSX105_105(COADSX105_105) ;
COADSX105_105:units = "degrees_east" ;
@@ -106961,13 +107441,13 @@ variables:
COADSY45_45:point_spacing = "even" ;
COADSY45_45:axis = "Y" ;
COADSY45_45:standard_name = "latitude" ;
- double TIME4(TIME4) ;
- TIME4:units = "hour since 0000-01-01 00:00:00" ;
- TIME4:time_origin = "01-JAN-0000 00:00:00" ;
- TIME4:modulo = " " ;
- TIME4:axis = "T" ;
- TIME4:standard_name = "time" ;
- float SST(TIME4, COADSY45_45, COADSX105_105) ;
+ double TIME7(TIME7) ;
+ TIME7:units = "hour since 0000-01-01 00:00:00" ;
+ TIME7:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME7:modulo = " " ;
+ TIME7:axis = "T" ;
+ TIME7:standard_name = "time" ;
+ float SST(TIME7, COADSY45_45, COADSX105_105) ;
SST:missing_value = -1.e+34f ;
SST:_FillValue = -1.e+34f ;
SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -106975,7 +107455,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -106983,14 +107463,14 @@ data:
COADSY45_45 = -1 ;
- TIME4 = 366, 1096.485, 1826.97 ;
+ TIME7 = 366, 1096.485, 1826.97 ;
}
bn_attributes.jnl --- 3 modulo set to false
netcdf a {
dimensions:
COADSX81_81 = 1 ;
COADSY45_45 = 1 ;
- TIME7 = UNLIMITED ; // (12 currently)
+ TIME12 = UNLIMITED ; // (12 currently)
variables:
double COADSX81_81(COADSX81_81) ;
COADSX81_81:units = "degrees_east" ;
@@ -107003,13 +107483,13 @@ variables:
COADSY45_45:point_spacing = "even" ;
COADSY45_45:axis = "Y" ;
COADSY45_45:standard_name = "latitude" ;
- double TIME7(TIME7) ;
- TIME7:units = "hour since 0000-01-01 00:00:00" ;
- TIME7:time_origin = "01-JAN-0000 00:00:00" ;
- TIME7:modulo = " " ;
- TIME7:axis = "T" ;
- TIME7:standard_name = "time" ;
- float SST(TIME7, COADSY45_45, COADSX81_81) ;
+ double TIME12(TIME12) ;
+ TIME12:units = "hour since 0000-01-01 00:00:00" ;
+ TIME12:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME12:modulo = " " ;
+ TIME12:axis = "T" ;
+ TIME12:standard_name = "time" ;
+ float SST(TIME12, COADSY45_45, COADSX81_81) ;
SST:missing_value = -1.e+34f ;
SST:_FillValue = -1.e+34f ;
SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -107017,7 +107497,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107025,7 +107505,7 @@ data:
COADSY45_45 = -1 ;
- TIME7 = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91,
+ TIME12 = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91,
5479.395, 6209.88, 6940.365, 7670.85, 8401.335 ;
}
bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:
@@ -107125,7 +107605,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -107166,7 +107646,7 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -107189,7 +107669,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107215,7 +107695,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107235,7 +107715,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107256,7 +107736,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107268,7 +107748,7 @@ dimensions:
XAX_LEV9421_380 = 360 ;
YAX_LEV94 = 180 ;
ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (2 currently)
+ TIME4 = UNLIMITED ; // (2 currently)
variables:
double XAX_LEV9421_380(XAX_LEV9421_380) ;
XAX_LEV9421_380:units = "degrees_east" ;
@@ -107285,13 +107765,13 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
+ double TIME4(TIME4) ;
+ TIME4:units = "hour since 0000-01-01 00:00:00" ;
+ TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME4:modulo = " " ;
+ TIME4:axis = "T" ;
+ TIME4:standard_name = "time" ;
+ float TEMP(TIME4, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "Temperature" ;
@@ -107299,7 +107779,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -107308,7 +107788,7 @@ dimensions:
XAX_LEV9421_380281_340 = 60 ;
YAX_LEV94121_135 = 15 ;
ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (2 currently)
+ TIME4 = UNLIMITED ; // (2 currently)
variables:
double XAX_LEV9421_380281_340(XAX_LEV9421_380281_340) ;
XAX_LEV9421_380281_340:units = "degrees_east" ;
@@ -107325,13 +107805,13 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
+ double TIME4(TIME4) ;
+ TIME4:units = "hour since 0000-01-01 00:00:00" ;
+ TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME4:modulo = " " ;
+ TIME4:axis = "T" ;
+ TIME4:standard_name = "time" ;
+ float TEMP(TIME4, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "Temperature" ;
@@ -107339,7 +107819,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -107348,7 +107828,7 @@ dimensions:
XAX_LEV9421_380 = 360 ;
YAX_LEV94 = 180 ;
ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (2 currently)
+ TIME4 = UNLIMITED ; // (2 currently)
variables:
double XAX_LEV9421_380(XAX_LEV9421_380) ;
XAX_LEV9421_380:units = "degrees_east" ;
@@ -107365,19 +107845,19 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
+ double TIME4(TIME4) ;
+ TIME4:units = "hour since 0000-01-01 00:00:00" ;
+ TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME4:modulo = " " ;
+ TIME4:axis = "T" ;
+ TIME4:standard_name = "time" ;
+ float TEMP(TIME4, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -107406,7 +107886,7 @@ variables:
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107439,7 +107919,7 @@ variables:
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107465,7 +107945,7 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107511,7 +107991,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
@@ -107553,7 +108033,7 @@ dimensions:
PSXT100_100 = 1 ;
PSYT135_56 = 22 ;
PSZT11_1 = 1 ;
- TIME11 = 25 ;
+ TIME12 = 25 ;
variables:
double XC(XC) ;
XC:long_name = "Longitude" ;
@@ -107604,13 +108084,13 @@ variables:
PSZT11_1:standard_name = "depth" ;
PSZT11_1:bounds = "PSZT11_1_bnds" ;
double PSZT11_1_bnds(PSZT11_1, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:point_spacing = "even" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- float TEMP(TIME11, PSZT11_1, PSYT135_56, PSXT100_100) ;
+ double TIME12(TIME12) ;
+ TIME12:units = "hour since 1980-01-14 14:00:00" ;
+ TIME12:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME12:point_spacing = "even" ;
+ TIME12:axis = "T" ;
+ TIME12:standard_name = "time" ;
+ float TEMP(TIME12, PSZT11_1, PSYT135_56, PSXT100_100) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "TEMPERATURE" ;
@@ -107618,7 +108098,7 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
@@ -107660,7 +108140,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107690,7 +108170,7 @@ data:
-32767, -32767, -32767, -32767, -32767, -32767 ;
}
bn_attributes.jnl --- 20 set data type on output int4
- int TEMP(TIME11, PSZT11_1, PSYT148_48, PSXT91_108) ;
+ int TEMP(TIME12, PSZT11_1, PSYT148_48, PSXT91_108) ;
TEMP:missing_value = -1000 ;
TEMP:_FillValue = -1000 ;
TEMP:long_name = "TEMPERATURE" ;
@@ -107703,7 +108183,7 @@ bn_attributes.jnl --- 20 set data type on output int4
26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 26, 26, 26, 26, 26, 25, 25, 25 ;
}
bn_attributes.jnl --- 21 set data type on output double
- double SALT(TIME11, PSZT11_1, PSYT148_48, PSXT91_108) ;
+ double SALT(TIME12, PSZT11_1, PSYT148_48, PSXT91_108) ;
SALT:missing_value = 0.00999999977648258 ;
SALT:_FillValue = 0.00999999977648258 ;
SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
@@ -107743,7 +108223,7 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107780,7 +108260,7 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107820,7 +108300,7 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107871,7 +108351,7 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -107895,7 +108375,7 @@ dimensions:
PSYT135_56 = 22 ;
bnds = 2 ;
PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (1 currently)
+ TIME12 = UNLIMITED ; // (1 currently)
variables:
double PSXT91_108(PSXT91_108) ;
PSXT91_108:units = "degrees" ;
@@ -107918,19 +108398,19 @@ variables:
PSZT11_10:standard_name = "depth" ;
PSZT11_10:bounds = "PSZT11_10_bnds" ;
double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- double T2(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+ double TIME12(TIME12) ;
+ TIME12:units = "hour since 1980-01-14 14:00:00" ;
+ TIME12:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME12:axis = "T" ;
+ TIME12:standard_name = "time" ;
+ double T2(TIME12, PSZT11_10, PSYT135_56, PSXT91_108) ;
T2:missing_value = -1.e+34 ;
T2:_FillValue = -1.e+34 ;
T2:long_name = "T*TEMP" ;
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -107939,7 +108419,7 @@ dimensions:
PSYT135_56 = 22 ;
bnds = 2 ;
PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (1 currently)
+ TIME12 = UNLIMITED ; // (1 currently)
variables:
double PSXT91_108(PSXT91_108) ;
PSXT91_108:units = "degrees" ;
@@ -107963,19 +108443,19 @@ variables:
PSZT11_10:standard_name = "depth" ;
PSZT11_10:bounds = "PSZT11_10_bnds" ;
double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- double T2(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+ double TIME12(TIME12) ;
+ TIME12:units = "hour since 1980-01-14 14:00:00" ;
+ TIME12:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME12:axis = "T" ;
+ TIME12:standard_name = "time" ;
+ double T2(TIME12, PSZT11_10, PSYT135_56, PSXT91_108) ;
T2:missing_value = -1.e+34 ;
T2:_FillValue = -1.e+34 ;
T2:long_name = "T*TEMP" ;
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -107984,7 +108464,7 @@ dimensions:
PSYT135_56 = 22 ;
bnds = 2 ;
PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (1 currently)
+ TIME12 = UNLIMITED ; // (1 currently)
variables:
double PSXT91_108(PSXT91_108) ;
PSXT91_108:units = "meters" ;
@@ -108006,19 +108486,19 @@ variables:
PSZT11_10:standard_name = "depth" ;
PSZT11_10:bounds = "PSZT11_10_bnds" ;
double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- double T2(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+ double TIME12(TIME12) ;
+ TIME12:units = "hour since 1980-01-14 14:00:00" ;
+ TIME12:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME12:axis = "T" ;
+ TIME12:standard_name = "time" ;
+ double T2(TIME12, PSZT11_10, PSYT135_56, PSXT91_108) ;
T2:missing_value = -1.e+34 ;
T2:_FillValue = -1.e+34 ;
T2:long_name = "T*TEMP" ;
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -108053,7 +108533,7 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -108087,7 +108567,7 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
@@ -108117,7 +108597,7 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
@@ -108146,7 +108626,7 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -108171,7 +108651,7 @@ dimensions:
PSYT135_56 = 22 ;
bnds = 2 ;
PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (25 currently)
+ TIME13 = UNLIMITED ; // (25 currently)
variables:
double PSXT91_108(PSXT91_108) ;
PSXT91_108:units = "degrees_east" ;
@@ -108194,12 +108674,12 @@ variables:
PSZT11_10:standard_name = "depth" ;
PSZT11_10:bounds = "PSZT11_10_bnds" ;
double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- double FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+ double TIME13(TIME13) ;
+ TIME13:units = "hour since 1980-01-14 14:00:00" ;
+ TIME13:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME13:axis = "T" ;
+ TIME13:standard_name = "time" ;
+ double FAREN(TIME13, PSZT11_10, PSYT135_56, PSXT91_108) ;
FAREN:missing_value = -1.e+34 ;
FAREN:_FillValue = -1.e+34 ;
FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -108207,7 +108687,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -108216,7 +108696,7 @@ dimensions:
PSYT135_56 = 22 ;
bnds = 2 ;
PSZT11_10 = 10 ;
- TIME11 = UNLIMITED ; // (25 currently)
+ TIME13 = UNLIMITED ; // (25 currently)
variables:
double PSXT91_108(PSXT91_108) ;
PSXT91_108:units = "degrees_east" ;
@@ -108239,12 +108719,12 @@ variables:
PSZT11_10:standard_name = "depth" ;
PSZT11_10:bounds = "PSZT11_10_bnds" ;
double PSZT11_10_bnds(PSZT11_10, bnds) ;
- double TIME11(TIME11) ;
- TIME11:units = "hour since 1980-01-14 14:00:00" ;
- TIME11:time_origin = "14-JAN-1980 14:00:00" ;
- TIME11:axis = "T" ;
- TIME11:standard_name = "time" ;
- int FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT91_108) ;
+ double TIME13(TIME13) ;
+ TIME13:units = "hour since 1980-01-14 14:00:00" ;
+ TIME13:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME13:axis = "T" ;
+ TIME13:standard_name = "time" ;
+ int FAREN(TIME13, PSZT11_10, PSYT135_56, PSXT91_108) ;
FAREN:missing_value = -999 ;
FAREN:_FillValue = -999 ;
FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -108252,7 +108732,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -108271,7 +108751,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -108301,7 +108781,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -108331,7 +108811,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -108350,7 +108830,7 @@ dimensions:
XAX_LEV9421_380 = 360 ;
YAX_LEV9450_50 = 1 ;
ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (1 currently)
+ TIME4 = UNLIMITED ; // (1 currently)
variables:
double XAX_LEV9421_380(XAX_LEV9421_380) ;
XAX_LEV9421_380:units = "degrees_east" ;
@@ -108370,13 +108850,13 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
+ double TIME4(TIME4) ;
+ TIME4:units = "hour since 0000-01-01 00:00:00" ;
+ TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME4:modulo = " " ;
+ TIME4:axis = "T" ;
+ TIME4:standard_name = "time" ;
+ float TEMP(TIME4, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "Temperature" ;
@@ -108384,7 +108864,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -108392,7 +108872,7 @@ dimensions:
XAX_LEV9421_3801_12 = 12 ;
YAX_LEV9450_50 = 1 ;
ZAXLEVIT191_1 = 1 ;
- TIME3 = UNLIMITED ; // (1 currently)
+ TIME4 = UNLIMITED ; // (1 currently)
variables:
double XAX_LEV9421_3801_12(XAX_LEV9421_3801_12) ;
XAX_LEV9421_3801_12:units = "degrees_east" ;
@@ -108412,13 +108892,13 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME3(TIME3) ;
- TIME3:units = "hour since 0000-01-01 00:00:00" ;
- TIME3:time_origin = "01-JAN-0000 00:00:00" ;
- TIME3:modulo = " " ;
- TIME3:axis = "T" ;
- TIME3:standard_name = "time" ;
- float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
+ double TIME4(TIME4) ;
+ TIME4:units = "hour since 0000-01-01 00:00:00" ;
+ TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME4:modulo = " " ;
+ TIME4:axis = "T" ;
+ TIME4:standard_name = "time" ;
+ float TEMP(TIME4, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "Temperature" ;
@@ -108426,7 +108906,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -108444,7 +108924,7 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
err611_set_var_ez.jnl ---
@@ -108463,7 +108943,7 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -108481,7 +108961,7 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -108498,7 +108978,7 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -108519,7 +108999,7 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -108582,7 +109062,7 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
@@ -108609,7 +109089,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -108636,7 +109116,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
@@ -108702,7 +109182,7 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -108734,7 +109214,7 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -108767,12 +109247,12 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
- TIME17 = 8 ;
+ TIME28 = 8 ;
REFTIME = 3 ;
bnds = 2 ;
variables:
@@ -108784,7 +109264,7 @@ variables:
REFTIME:axis = "F" ;
REFTIME:bounds = "REFTIME_bnds" ;
double REFTIME_bnds(REFTIME, bnds) ;
- double TIME(REFTIME, TIME17) ;
+ double TIME(REFTIME, TIME28) ;
TIME:units = "calendar Month since 2014-11-01T00:00:00Z" ;
TIME:long_name = "GRIB forecast or observation time" ;
TIME:calendar = "proleptic_gregorian" ;
@@ -108792,7 +109272,7 @@ variables:
TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -108830,7 +109310,7 @@ variables:
time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
data:
@@ -108856,7 +109336,7 @@ variables:
MYVAR:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -108870,7 +109350,7 @@ variables:
MYVAR:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V7.21 (beta/debug) 6-Sep-17" ;
+ :history = "FERRET V7.23 (beta/debug) 29-Nov-17" ;
:Conventions = "CF-1.6" ;
}
-----
@@ -108884,9 +109364,9 @@ yes?
yes?
yes? GO bn_startupfile
NOAA/PMEL TMAP
- FERRET v7.21 (beta/debug)
- Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 6-Sep-17 13:02
+ FERRET v7.23 (beta/debug)
+ Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 29-Nov-17 17:38
CAN MODE VERIFY
SET MEMORY/SIZE: 31 megawords
@@ -108895,25 +109375,25 @@ CAN MODE VERIFY
PPL$XPIXEL = "656"
PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 2.6.32-696.6.3.el6.x86_64 64-bit"
+FERRET_VERSION = "7.23"
+FERRET_PLATFORM = "Linux 2.6.32-696.13.2.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.4.1.1 of Jun 26 2017 08:42:09 $"
FERRET_MEMORY = "31"
-SESSION_DATE = " 6-Sep-17"
-SESSION_TIME = "13:02"
-SESSION_PID = "40729"
-DELTA_CPU = "0.06199"
-CLOCK_SECS = "0.177"
-CURRENT_DATE = " 6-Sep-17"
-CURRENT_TIME = "13:02:15"
+SESSION_DATE = "29-Nov-17"
+SESSION_TIME = "17:38"
+SESSION_PID = "48263"
+DELTA_CPU = "0.062989"
+CLOCK_SECS = "0.261"
+CURRENT_DATE = "29-Nov-17"
+CURRENT_TIME = "17:38:01"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
PEAK_MEMORY = "0"
SPAWN_OK = "1"
SPAWN_STATUS = "0"
-GO_FILE = "./bn_startupfile.jnl"
-LAST_GO_FILE = "./bn_startupfile.jnl"
+GO_FILE = "./genjnls/bn_startupfile.jnl"
+LAST_GO_FILE = "./genjnls/bn_startupfile.jnl"
PPL$FORMAT = "(3F10.2)"
PPL$PLTNME = "startup_tests.plt"
PPL$TEKNME = "/dev/tt"
@@ -108932,7 +109412,7 @@ PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "6-Sep-17:13:02"
+WIN_TITLE = "29-Nov-17:17:38"
VP_WIDTH = "10.2"
VP_HEIGHT = "8.8"
VP_SCALE = "1"
@@ -108977,7 +109457,7 @@ VP_YHI = "1"
6D_LAB SET
FRUGAL SET 30
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3
@@ -108996,9 +109476,9 @@ yes?
yes?
yes? GO bn_gif
NOAA/PMEL TMAP
- FERRET v7.21 (beta/debug)
- Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 6-Sep-17 13:02
+ FERRET v7.23 (beta/debug)
+ Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 29-Nov-17 17:38
! bn450_gif.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of gif file in batch mode using
@@ -109699,9 +110179,9 @@ yes?
yes?
yes? GO bn_ps
NOAA/PMEL TMAP
- FERRET v7.21 (beta/debug)
- Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 6-Sep-17 13:02
+ FERRET v7.23 (beta/debug)
+ Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 29-Nov-17 17:38
! bn450_ps.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of ps files in batch mode using
@@ -109813,9 +110293,9 @@ yes?
yes?
yes? GO bn_batch_metafile
NOAA/PMEL TMAP
- FERRET v7.21 (beta/debug)
- Linux 2.6.32-696.6.3.el6.x86_64 64-bit - 09/06/17
- 6-Sep-17 13:02
+ FERRET v7.23 (beta/debug)
+ Linux 2.6.32-696.13.2.el6.x86_64 64-bit - 11/29/17
+ 29-Nov-17 17:38
! bn_batch_metafile.jnl
! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -109899,4 +110379,4 @@ set window/location=0.1,0.1/title="another title"
set mode/last logo
exit/command
-Ended at Wed Sep 6 13:02:20 PDT 2017
+Ended at Wed Nov 29 17:38:06 PST 2017
diff --git a/bench/bench_environment b/bench/bench_environment
deleted file mode 100755
index 334dc01..0000000
--- a/bench/bench_environment
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/csh -ls
-#
-# simple script to restrict the ferret environment when running
-# benchmark suite.
-#
-# *kob* 1/01
-
-setenv FER_DATA .
-setenv FER_DESCR .
-setenv FER_DSETS .
-setenv FER_DAT .
-setenv FER_GRIDS .
-setenv FER_DIR .
-
diff --git a/bench/bench_environment.csh b/bench/bench_environment.csh
new file mode 100644
index 0000000..cebc957
--- /dev/null
+++ b/bench/bench_environment.csh
@@ -0,0 +1,10 @@
+# simple csh script to restrict the ferret environment when running benchmark tests
+# must be sourced using 'source' into the current shell - do not make executable
+
+setenv FER_GO ". ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls $FER_GO"
+setenv FER_DATA ". ./data"
+setenv FER_DESCR ". ./data"
+setenv FER_DSETS ". ./data"
+setenv FER_GRIDS ". ./data"
+setenv FER_DIR "."
+
diff --git a/bench/bench_environment.sh b/bench/bench_environment.sh
new file mode 100644
index 0000000..abbd712
--- /dev/null
+++ b/bench/bench_environment.sh
@@ -0,0 +1,10 @@
+# simple sh script to restrict the ferret environment when running benchmark tests
+# must be sourced using '.' into the current shell - do not make executable
+
+export FER_GO=". ./v4jnls ./v5jnls ./v6jnls ./v7jnls ./genjnls $FER_GO"
+export FER_DATA=". ./data"
+export FER_DESCR=". ./data"
+export FER_DSETS=". ./data"
+export FER_GRIDS=". ./data"
+export FER_DIR="."
+
diff --git a/bench/bn_modulo_attribute.jnl b/bench/bn_modulo_attribute.jnl
deleted file mode 100644
index ed8d022..0000000
--- a/bench/bn_modulo_attribute.jnl
+++ /dev/null
@@ -1,11 +0,0 @@
-! Ferret V5.50 m
-
-! Modulo attribute can take numerical values to indicate
-! the modulo length of axis (subspan modulo changes)
-! This script tests various string values of the attribute
-
-use modulo_lon_time
-
-sh ax lon*
-sh ax tim*
-
diff --git a/bench/coads_clim.003 b/bench/coads_clim.003
deleted file mode 100644
index 5eef5ef..0000000
Binary files a/bench/coads_clim.003 and /dev/null differ
diff --git a/bench/123456789000101_100101_test_numeric.nc b/bench/data/123456789000101_100101_test_numeric.nc
similarity index 100%
rename from bench/123456789000101_100101_test_numeric.nc
rename to bench/data/123456789000101_100101_test_numeric.nc
diff --git a/bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc b/bench/data/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
similarity index 100%
rename from bench/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
rename to bench/data/39839D6273F1749BABAD6C1441B2BBDD_netcdf.nc
diff --git a/bench/492C19881104.nc b/bench/data/492C19881104.nc
similarity index 100%
rename from bench/492C19881104.nc
rename to bench/data/492C19881104.nc
diff --git a/bench/6dfile.nc b/bench/data/6dfile.nc
similarity index 100%
rename from bench/6dfile.nc
rename to bench/data/6dfile.nc
diff --git a/bench/EZ.DAT b/bench/data/EZ.DAT
similarity index 100%
rename from bench/EZ.DAT
rename to bench/data/EZ.DAT
diff --git a/bench/TAO_SST_clim.cdf b/bench/data/TAO_SST_clim.cdf
similarity index 100%
rename from bench/TAO_SST_clim.cdf
rename to bench/data/TAO_SST_clim.cdf
diff --git a/bench/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc b/bench/data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
similarity index 100%
rename from bench/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
rename to bench/data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
diff --git a/bench/a1478.nc b/bench/data/a1478.nc
similarity index 100%
rename from bench/a1478.nc
rename to bench/data/a1478.nc
diff --git a/bench/a_cartesian_bug1179.nc b/bench/data/a_cartesian_bug1179.nc
similarity index 100%
rename from bench/a_cartesian_bug1179.nc
rename to bench/data/a_cartesian_bug1179.nc
diff --git a/bench/adouble.nc b/bench/data/adouble.nc
similarity index 100%
rename from bench/adouble.nc
rename to bench/data/adouble.nc
diff --git a/bench/adouble_2D.nc b/bench/data/adouble_2D.nc
similarity index 100%
rename from bench/adouble_2D.nc
rename to bench/data/adouble_2D.nc
diff --git a/bench/aggT_5d1.nc b/bench/data/aggT_5d1.nc
similarity index 100%
rename from bench/aggT_5d1.nc
rename to bench/data/aggT_5d1.nc
diff --git a/bench/aggT_5d2.nc b/bench/data/aggT_5d2.nc
similarity index 100%
rename from bench/aggT_5d2.nc
rename to bench/data/aggT_5d2.nc
diff --git a/bench/anew_global.cdl b/bench/data/anew_global.cdl
similarity index 100%
rename from bench/anew_global.cdl
rename to bench/data/anew_global.cdl
diff --git a/bench/append_pack.nc b/bench/data/append_pack.nc
similarity index 100%
rename from bench/append_pack.nc
rename to bench/data/append_pack.nc
diff --git a/bench/axes_subspan.nc b/bench/data/axes_subspan.nc
similarity index 100%
rename from bench/axes_subspan.nc
rename to bench/data/axes_subspan.nc
diff --git a/bench/b1478.nc b/bench/data/b1478.nc
similarity index 100%
rename from bench/b1478.nc
rename to bench/data/b1478.nc
diff --git a/bench/bad_taxis.nc b/bench/data/bad_taxis.nc
similarity index 100%
rename from bench/bad_taxis.nc
rename to bench/data/bad_taxis.nc
diff --git a/bench/badbounds.nc b/bench/data/badbounds.nc
similarity index 100%
rename from bench/badbounds.nc
rename to bench/data/badbounds.nc
diff --git a/bench/badbounds_even.nc b/bench/data/badbounds_even.nc
similarity index 100%
rename from bench/badbounds_even.nc
rename to bench/data/badbounds_even.nc
diff --git a/bench/badbounds_non_enclose.nc b/bench/data/badbounds_non_enclose.nc
similarity index 100%
rename from bench/badbounds_non_enclose.nc
rename to bench/data/badbounds_non_enclose.nc
diff --git a/bench/badbounds_uneven.nc b/bench/data/badbounds_uneven.nc
similarity index 100%
rename from bench/badbounds_uneven.nc
rename to bench/data/badbounds_uneven.nc
diff --git a/bench/bn_delimited_read_1.dat b/bench/data/bn_delimited_read_1.dat
similarity index 100%
rename from bench/bn_delimited_read_1.dat
rename to bench/data/bn_delimited_read_1.dat
diff --git a/bench/bn_delimited_read_2.dat b/bench/data/bn_delimited_read_2.dat
similarity index 100%
rename from bench/bn_delimited_read_2.dat
rename to bench/data/bn_delimited_read_2.dat
diff --git a/bench/bn_delimited_read_CO2.dat b/bench/data/bn_delimited_read_CO2.dat
similarity index 100%
rename from bench/bn_delimited_read_CO2.dat
rename to bench/data/bn_delimited_read_CO2.dat
diff --git a/bench/bn_delimited_read_date_time.dat b/bench/data/bn_delimited_read_date_time.dat
similarity index 100%
rename from bench/bn_delimited_read_date_time.dat
rename to bench/data/bn_delimited_read_date_time.dat
diff --git a/bench/bn_set_axis_regular.nc b/bench/data/bn_set_axis_regular.nc
similarity index 100%
rename from bench/bn_set_axis_regular.nc
rename to bench/data/bn_set_axis_regular.nc
diff --git a/bench/bn_strides.cdf b/bench/data/bn_strides.cdf
similarity index 100%
rename from bench/bn_strides.cdf
rename to bench/data/bn_strides.cdf
diff --git a/bench/bn_strides.cdl b/bench/data/bn_strides.cdl
similarity index 100%
rename from bench/bn_strides.cdl
rename to bench/data/bn_strides.cdl
diff --git a/bench/bounds_noenclose.nc b/bench/data/bounds_noenclose.nc
similarity index 100%
rename from bench/bounds_noenclose.nc
rename to bench/data/bounds_noenclose.nc
diff --git a/bench/bounds_overlapping.nc b/bench/data/bounds_overlapping.nc
similarity index 100%
rename from bench/bounds_overlapping.nc
rename to bench/data/bounds_overlapping.nc
diff --git a/bench/bug1421_a.nc b/bench/data/bug1421_a.nc
similarity index 100%
rename from bench/bug1421_a.nc
rename to bench/data/bug1421_a.nc
diff --git a/bench/bug1421_b.nc b/bench/data/bug1421_b.nc
similarity index 100%
rename from bench/bug1421_b.nc
rename to bench/data/bug1421_b.nc
diff --git a/bench/bug1845.nc b/bench/data/bug1845.nc
similarity index 100%
rename from bench/bug1845.nc
rename to bench/data/bug1845.nc
diff --git a/bench/bug2445.nc b/bench/data/bug2445.nc
similarity index 100%
rename from bench/bug2445.nc
rename to bench/data/bug2445.nc
diff --git a/bench/bug_save_subset.nc b/bench/data/bug_save_subset.nc
similarity index 100%
rename from bench/bug_save_subset.nc
rename to bench/data/bug_save_subset.nc
diff --git a/bench/byte.dat b/bench/data/byte.dat
similarity index 100%
rename from bench/byte.dat
rename to bench/data/byte.dat
diff --git a/bench/byteSwapped.dat b/bench/data/byteSwapped.dat
similarity index 100%
rename from bench/byteSwapped.dat
rename to bench/data/byteSwapped.dat
diff --git a/bench/cc_irreg.nc b/bench/data/cc_irreg.nc
similarity index 100%
rename from bench/cc_irreg.nc
rename to bench/data/cc_irreg.nc
diff --git a/bench/clim_airt_lev.cdf b/bench/data/clim_airt_lev.cdf
similarity index 100%
rename from bench/clim_airt_lev.cdf
rename to bench/data/clim_airt_lev.cdf
diff --git a/bench/climatological_axes.cdf b/bench/data/climatological_axes.cdf
similarity index 100%
rename from bench/climatological_axes.cdf
rename to bench/data/climatological_axes.cdf
diff --git a/bench/co_emac.nc b/bench/data/co_emac.nc
similarity index 100%
rename from bench/co_emac.nc
rename to bench/data/co_emac.nc
diff --git a/bench/coads_clim.001 b/bench/data/coads_clim.001
similarity index 100%
rename from bench/coads_clim.001
rename to bench/data/coads_clim.001
diff --git a/bench/coads_clim.002 b/bench/data/coads_clim.002
similarity index 100%
rename from bench/coads_clim.002
rename to bench/data/coads_clim.002
diff --git a/bench/data/coads_clim.003 b/bench/data/coads_clim.003
new file mode 100644
index 0000000..5950d06
Binary files /dev/null and b/bench/data/coads_clim.003 differ
diff --git a/bench/coads_clim.003b b/bench/data/coads_clim.003b
similarity index 100%
rename from bench/coads_clim.003b
rename to bench/data/coads_clim.003b
diff --git a/bench/coads_clim.1000 b/bench/data/coads_clim.1000
similarity index 100%
rename from bench/coads_clim.1000
rename to bench/data/coads_clim.1000
diff --git a/bench/coads_clim.1001 b/bench/data/coads_clim.1001
similarity index 100%
rename from bench/coads_clim.1001
rename to bench/data/coads_clim.1001
diff --git a/bench/coads_clim.999 b/bench/data/coads_clim.999
similarity index 100%
rename from bench/coads_clim.999
rename to bench/data/coads_clim.999
diff --git a/bench/coads_clim.des b/bench/data/coads_clim.des
similarity index 100%
rename from bench/coads_clim.des
rename to bench/data/coads_clim.des
diff --git a/bench/coads_clim_4digit.des b/bench/data/coads_clim_4digit.des
similarity index 100%
rename from bench/coads_clim_4digit.des
rename to bench/data/coads_clim_4digit.des
diff --git a/bench/coads_clim_bad_delta.des b/bench/data/coads_clim_bad_delta.des
similarity index 100%
rename from bench/coads_clim_bad_delta.des
rename to bench/data/coads_clim_bad_delta.des
diff --git a/bench/coads_clim_irreg.des b/bench/data/coads_clim_irreg.des
similarity index 100%
rename from bench/coads_clim_irreg.des
rename to bench/data/coads_clim_irreg.des
diff --git a/bench/coads_clim_missing_step1.des b/bench/data/coads_clim_missing_step1.des
similarity index 100%
rename from bench/coads_clim_missing_step1.des
rename to bench/data/coads_clim_missing_step1.des
diff --git a/bench/coads_clim_missing_stepN.des b/bench/data/coads_clim_missing_stepN.des
similarity index 100%
rename from bench/coads_clim_missing_stepN.des
rename to bench/data/coads_clim_missing_stepN.des
diff --git a/bench/coads_clim_step_order.des b/bench/data/coads_clim_step_order.des
similarity index 100%
rename from bench/coads_clim_step_order.des
rename to bench/data/coads_clim_step_order.des
diff --git a/bench/coads_climatology.cdf b/bench/data/coads_climatology.cdf
similarity index 100%
rename from bench/coads_climatology.cdf
rename to bench/data/coads_climatology.cdf
diff --git a/bench/coads_slice.nc b/bench/data/coads_slice.nc
similarity index 100%
rename from bench/coads_slice.nc
rename to bench/data/coads_slice.nc
diff --git a/bench/coads_uw.nc b/bench/data/coads_uw.nc
similarity index 100%
rename from bench/coads_uw.nc
rename to bench/data/coads_uw.nc
diff --git a/bench/coads_vwnd.cdf b/bench/data/coads_vwnd.cdf
similarity index 100%
rename from bench/coads_vwnd.cdf
rename to bench/data/coads_vwnd.cdf
diff --git a/bench/conventions_history_in.nc b/bench/data/conventions_history_in.nc
similarity index 100%
rename from bench/conventions_history_in.nc
rename to bench/data/conventions_history_in.nc
diff --git a/bench/dates_bug.dat b/bench/data/dates_bug.dat
similarity index 100%
rename from bench/dates_bug.dat
rename to bench/data/dates_bug.dat
diff --git a/bench/degrees.nc b/bench/data/degrees.nc
similarity index 100%
rename from bench/degrees.nc
rename to bench/data/degrees.nc
diff --git a/bench/delim_datetime.csv b/bench/data/delim_datetime.csv
similarity index 100%
rename from bench/delim_datetime.csv
rename to bench/data/delim_datetime.csv
diff --git a/bench/delim_prec.dat b/bench/data/delim_prec.dat
similarity index 100%
rename from bench/delim_prec.dat
rename to bench/data/delim_prec.dat
diff --git a/bench/delim_yyyy.csv b/bench/data/delim_yyyy.csv
similarity index 100%
rename from bench/delim_yyyy.csv
rename to bench/data/delim_yyyy.csv
diff --git a/bench/des.mc b/bench/data/des.mc
similarity index 100%
rename from bench/des.mc
rename to bench/data/des.mc
diff --git a/bench/des.my_descriptor b/bench/data/des.my_descriptor
similarity index 100%
rename from bench/des.my_descriptor
rename to bench/data/des.my_descriptor
diff --git a/bench/dims_not_coord.nc b/bench/data/dims_not_coord.nc
similarity index 100%
rename from bench/dims_not_coord.nc
rename to bench/data/dims_not_coord.nc
diff --git a/bench/double.dat b/bench/data/double.dat
similarity index 100%
rename from bench/double.dat
rename to bench/data/double.dat
diff --git a/bench/doubleSwapped.dat b/bench/data/doubleSwapped.dat
similarity index 100%
rename from bench/doubleSwapped.dat
rename to bench/data/doubleSwapped.dat
diff --git a/bench/dsg.nc b/bench/data/dsg.nc
similarity index 100%
rename from bench/dsg.nc
rename to bench/data/dsg.nc
diff --git a/bench/dstitle.nc b/bench/data/dstitle.nc
similarity index 100%
rename from bench/dstitle.nc
rename to bench/data/dstitle.nc
diff --git a/bench/duplicate.cdf b/bench/data/duplicate.cdf
similarity index 100%
rename from bench/duplicate.cdf
rename to bench/data/duplicate.cdf
diff --git a/bench/duplicate.des b/bench/data/duplicate.des
similarity index 100%
rename from bench/duplicate.des
rename to bench/data/duplicate.des
diff --git a/bench/duplicate.nc b/bench/data/duplicate.nc
similarity index 100%
rename from bench/duplicate.nc
rename to bench/data/duplicate.nc
diff --git a/bench/edge.nc b/bench/data/edge.nc
similarity index 100%
rename from bench/edge.nc
rename to bench/data/edge.nc
diff --git a/bench/ens1.nc b/bench/data/ens1.nc
similarity index 100%
rename from bench/ens1.nc
rename to bench/data/ens1.nc
diff --git a/bench/ens2.nc b/bench/data/ens2.nc
similarity index 100%
rename from bench/ens2.nc
rename to bench/data/ens2.nc
diff --git a/bench/ens3.nc b/bench/data/ens3.nc
similarity index 100%
rename from bench/ens3.nc
rename to bench/data/ens3.nc
diff --git a/bench/ens4.nc b/bench/data/ens4.nc
similarity index 100%
rename from bench/ens4.nc
rename to bench/data/ens4.nc
diff --git a/bench/epic_formatted_file.nc b/bench/data/epic_formatted_file.nc
similarity index 100%
rename from bench/epic_formatted_file.nc
rename to bench/data/epic_formatted_file.nc
diff --git a/bench/err491_attval.cdf b/bench/data/err491_attval.cdf
similarity index 100%
rename from bench/err491_attval.cdf
rename to bench/data/err491_attval.cdf
diff --git a/bench/err542_poly_over_calendar.nc b/bench/data/err542_poly_over_calendar.nc
similarity index 100%
rename from bench/err542_poly_over_calendar.nc
rename to bench/data/err542_poly_over_calendar.nc
diff --git a/bench/err600_upcase.nc b/bench/data/err600_upcase.nc
similarity index 100%
rename from bench/err600_upcase.nc
rename to bench/data/err600_upcase.nc
diff --git a/bench/err608_bug1556.nc b/bench/data/err608_bug1556.nc
similarity index 100%
rename from bench/err608_bug1556.nc
rename to bench/data/err608_bug1556.nc
diff --git a/bench/err62_string_write.nc b/bench/data/err62_string_write.nc
similarity index 100%
rename from bench/err62_string_write.nc
rename to bench/data/err62_string_write.nc
diff --git a/bench/err64_packed_data.nc b/bench/data/err64_packed_data.nc
similarity index 100%
rename from bench/err64_packed_data.nc
rename to bench/data/err64_packed_data.nc
diff --git a/bench/err64_small_latlon.nc b/bench/data/err64_small_latlon.nc
similarity index 100%
rename from bench/err64_small_latlon.nc
rename to bench/data/err64_small_latlon.nc
diff --git a/bench/err67_axis_order.nc b/bench/data/err67_axis_order.nc
similarity index 100%
rename from bench/err67_axis_order.nc
rename to bench/data/err67_axis_order.nc
diff --git a/bench/err682_scale_no_offset.nc b/bench/data/err682_scale_no_offset.nc
similarity index 100%
rename from bench/err682_scale_no_offset.nc
rename to bench/data/err682_scale_no_offset.nc
diff --git a/bench/err684_packed_output.nc b/bench/data/err684_packed_output.nc
similarity index 100%
rename from bench/err684_packed_output.nc
rename to bench/data/err684_packed_output.nc
diff --git a/bench/err693_save_packed.nc b/bench/data/err693_save_packed.nc
similarity index 100%
rename from bench/err693_save_packed.nc
rename to bench/data/err693_save_packed.nc
diff --git a/bench/err700_coords.nc b/bench/data/err700_coords.nc
similarity index 100%
rename from bench/err700_coords.nc
rename to bench/data/err700_coords.nc
diff --git a/bench/err700_vs_data.nc b/bench/data/err700_vs_data.nc
similarity index 100%
rename from bench/err700_vs_data.nc
rename to bench/data/err700_vs_data.nc
diff --git a/bench/data/err721_ascii_size.dat b/bench/data/err721_ascii_size.dat
new file mode 100644
index 0000000..8fb6be0
--- /dev/null
+++ b/bench/data/err721_ascii_size.dat
@@ -0,0 +1,4 @@
+header
+1, 1
+2, 2
+3, 3
diff --git a/bench/data/err721_dup_labels.nc b/bench/data/err721_dup_labels.nc
new file mode 100644
index 0000000..4798df9
Binary files /dev/null and b/bench/data/err721_dup_labels.nc differ
diff --git a/bench/err_calendar.nc b/bench/data/err_calendar.nc
similarity index 100%
rename from bench/err_calendar.nc
rename to bench/data/err_calendar.nc
diff --git a/bench/euro_dates_bug.dat b/bench/data/euro_dates_bug.dat
similarity index 100%
rename from bench/euro_dates_bug.dat
rename to bench/data/euro_dates_bug.dat
diff --git a/bench/fill_value_int.nc b/bench/data/fill_value_int.nc
similarity index 100%
rename from bench/fill_value_int.nc
rename to bench/data/fill_value_int.nc
diff --git a/bench/finale.dat b/bench/data/finale.dat
similarity index 100%
rename from bench/finale.dat
rename to bench/data/finale.dat
diff --git a/bench/fine_x_axis.nc b/bench/data/fine_x_axis.nc
similarity index 100%
rename from bench/fine_x_axis.nc
rename to bench/data/fine_x_axis.nc
diff --git a/bench/float.dat b/bench/data/float.dat
similarity index 100%
rename from bench/float.dat
rename to bench/data/float.dat
diff --git a/bench/floatSwapped.dat b/bench/data/floatSwapped.dat
similarity index 100%
rename from bench/floatSwapped.dat
rename to bench/data/floatSwapped.dat
diff --git a/bench/forecast24.nc b/bench/data/forecast24.nc
similarity index 100%
rename from bench/forecast24.nc
rename to bench/data/forecast24.nc
diff --git a/bench/forecast25.nc b/bench/data/forecast25.nc
similarity index 100%
rename from bench/forecast25.nc
rename to bench/data/forecast25.nc
diff --git a/bench/forecast26.nc b/bench/data/forecast26.nc
similarity index 100%
rename from bench/forecast26.nc
rename to bench/data/forecast26.nc
diff --git a/bench/forecast27.nc b/bench/data/forecast27.nc
similarity index 100%
rename from bench/forecast27.nc
rename to bench/data/forecast27.nc
diff --git a/bench/ft_cal_mixed.nc b/bench/data/ft_cal_mixed.nc
similarity index 100%
rename from bench/ft_cal_mixed.nc
rename to bench/data/ft_cal_mixed.nc
diff --git a/bench/ft_cal_one.nc b/bench/data/ft_cal_one.nc
similarity index 100%
rename from bench/ft_cal_one.nc
rename to bench/data/ft_cal_one.nc
diff --git a/bench/fxdata.dat b/bench/data/fxdata.dat
similarity index 100%
rename from bench/fxdata.dat
rename to bench/data/fxdata.dat
diff --git a/bench/gappy_bounds.nc b/bench/data/gappy_bounds.nc
similarity index 100%
rename from bench/gappy_bounds.nc
rename to bench/data/gappy_bounds.nc
diff --git a/bench/geo_borders.cdf b/bench/data/geo_borders.cdf
similarity index 100%
rename from bench/geo_borders.cdf
rename to bench/data/geo_borders.cdf
diff --git a/bench/global.nc b/bench/data/global.nc
similarity index 100%
rename from bench/global.nc
rename to bench/data/global.nc
diff --git a/bench/grads_bug_file.nc b/bench/data/grads_bug_file.nc
similarity index 100%
rename from bench/grads_bug_file.nc
rename to bench/data/grads_bug_file.nc
diff --git a/bench/gt160w011_nts30.des b/bench/data/gt160w011_nts30.des
similarity index 100%
rename from bench/gt160w011_nts30.des
rename to bench/data/gt160w011_nts30.des
diff --git a/bench/gt4d011.cdf b/bench/data/gt4d011.cdf
similarity index 100%
rename from bench/gt4d011.cdf
rename to bench/data/gt4d011.cdf
diff --git a/bench/gtbc011.cdf b/bench/data/gtbc011.cdf
similarity index 100%
rename from bench/gtbc011.cdf
rename to bench/data/gtbc011.cdf
diff --git a/bench/gtsa056_1.cdf b/bench/data/gtsa056_1.cdf
similarity index 100%
rename from bench/gtsa056_1.cdf
rename to bench/data/gtsa056_1.cdf
diff --git a/bench/gtsa056_1_ef.nc b/bench/data/gtsa056_1_ef.nc
similarity index 100%
rename from bench/gtsa056_1_ef.nc
rename to bench/data/gtsa056_1_ef.nc
diff --git a/bench/gtsa056_2.cdf b/bench/data/gtsa056_2.cdf
similarity index 100%
rename from bench/gtsa056_2.cdf
rename to bench/data/gtsa056_2.cdf
diff --git a/bench/data/heat_00.nc b/bench/data/heat_00.nc
new file mode 100644
index 0000000..5190456
Binary files /dev/null and b/bench/data/heat_00.nc differ
diff --git a/bench/data/heat_01.nc b/bench/data/heat_01.nc
new file mode 100644
index 0000000..82d395c
Binary files /dev/null and b/bench/data/heat_01.nc differ
diff --git a/bench/data/heat_0a.nc b/bench/data/heat_0a.nc
new file mode 100644
index 0000000..039a772
Binary files /dev/null and b/bench/data/heat_0a.nc differ
diff --git a/bench/data/heat_0b.nc b/bench/data/heat_0b.nc
new file mode 100644
index 0000000..e2cb23e
Binary files /dev/null and b/bench/data/heat_0b.nc differ
diff --git a/bench/hourst.nc b/bench/data/hourst.nc
similarity index 100%
rename from bench/hourst.nc
rename to bench/data/hourst.nc
diff --git a/bench/illeg_axname.nc b/bench/data/illeg_axname.nc
similarity index 100%
rename from bench/illeg_axname.nc
rename to bench/data/illeg_axname.nc
diff --git a/bench/int.dat b/bench/data/int.dat
similarity index 100%
rename from bench/int.dat
rename to bench/data/int.dat
diff --git a/bench/intSwapped.dat b/bench/data/intSwapped.dat
similarity index 100%
rename from bench/intSwapped.dat
rename to bench/data/intSwapped.dat
diff --git a/bench/latestOb.nc b/bench/data/latestOb.nc
similarity index 100%
rename from bench/latestOb.nc
rename to bench/data/latestOb.nc
diff --git a/bench/lev_rev_up.nc b/bench/data/lev_rev_up.nc
similarity index 100%
rename from bench/lev_rev_up.nc
rename to bench/data/lev_rev_up.nc
diff --git a/bench/lev_v_bug.nc b/bench/data/lev_v_bug.nc
similarity index 100%
rename from bench/lev_v_bug.nc
rename to bench/data/lev_v_bug.nc
diff --git a/bench/levitus_3d_subset.nc b/bench/data/levitus_3d_subset.nc
similarity index 100%
rename from bench/levitus_3d_subset.nc
rename to bench/data/levitus_3d_subset.nc
diff --git a/bench/levitus_climatology.cdf b/bench/data/levitus_climatology.cdf
similarity index 100%
rename from bench/levitus_climatology.cdf
rename to bench/data/levitus_climatology.cdf
diff --git a/bench/longtitle1000.nc b/bench/data/longtitle1000.nc
similarity index 100%
rename from bench/longtitle1000.nc
rename to bench/data/longtitle1000.nc
diff --git a/bench/longvarnames.tsv b/bench/data/longvarnames.tsv
similarity index 100%
rename from bench/longvarnames.tsv
rename to bench/data/longvarnames.tsv
diff --git a/bench/lowercaseTime.nc b/bench/data/lowercaseTime.nc
similarity index 100%
rename from bench/lowercaseTime.nc
rename to bench/data/lowercaseTime.nc
diff --git a/bench/maize_1.nc b/bench/data/maize_1.nc
similarity index 100%
rename from bench/maize_1.nc
rename to bench/data/maize_1.nc
diff --git a/bench/maize_2.nc b/bench/data/maize_2.nc
similarity index 100%
rename from bench/maize_2.nc
rename to bench/data/maize_2.nc
diff --git a/bench/maize_3.nc b/bench/data/maize_3.nc
similarity index 100%
rename from bench/maize_3.nc
rename to bench/data/maize_3.nc
diff --git a/bench/mc_test.des b/bench/data/mc_test.des
similarity index 100%
rename from bench/mc_test.des
rename to bench/data/mc_test.des
diff --git a/bench/missing_scale_off.nc b/bench/data/missing_scale_off.nc
similarity index 100%
rename from bench/missing_scale_off.nc
rename to bench/data/missing_scale_off.nc
diff --git a/bench/modax.nc b/bench/data/modax.nc
similarity index 100%
rename from bench/modax.nc
rename to bench/data/modax.nc
diff --git a/bench/modfalse.nc b/bench/data/modfalse.nc
similarity index 100%
rename from bench/modfalse.nc
rename to bench/data/modfalse.nc
diff --git a/bench/modulo_lon_time.nc b/bench/data/modulo_lon_time.nc
similarity index 100%
rename from bench/modulo_lon_time.nc
rename to bench/data/modulo_lon_time.nc
diff --git a/bench/mylon.nc b/bench/data/mylon.nc
similarity index 100%
rename from bench/mylon.nc
rename to bench/data/mylon.nc
diff --git a/bench/nan_missing.nc b/bench/data/nan_missing.nc
similarity index 100%
rename from bench/nan_missing.nc
rename to bench/data/nan_missing.nc
diff --git a/bench/navy_uw.nc b/bench/data/navy_uw.nc
similarity index 100%
rename from bench/navy_uw.nc
rename to bench/data/navy_uw.nc
diff --git a/bench/nc5d.nc b/bench/data/nc5d.nc
similarity index 100%
rename from bench/nc5d.nc
rename to bench/data/nc5d.nc
diff --git a/bench/no_miss_att.nc b/bench/data/no_miss_att.nc
similarity index 100%
rename from bench/no_miss_att.nc
rename to bench/data/no_miss_att.nc
diff --git a/bench/nodim.nc b/bench/data/nodim.nc
similarity index 100%
rename from bench/nodim.nc
rename to bench/data/nodim.nc
diff --git a/bench/noglobalhistory.nc b/bench/data/noglobalhistory.nc
similarity index 100%
rename from bench/noglobalhistory.nc
rename to bench/data/noglobalhistory.nc
diff --git a/bench/non_COARDS.cdf b/bench/data/non_COARDS.cdf
similarity index 100%
rename from bench/non_COARDS.cdf
rename to bench/data/non_COARDS.cdf
diff --git a/bench/non_COARDS.cdl b/bench/data/non_COARDS.cdl
similarity index 100%
rename from bench/non_COARDS.cdl
rename to bench/data/non_COARDS.cdl
diff --git a/bench/numstring.nc b/bench/data/numstring.nc
similarity index 100%
rename from bench/numstring.nc
rename to bench/data/numstring.nc
diff --git a/bench/ocean_atlas_temp.cdf b/bench/data/ocean_atlas_temp.cdf
similarity index 100%
rename from bench/ocean_atlas_temp.cdf
rename to bench/data/ocean_atlas_temp.cdf
diff --git a/bench/proleptic_gregorian.nc b/bench/data/proleptic_gregorian.nc
similarity index 100%
rename from bench/proleptic_gregorian.nc
rename to bench/data/proleptic_gregorian.nc
diff --git a/bench/repeat_t_coord.nc b/bench/data/repeat_t_coord.nc
similarity index 100%
rename from bench/repeat_t_coord.nc
rename to bench/data/repeat_t_coord.nc
diff --git a/bench/reverse_axes.cdf b/bench/data/reverse_axes.cdf
similarity index 100%
rename from bench/reverse_axes.cdf
rename to bench/data/reverse_axes.cdf
diff --git a/bench/reverse_z_bnds.nc b/bench/data/reverse_z_bnds.nc
similarity index 100%
rename from bench/reverse_z_bnds.nc
rename to bench/data/reverse_z_bnds.nc
diff --git a/bench/run1.nc b/bench/data/run1.nc
similarity index 100%
rename from bench/run1.nc
rename to bench/data/run1.nc
diff --git a/bench/run2.nc b/bench/data/run2.nc
similarity index 100%
rename from bench/run2.nc
rename to bench/data/run2.nc
diff --git a/bench/run3.nc b/bench/data/run3.nc
similarity index 100%
rename from bench/run3.nc
rename to bench/data/run3.nc
diff --git a/bench/run4.nc b/bench/data/run4.nc
similarity index 100%
rename from bench/run4.nc
rename to bench/data/run4.nc
diff --git a/bench/scat2grid.nc b/bench/data/scat2grid.nc
similarity index 100%
rename from bench/scat2grid.nc
rename to bench/data/scat2grid.nc
diff --git a/bench/short.dat b/bench/data/short.dat
similarity index 100%
rename from bench/short.dat
rename to bench/data/short.dat
diff --git a/bench/shortSwapped.dat b/bench/data/shortSwapped.dat
similarity index 100%
rename from bench/shortSwapped.dat
rename to bench/data/shortSwapped.dat
diff --git a/bench/shorttemp.nc b/bench/data/shorttemp.nc
similarity index 100%
rename from bench/shorttemp.nc
rename to bench/data/shorttemp.nc
diff --git a/bench/shorttest.dat b/bench/data/shorttest.dat
similarity index 100%
rename from bench/shorttest.dat
rename to bench/data/shorttest.dat
diff --git a/bench/skip.dat b/bench/data/skip.dat
similarity index 100%
rename from bench/skip.dat
rename to bench/data/skip.dat
diff --git a/bench/ss_small.nc b/bench/data/ss_small.nc
similarity index 100%
rename from bench/ss_small.nc
rename to bench/data/ss_small.nc
diff --git a/bench/sstnok_short.nc b/bench/data/sstnok_short.nc
similarity index 100%
rename from bench/sstnok_short.nc
rename to bench/data/sstnok_short.nc
diff --git a/bench/sstok_short.nc b/bench/data/sstok_short.nc
similarity index 100%
rename from bench/sstok_short.nc
rename to bench/data/sstok_short.nc
diff --git a/bench/strdimfile.nc b/bench/data/strdimfile.nc
similarity index 100%
rename from bench/strdimfile.nc
rename to bench/data/strdimfile.nc
diff --git a/bench/stream10by5_i386-apple-darwin.unf b/bench/data/stream10by5_i386-apple-darwin.unf
similarity index 100%
rename from bench/stream10by5_i386-apple-darwin.unf
rename to bench/data/stream10by5_i386-apple-darwin.unf
diff --git a/bench/stream10by5_ia64-linux.unf b/bench/data/stream10by5_ia64-linux.unf
similarity index 100%
rename from bench/stream10by5_ia64-linux.unf
rename to bench/data/stream10by5_ia64-linux.unf
diff --git a/bench/stream10by5_ia64-sles9.unf b/bench/data/stream10by5_ia64-sles9.unf
similarity index 100%
rename from bench/stream10by5_ia64-sles9.unf
rename to bench/data/stream10by5_ia64-sles9.unf
diff --git a/bench/stream10by5_linux.unf b/bench/data/stream10by5_linux.unf
similarity index 100%
rename from bench/stream10by5_linux.unf
rename to bench/data/stream10by5_linux.unf
diff --git a/bench/stream10by5_x86_64-darwin.unf b/bench/data/stream10by5_x86_64-darwin.unf
similarity index 100%
rename from bench/stream10by5_x86_64-darwin.unf
rename to bench/data/stream10by5_x86_64-darwin.unf
diff --git a/bench/stream10by5_x86_64-linux.unf b/bench/data/stream10by5_x86_64-linux.unf
similarity index 100%
rename from bench/stream10by5_x86_64-linux.unf
rename to bench/data/stream10by5_x86_64-linux.unf
diff --git a/bench/string5d.nc b/bench/data/string5d.nc
similarity index 100%
rename from bench/string5d.nc
rename to bench/data/string5d.nc
diff --git a/bench/test0.nc b/bench/data/test0.nc
similarity index 100%
rename from bench/test0.nc
rename to bench/data/test0.nc
diff --git a/bench/test_axes.nc b/bench/data/test_axes.nc
similarity index 100%
rename from bench/test_axes.nc
rename to bench/data/test_axes.nc
diff --git a/bench/test_nan.nc b/bench/data/test_nan.nc
similarity index 100%
rename from bench/test_nan.nc
rename to bench/data/test_nan.nc
diff --git a/bench/test_save_dsg_in.nc b/bench/data/test_save_dsg_in.nc
similarity index 100%
rename from bench/test_save_dsg_in.nc
rename to bench/data/test_save_dsg_in.nc
diff --git a/bench/time_axis_seconds.nc b/bench/data/time_axis_seconds.nc
similarity index 100%
rename from bench/time_axis_seconds.nc
rename to bench/data/time_axis_seconds.nc
diff --git a/bench/timemissing.nc b/bench/data/timemissing.nc
similarity index 100%
rename from bench/timemissing.nc
rename to bench/data/timemissing.nc
diff --git a/bench/timesec.nc b/bench/data/timesec.nc
similarity index 100%
rename from bench/timesec.nc
rename to bench/data/timesec.nc
diff --git a/bench/tnok_short.des b/bench/data/tnok_short.des
similarity index 100%
rename from bench/tnok_short.des
rename to bench/data/tnok_short.des
diff --git a/bench/tok_short.des b/bench/data/tok_short.des
similarity index 100%
rename from bench/tok_short.des
rename to bench/data/tok_short.des
diff --git a/bench/toolong.nc b/bench/data/toolong.nc
similarity index 100%
rename from bench/toolong.nc
rename to bench/data/toolong.nc
diff --git a/bench/trajectory_trajectory_name.nc b/bench/data/trajectory_trajectory_name.nc
similarity index 100%
rename from bench/trajectory_trajectory_name.nc
rename to bench/data/trajectory_trajectory_name.nc
diff --git a/bench/tripolar_subset.nc b/bench/data/tripolar_subset.nc
similarity index 100%
rename from bench/tripolar_subset.nc
rename to bench/data/tripolar_subset.nc
diff --git a/bench/truemonth.nc b/bench/data/truemonth.nc
similarity index 100%
rename from bench/truemonth.nc
rename to bench/data/truemonth.nc
diff --git a/bench/twoType.dat b/bench/data/twoType.dat
similarity index 100%
rename from bench/twoType.dat
rename to bench/data/twoType.dat
diff --git a/bench/twodtime.nc b/bench/data/twodtime.nc
similarity index 100%
rename from bench/twodtime.nc
rename to bench/data/twodtime.nc
diff --git a/bench/uncentered.nc b/bench/data/uncentered.nc
similarity index 100%
rename from bench/uncentered.nc
rename to bench/data/uncentered.nc
diff --git a/bench/vary_scale.des b/bench/data/vary_scale.des
similarity index 100%
rename from bench/vary_scale.des
rename to bench/data/vary_scale.des
diff --git a/bench/varyscale_1.nc b/bench/data/varyscale_1.nc
similarity index 100%
rename from bench/varyscale_1.nc
rename to bench/data/varyscale_1.nc
diff --git a/bench/varyscale_2.nc b/bench/data/varyscale_2.nc
similarity index 100%
rename from bench/varyscale_2.nc
rename to bench/data/varyscale_2.nc
diff --git a/bench/weird_name1.cdf b/bench/data/weird_name1.cdf
similarity index 100%
rename from bench/weird_name1.cdf
rename to bench/data/weird_name1.cdf
diff --git a/bench/write_int_att.nc b/bench/data/write_int_att.nc
similarity index 100%
rename from bench/write_int_att.nc
rename to bench/data/write_int_att.nc
diff --git a/bench/xsz.nc b/bench/data/xsz.nc
similarity index 100%
rename from bench/xsz.nc
rename to bench/data/xsz.nc
diff --git a/bench/xz_nozattrib.nc b/bench/data/xz_nozattrib.nc
similarity index 100%
rename from bench/xz_nozattrib.nc
rename to bench/data/xz_nozattrib.nc
diff --git a/bench/z_wide_variation.nc b/bench/data/z_wide_variation.nc
similarity index 100%
rename from bench/z_wide_variation.nc
rename to bench/data/z_wide_variation.nc
diff --git a/bench/ferret_startup b/bench/ferret_startup
index a69b6bf..10b90c0 100644
--- a/bench/ferret_startup
+++ b/bench/ferret_startup
@@ -1,7 +1,7 @@
CAN MODE VERIFY
! This file will be copied to .ferret as part
-! pf the benchmark testing
+! of the benchmark testing
SET MEMORY/SIZE=31
SET MODE journal startup_tests.jnl
diff --git a/bench/bench_add_9.jnl b/bench/genjnls/bench_add_9.jnl
similarity index 100%
rename from bench/bench_add_9.jnl
rename to bench/genjnls/bench_add_9.jnl
diff --git a/bench/bench_avet.jnl b/bench/genjnls/bench_avet.jnl
similarity index 100%
rename from bench/bench_avet.jnl
rename to bench/genjnls/bench_avet.jnl
diff --git a/bench/bench_examples.jnl b/bench/genjnls/bench_examples.jnl
similarity index 100%
rename from bench/bench_examples.jnl
rename to bench/genjnls/bench_examples.jnl
diff --git a/bench/bench_pass_thru.jnl b/bench/genjnls/bench_pass_thru.jnl
similarity index 100%
rename from bench/bench_pass_thru.jnl
rename to bench/genjnls/bench_pass_thru.jnl
diff --git a/bench/bench_storage.jnl b/bench/genjnls/bench_storage.jnl
similarity index 100%
rename from bench/bench_storage.jnl
rename to bench/genjnls/bench_storage.jnl
diff --git a/bench/bench_subtract.jnl b/bench/genjnls/bench_subtract.jnl
similarity index 100%
rename from bench/bench_subtract.jnl
rename to bench/genjnls/bench_subtract.jnl
diff --git a/bench/bn_all.jnl b/bench/genjnls/bn_all.jnl
similarity index 98%
rename from bench/bn_all.jnl
rename to bench/genjnls/bn_all.jnl
index 451fdf8..8a07f65 100644
--- a/bench/bn_all.jnl
+++ b/bench/genjnls/bn_all.jnl
@@ -1143,9 +1143,23 @@ GO bn_iin_regrid
! *********** v7.21 Additions ***********
-GO bn_reset
+GO bn_reset bn721_bug_fixes
GO bn721_bug_fixes
+! *********** v7.22 Additions ***********
+
+GO bn_reset bn722_bug_fixes
+GO bn722_bug_fixes
+
+GO bn_reset bn_tseries_modulo
+GO bn_tseries_modulo
+
+GO bn_reset bn_huge_axis
+GO bn_huge_axis
+
+GO bn_reset bn_save_as_global
+GO bn_save_as_global
+
! *********** Always do a bn_reset ***********
! *********** make sure things clean up well **
GO bn_reset
diff --git a/bench/bn_all_ef.jnl b/bench/genjnls/bn_all_ef.jnl
similarity index 100%
rename from bench/bn_all_ef.jnl
rename to bench/genjnls/bn_all_ef.jnl
diff --git a/bench/bn_all_ef_shell.jnl b/bench/genjnls/bn_all_ef_shell.jnl
similarity index 100%
rename from bench/bn_all_ef_shell.jnl
rename to bench/genjnls/bn_all_ef_shell.jnl
diff --git a/bench/bn_all_shell.jnl b/bench/genjnls/bn_all_shell.jnl
similarity index 100%
rename from bench/bn_all_shell.jnl
rename to bench/genjnls/bn_all_shell.jnl
diff --git a/bench/bn_batch_metafile.jnl b/bench/genjnls/bn_batch_metafile.jnl
similarity index 100%
rename from bench/bn_batch_metafile.jnl
rename to bench/genjnls/bn_batch_metafile.jnl
diff --git a/bench/bn_batch_metafile_shell.jnl b/bench/genjnls/bn_batch_metafile_shell.jnl
similarity index 100%
rename from bench/bn_batch_metafile_shell.jnl
rename to bench/genjnls/bn_batch_metafile_shell.jnl
diff --git a/bench/bn_ef_external_functions.jnl b/bench/genjnls/bn_ef_external_functions.jnl
similarity index 100%
rename from bench/bn_ef_external_functions.jnl
rename to bench/genjnls/bn_ef_external_functions.jnl
diff --git a/bench/bn_external_functions.jnl b/bench/genjnls/bn_external_functions.jnl
similarity index 100%
rename from bench/bn_external_functions.jnl
rename to bench/genjnls/bn_external_functions.jnl
diff --git a/bench/bn_fcn_calls.jnl b/bench/genjnls/bn_fcn_calls.jnl
similarity index 100%
rename from bench/bn_fcn_calls.jnl
rename to bench/genjnls/bn_fcn_calls.jnl
diff --git a/bench/bn_gif.jnl b/bench/genjnls/bn_gif.jnl
similarity index 100%
rename from bench/bn_gif.jnl
rename to bench/genjnls/bn_gif.jnl
diff --git a/bench/bn_gif_shell.jnl b/bench/genjnls/bn_gif_shell.jnl
similarity index 100%
rename from bench/bn_gif_shell.jnl
rename to bench/genjnls/bn_gif_shell.jnl
diff --git a/bench/bn_hovmuller_overlays.jnl b/bench/genjnls/bn_hovmuller_overlays.jnl
similarity index 100%
rename from bench/bn_hovmuller_overlays.jnl
rename to bench/genjnls/bn_hovmuller_overlays.jnl
diff --git a/bench/bn_labels_on_taxis.jnl b/bench/genjnls/bn_labels_on_taxis.jnl
similarity index 100%
rename from bench/bn_labels_on_taxis.jnl
rename to bench/genjnls/bn_labels_on_taxis.jnl
diff --git a/bench/bn_ps.jnl b/bench/genjnls/bn_ps.jnl
similarity index 100%
rename from bench/bn_ps.jnl
rename to bench/genjnls/bn_ps.jnl
diff --git a/bench/bn_ps_shell.jnl b/bench/genjnls/bn_ps_shell.jnl
similarity index 100%
rename from bench/bn_ps_shell.jnl
rename to bench/genjnls/bn_ps_shell.jnl
diff --git a/bench/bn_reset.jnl b/bench/genjnls/bn_reset.jnl
similarity index 95%
rename from bench/bn_reset.jnl
rename to bench/genjnls/bn_reset.jnl
index f9caf52..045446b 100644
--- a/bench/bn_reset.jnl
+++ b/bench/genjnls/bn_reset.jnl
@@ -14,6 +14,7 @@ CANCEL REGION/ALL
CANCEL DATA/ALL
CANCEL VARIABLES/ALL
CANCEL MEMORY/ALL
+SET MEMORY/SIZE=25.6 ! return to the default setting
CANCEL MODE STUPID ! added 4/2017
SET GRID ABSTRACT
CANCEL MODE DIAGNOSTIC
diff --git a/bench/bn_startupfile.jnl b/bench/genjnls/bn_startupfile.jnl
similarity index 100%
rename from bench/bn_startupfile.jnl
rename to bench/genjnls/bn_startupfile.jnl
diff --git a/bench/bn_startupfile_shell.jnl b/bench/genjnls/bn_startupfile_shell.jnl
similarity index 100%
rename from bench/bn_startupfile_shell.jnl
rename to bench/genjnls/bn_startupfile_shell.jnl
diff --git a/bench/ddsg_socat3.jnl b/bench/genjnls/ddsg_socat3.jnl
similarity index 100%
rename from bench/ddsg_socat3.jnl
rename to bench/genjnls/ddsg_socat3.jnl
diff --git a/bench/metafile_masters_64bit_rh6/bat.plt_6 b/bench/metafile_masters_64bit_rh6/bat.plt_6
index bb5b36f..c8f7ef3 100644
--- a/bench/metafile_masters_64bit_rh6/bat.plt_6
+++ b/bench/metafile_masters_64bit_rh6/bat.plt_6
@@ -1,4 +1,4 @@
-GKSM at flat.pmel.noaa.gov XPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
+GKSMansley at dunkel.pmel.nXPPLP Profile F 1.0 17/10/13 1 0 3 6 611 1 1
4 12 3 0
51 29 19 1 1.00000 0
56 39 2 1.00000 0.00000 0.00000
@@ -84,7 +84,7 @@ GKSM at flat.pmel.noaa.gov XPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
11 6914 314 0.55405 0.40469 0.55542 0.40485 0.55678 0.40511 0.55810 0.40548 0.55938 0.40596 0.56061 0.40653 0.56178 0.40720 0.56287 0.40797 0.56389 0.40882 0.56482 0.40976 0.56566 0.41078 0.56639 0.41188 0.56700 0.41305 0.56750 0.41428 0.56787 0.41557 0.56811 0.41691 0.56821 0.41829 0.56817 0.41971 0.56798 0.42116 0.56764 0.42263 0.56714 0.42412 0.56649 [...]
21 6 1
25 6 1
- 11 864 39 0.11765 0.13725 0.11765 0.13725 0.11765 0.13725 0.10539 0.13725 0.11765 0.13725 0.11765 0.19073 0.10539 0.19073 0.11765 0.19073 0.11765 0.24421 0.10539 0.24421 0.11765 0.24421 0.11765 0.29768 0.10539 0.29768 0.11765 0.29768 0.11765 0.35116 0.10539 0.35116 0.11765 0.35116 0.11765 0.40463 0.10539 0.40463 0.11765 0.40463 0.11765 0.45811 0.10539 [...]
+ 11 864 39 0.11765 0.13725 0.11765 0.13725 0.10539 0.13725 0.11765 0.13725 0.11765 0.19073 0.10539 0.19073 0.11765 0.19073 0.11765 0.24421 0.10539 0.24421 0.11765 0.24421 0.11765 0.29768 0.10539 0.29768 0.11765 0.29768 0.11765 0.35116 0.10539 0.35116 0.11765 0.35116 0.11765 0.40463 0.10539 0.40463 0.11765 0.40463 0.11765 0.45811 0.10539 0.45811 0.11765 [...]
11 50 2 0.05509 0.19003 0.06349 0.19003
11 314 14 0.06723 0.19330 0.06723 0.19377 0.06769 0.19470 0.06816 0.19517 0.06909 0.19563 0.07096 0.19563 0.07190 0.19517 0.07236 0.19470 0.07283 0.19377 0.07283 0.19283 0.07236 0.19190 0.07143 0.19050 0.06676 0.18583 0.07330 0.18583
11 380 17 0.07890 0.19563 0.07750 0.19517 0.07656 0.19377 0.07610 0.19143 0.07610 0.19003 0.07656 0.18770 0.07750 0.18630 0.07890 0.18583 0.07983 0.18583 0.08123 0.18630 0.08217 0.18770 0.08263 0.19003 0.08263 0.19143 0.08217 0.19377 0.08123 0.19517 0.07983 0.19563 0.07890 0.19563
@@ -109,9 +109,9 @@ GKSM at flat.pmel.noaa.gov XPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
11 380 17 0.07890 0.73039 0.07750 0.72993 0.07656 0.72852 0.07610 0.72619 0.07610 0.72479 0.07656 0.72246 0.07750 0.72105 0.07890 0.72059 0.07983 0.72059 0.08123 0.72105 0.08217 0.72246 0.08263 0.72479 0.08263 0.72619 0.08217 0.72852 0.08123 0.72993 0.07983 0.73039 0.07890 0.73039
11 380 17 0.08824 0.73039 0.08683 0.72993 0.08590 0.72852 0.08543 0.72619 0.08543 0.72479 0.08590 0.72246 0.08683 0.72105 0.08824 0.72059 0.08917 0.72059 0.09057 0.72105 0.09150 0.72246 0.09197 0.72479 0.09197 0.72619 0.09150 0.72852 0.09057 0.72993 0.08917 0.73039 0.08824 0.73039
11 116 5 0.09570 0.72152 0.09524 0.72105 0.09570 0.72059 0.09617 0.72105 0.09570 0.72152
- 11 864 39 0.90196 0.13725 0.90196 0.13725 0.90196 0.13725 0.91422 0.13725 0.90196 0.13725 0.90196 0.19073 0.91422 0.19073 0.90196 0.19073 0.90196 0.24421 0.91422 0.24421 0.90196 0.24421 0.90196 0.29768 0.91422 0.29768 0.90196 0.29768 0.90196 0.35116 0.91422 0.35116 0.90196 0.35116 0.90196 0.40463 0.91422 0.40463 0.90196 0.40463 0.90196 0.45811 0.91422 [...]
- 11 864 39 0.13703 0.72549 0.11765 0.72549 0.13703 0.72549 0.13703 0.73775 0.13703 0.72549 0.20630 0.72549 0.20630 0.73775 0.20630 0.72549 0.27558 0.72549 0.27558 0.73775 0.27558 0.72549 0.34485 0.72549 0.34485 0.73775 0.34485 0.72549 0.41412 0.72549 0.41412 0.73775 0.41412 0.72549 0.48339 0.72549 0.48339 0.73775 0.48339 0.72549 0.55267 0.72549 0.55267 [...]
- 11 864 39 0.13703 0.13725 0.11765 0.13725 0.13703 0.13725 0.13703 0.12500 0.13703 0.13725 0.20630 0.13725 0.20630 0.12500 0.20630 0.13725 0.27558 0.13725 0.27558 0.12500 0.27558 0.13725 0.34485 0.13725 0.34485 0.12500 0.34485 0.13725 0.41412 0.13725 0.41412 0.12500 0.41412 0.13725 0.48339 0.13725 0.48339 0.12500 0.48339 0.13725 0.55267 0.13725 0.55267 [...]
+ 11 864 39 0.90196 0.13725 0.90196 0.13725 0.91422 0.13725 0.90196 0.13725 0.90196 0.19073 0.91422 0.19073 0.90196 0.19073 0.90196 0.24421 0.91422 0.24421 0.90196 0.24421 0.90196 0.29768 0.91422 0.29768 0.90196 0.29768 0.90196 0.35116 0.91422 0.35116 0.90196 0.35116 0.90196 0.40463 0.91422 0.40463 0.90196 0.40463 0.90196 0.45811 0.91422 0.45811 0.90196 [...]
+ 11 864 39 0.13703 0.72549 0.13703 0.72549 0.13703 0.73775 0.13703 0.72549 0.20630 0.72549 0.20630 0.73775 0.20630 0.72549 0.27558 0.72549 0.27558 0.73775 0.27558 0.72549 0.34485 0.72549 0.34485 0.73775 0.34485 0.72549 0.41412 0.72549 0.41412 0.73775 0.41412 0.72549 0.48339 0.72549 0.48339 0.73775 0.48339 0.72549 0.55267 0.72549 0.55267 0.73775 0.55267 [...]
+ 11 864 39 0.13703 0.13725 0.13703 0.13725 0.13703 0.12500 0.13703 0.13725 0.20630 0.13725 0.20630 0.12500 0.20630 0.13725 0.27558 0.13725 0.27558 0.12500 0.27558 0.13725 0.34485 0.13725 0.34485 0.12500 0.34485 0.13725 0.41412 0.13725 0.41412 0.12500 0.41412 0.13725 0.48339 0.13725 0.48339 0.12500 0.48339 0.13725 0.55267 0.13725 0.55267 0.12500 0.55267 [...]
11 50 2 0.11649 0.11057 0.12489 0.11057
11 336 15 0.12909 0.11618 0.13423 0.11618 0.13143 0.11244 0.13283 0.11244 0.13376 0.11197 0.13423 0.11151 0.13470 0.11011 0.13470 0.10917 0.13423 0.10777 0.13329 0.10684 0.13189 0.10637 0.13049 0.10637 0.12909 0.10684 0.12863 0.10731 0.12816 0.10824
11 380 17 0.14030 0.11618 0.13890 0.11571 0.13796 0.11431 0.13750 0.11197 0.13750 0.11057 0.13796 0.10824 0.13890 0.10684 0.14030 0.10637 0.14123 0.10637 0.14263 0.10684 0.14357 0.10824 0.14403 0.11057 0.14403 0.11197 0.14357 0.11431 0.14263 0.11571 0.14123 0.11618 0.14030 0.11618
@@ -199,22 +199,6 @@ GKSM at flat.pmel.noaa.gov XPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
11 72 3 0.00980 0.08725 0.00980 0.08725 0.06127 0.08725
21 6 1
25 6 1
- 11 50 2 0.11933 0.79608 0.12717 0.78431
- 11 50 2 0.12717 0.79608 0.11933 0.78431
- 11 116 5 0.14062 0.79216 0.14006 0.79160 0.14062 0.79104 0.14118 0.79160 0.14062 0.79216
- 11 116 5 0.14062 0.78543 0.14006 0.78487 0.14062 0.78431 0.14118 0.78487 0.14062 0.78543
- 11 380 17 0.15742 0.79608 0.15574 0.79552 0.15462 0.79384 0.15406 0.79104 0.15406 0.78936 0.15462 0.78655 0.15574 0.78487 0.15742 0.78431 0.15854 0.78431 0.16022 0.78487 0.16134 0.78655 0.16190 0.78936 0.16190 0.79104 0.16134 0.79384 0.16022 0.79552 0.15854 0.79608 0.15742 0.79608
- 11 116 5 0.16639 0.78543 0.16583 0.78487 0.16639 0.78431 0.16695 0.78487 0.16639 0.78543
- 11 380 17 0.17759 0.79608 0.17199 0.79608 0.17143 0.79104 0.17199 0.79160 0.17367 0.79216 0.17535 0.79216 0.17703 0.79160 0.17815 0.79048 0.17871 0.78880 0.17871 0.78768 0.17815 0.78599 0.17703 0.78487 0.17535 0.78431 0.17367 0.78431 0.17199 0.78487 0.17143 0.78543 0.17087 0.78655
- 11 116 5 0.19216 0.79608 0.19216 0.78655 0.19272 0.78487 0.19384 0.78431 0.19496 0.78431
- 11 50 2 0.19048 0.79216 0.19440 0.79216
- 11 380 17 0.20056 0.79216 0.19944 0.79160 0.19832 0.79048 0.19776 0.78880 0.19776 0.78768 0.19832 0.78599 0.19944 0.78487 0.20056 0.78431 0.20224 0.78431 0.20336 0.78487 0.20448 0.78599 0.20504 0.78768 0.20504 0.78880 0.20448 0.79048 0.20336 0.79160 0.20224 0.79216 0.20056 0.79216
- 11 336 15 0.21849 0.79608 0.22465 0.79608 0.22129 0.79160 0.22297 0.79160 0.22409 0.79104 0.22465 0.79048 0.22521 0.78880 0.22521 0.78768 0.22465 0.78599 0.22353 0.78487 0.22185 0.78431 0.22017 0.78431 0.21849 0.78487 0.21793 0.78543 0.21737 0.78655
- 11 94 4 0.23025 0.79384 0.23137 0.79440 0.23305 0.79608 0.23305 0.78431
- 11 72 3 0.24538 0.79608 0.23978 0.78824 0.24818 0.78824
- 11 50 2 0.24538 0.79608 0.24538 0.78431
- 11 116 5 0.25210 0.78543 0.25154 0.78487 0.25210 0.78431 0.25266 0.78487 0.25210 0.78543
- 11 380 17 0.26331 0.79608 0.25770 0.79608 0.25714 0.79104 0.25770 0.79160 0.25938 0.79216 0.26106 0.79216 0.26275 0.79160 0.26387 0.79048 0.26443 0.78880 0.26443 0.78768 0.26387 0.78599 0.26275 0.78487 0.26106 0.78431 0.25938 0.78431 0.25770 0.78487 0.25714 0.78543 0.25658 0.78655
11 50 2 0.07306 0.09118 0.07306 0.08333
11 50 2 0.07754 0.08894 0.07754 0.08445
11 50 2 0.07568 0.08782 0.07941 0.08557
diff --git a/bench/metafile_masters_64bit_rh6/bnplot-3.plt b/bench/metafile_masters_64bit_rh6/bnplot-3.plt
index c23d113..dba6a62 100644
--- a/bench/metafile_masters_64bit_rh6/bnplot-3.plt
+++ b/bench/metafile_masters_64bit_rh6/bnplot-3.plt
@@ -1,4 +1,4 @@
-GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
+GKSMansley at dunkel.pmel.nXPPLP Profile F 1.0 17/10/13 1 0 3 6 611 1 1
4 12 3 0
51 29 19 1 1.00000 0
56 39 2 1.00000 0.00000 0.00000
@@ -2824,6 +2824,8 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
81 6 65
21 6 1
25 6 1
+ 21 6 1
+ 25 6 1
71 44 0.00000 1.00000 0.00000 0.57516
72 44 0.00000 15.30000 0.00000 8.80000
11 446 20 0.79961 0.11466 0.80238 0.11905 0.80578 0.12414 0.80935 0.12905 0.81227 0.13254 0.81397 0.13395 0.81451 0.13366 0.81436 0.13250 0.81395 0.13119 0.81357 0.13010 0.81337 0.12940 0.81342 0.12916 0.81376 0.12940 0.81444 0.13016 0.81550 0.13150 0.81702 0.13348 0.81906 0.13620 0.82171 0.13976 0.82499 0.14419 0.82882 0.14936
@@ -2886,6 +2888,8 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 50 2 0.77982 0.13618 0.77293 0.14582
11 446 20 0.77982 0.13618 0.78060 0.13523 0.78141 0.13425 0.78223 0.13324 0.78309 0.13221 0.78396 0.13114 0.78486 0.13004 0.78579 0.12891 0.78675 0.12774 0.78774 0.12654 0.78875 0.12530 0.78981 0.12402 0.79089 0.12269 0.79201 0.12133 0.79317 0.11991 0.79437 0.11845 0.79561 0.11694 0.79690 0.11537 0.79823 0.11375 0.79961 0.11207
11 50 2 0.79961 0.11207 0.79961 0.11466
+ 21 6 1
+ 25 6 1
82 0
81 6 66
82 0
diff --git a/bench/metafile_masters_64bit_rh6/bnplot-4.plt b/bench/metafile_masters_64bit_rh6/bnplot-4.plt
index b108f3c..26f4c44 100644
--- a/bench/metafile_masters_64bit_rh6/bnplot-4.plt
+++ b/bench/metafile_masters_64bit_rh6/bnplot-4.plt
@@ -1,4 +1,4 @@
-GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
+GKSMansley at dunkel.pmel.nXPPLP Profile F 1.0 17/10/13 1 0 3 6 611 1 1
4 12 3 0
51 29 19 1 1.00000 0
56 39 2 1.00000 0.00000 0.00000
@@ -244,12 +244,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 50 2 0.03652 0.42477 0.04427 0.41701
21 6 1
25 6 1
- 11 50 2 0.04817 0.43511 0.04817 0.42994
- 11 72 3 0.04989 0.43166 0.05186 0.43289 0.05383 0.43166
- 11 72 3 0.04989 0.43166 0.05186 0.43265 0.05383 0.43166
- 11 94 4 0.05605 0.43413 0.05654 0.43437 0.05728 0.43511 0.05728 0.42994
- 11 116 5 0.06073 0.43043 0.06048 0.43019 0.06073 0.42994 0.06097 0.43019 0.06073 0.43043
- 11 94 4 0.06343 0.43413 0.06393 0.43437 0.06467 0.43511 0.06467 0.42994
11 50 2 0.04817 0.42348 0.04817 0.41831
11 72 3 0.04989 0.42003 0.05186 0.42126 0.05383 0.42003
11 72 3 0.04989 0.42003 0.05186 0.42101 0.05383 0.42003
@@ -312,18 +306,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 50 2 0.03781 0.41184 0.04298 0.40667
21 6 1
25 6 1
- 11 50 2 0.04817 0.43511 0.04817 0.42994
- 11 72 3 0.04989 0.43166 0.05186 0.43289 0.05383 0.43166
- 11 72 3 0.04989 0.43166 0.05186 0.43265 0.05383 0.43166
- 11 94 4 0.05605 0.43413 0.05654 0.43437 0.05728 0.43511 0.05728 0.42994
- 11 116 5 0.06073 0.43043 0.06048 0.43019 0.06073 0.42994 0.06097 0.43019 0.06073 0.43043
- 11 94 4 0.06343 0.43413 0.06393 0.43437 0.06467 0.43511 0.06467 0.42994
- 11 50 2 0.04817 0.42348 0.04817 0.41831
- 11 72 3 0.04989 0.42003 0.05186 0.42126 0.05383 0.42003
- 11 72 3 0.04989 0.42003 0.05186 0.42101 0.05383 0.42003
- 11 94 4 0.05605 0.42249 0.05654 0.42274 0.05728 0.42348 0.05728 0.41831
- 11 116 5 0.06073 0.41880 0.06048 0.41855 0.06073 0.41831 0.06097 0.41855 0.06073 0.41880
- 11 314 14 0.06294 0.42225 0.06294 0.42249 0.06319 0.42298 0.06343 0.42323 0.06393 0.42348 0.06491 0.42348 0.06540 0.42323 0.06565 0.42298 0.06590 0.42249 0.06590 0.42200 0.06565 0.42151 0.06516 0.42077 0.06270 0.41831 0.06614 0.41831
11 50 2 0.04817 0.41184 0.04817 0.40667
11 72 3 0.04989 0.40839 0.05186 0.40963 0.05383 0.40839
11 72 3 0.04989 0.40839 0.05186 0.40938 0.05383 0.40839
@@ -357,24 +339,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 72 3 0.00646 0.39762 0.00646 0.39762 0.04040 0.39762
21 6 1
25 6 1
- 11 50 2 0.04817 0.43511 0.04817 0.42994
- 11 72 3 0.04989 0.43166 0.05186 0.43289 0.05383 0.43166
- 11 72 3 0.04989 0.43166 0.05186 0.43265 0.05383 0.43166
- 11 94 4 0.05605 0.43413 0.05654 0.43437 0.05728 0.43511 0.05728 0.42994
- 11 116 5 0.06073 0.43043 0.06048 0.43019 0.06073 0.42994 0.06097 0.43019 0.06073 0.43043
- 11 94 4 0.06343 0.43413 0.06393 0.43437 0.06467 0.43511 0.06467 0.42994
- 11 50 2 0.04817 0.42348 0.04817 0.41831
- 11 72 3 0.04989 0.42003 0.05186 0.42126 0.05383 0.42003
- 11 72 3 0.04989 0.42003 0.05186 0.42101 0.05383 0.42003
- 11 94 4 0.05605 0.42249 0.05654 0.42274 0.05728 0.42348 0.05728 0.41831
- 11 116 5 0.06073 0.41880 0.06048 0.41855 0.06073 0.41831 0.06097 0.41855 0.06073 0.41880
- 11 314 14 0.06294 0.42225 0.06294 0.42249 0.06319 0.42298 0.06343 0.42323 0.06393 0.42348 0.06491 0.42348 0.06540 0.42323 0.06565 0.42298 0.06590 0.42249 0.06590 0.42200 0.06565 0.42151 0.06516 0.42077 0.06270 0.41831 0.06614 0.41831
- 11 50 2 0.04817 0.41184 0.04817 0.40667
- 11 72 3 0.04989 0.40839 0.05186 0.40963 0.05383 0.40839
- 11 72 3 0.04989 0.40839 0.05186 0.40938 0.05383 0.40839
- 11 94 4 0.05605 0.41086 0.05654 0.41110 0.05728 0.41184 0.05728 0.40667
- 11 116 5 0.06073 0.40716 0.06048 0.40692 0.06073 0.40667 0.06097 0.40692 0.06073 0.40716
- 11 336 15 0.06319 0.41184 0.06590 0.41184 0.06442 0.40987 0.06516 0.40987 0.06565 0.40963 0.06590 0.40938 0.06614 0.40864 0.06614 0.40815 0.06590 0.40741 0.06540 0.40692 0.06467 0.40667 0.06393 0.40667 0.06319 0.40692 0.06294 0.40716 0.06270 0.40766
11 50 2 0.04817 0.40021 0.04817 0.39504
11 72 3 0.04989 0.39676 0.05186 0.39799 0.05383 0.39676
11 72 3 0.04989 0.39676 0.05186 0.39775 0.05383 0.39676
@@ -400,31 +364,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 72 3 0.00646 0.38599 0.00646 0.38599 0.04040 0.38599
21 6 1
25 6 1
- 11 50 2 0.04817 0.43511 0.04817 0.42994
- 11 72 3 0.04989 0.43166 0.05186 0.43289 0.05383 0.43166
- 11 72 3 0.04989 0.43166 0.05186 0.43265 0.05383 0.43166
- 11 94 4 0.05605 0.43413 0.05654 0.43437 0.05728 0.43511 0.05728 0.42994
- 11 116 5 0.06073 0.43043 0.06048 0.43019 0.06073 0.42994 0.06097 0.43019 0.06073 0.43043
- 11 94 4 0.06343 0.43413 0.06393 0.43437 0.06467 0.43511 0.06467 0.42994
- 11 50 2 0.04817 0.42348 0.04817 0.41831
- 11 72 3 0.04989 0.42003 0.05186 0.42126 0.05383 0.42003
- 11 72 3 0.04989 0.42003 0.05186 0.42101 0.05383 0.42003
- 11 94 4 0.05605 0.42249 0.05654 0.42274 0.05728 0.42348 0.05728 0.41831
- 11 116 5 0.06073 0.41880 0.06048 0.41855 0.06073 0.41831 0.06097 0.41855 0.06073 0.41880
- 11 314 14 0.06294 0.42225 0.06294 0.42249 0.06319 0.42298 0.06343 0.42323 0.06393 0.42348 0.06491 0.42348 0.06540 0.42323 0.06565 0.42298 0.06590 0.42249 0.06590 0.42200 0.06565 0.42151 0.06516 0.42077 0.06270 0.41831 0.06614 0.41831
- 11 50 2 0.04817 0.41184 0.04817 0.40667
- 11 72 3 0.04989 0.40839 0.05186 0.40963 0.05383 0.40839
- 11 72 3 0.04989 0.40839 0.05186 0.40938 0.05383 0.40839
- 11 94 4 0.05605 0.41086 0.05654 0.41110 0.05728 0.41184 0.05728 0.40667
- 11 116 5 0.06073 0.40716 0.06048 0.40692 0.06073 0.40667 0.06097 0.40692 0.06073 0.40716
- 11 336 15 0.06319 0.41184 0.06590 0.41184 0.06442 0.40987 0.06516 0.40987 0.06565 0.40963 0.06590 0.40938 0.06614 0.40864 0.06614 0.40815 0.06590 0.40741 0.06540 0.40692 0.06467 0.40667 0.06393 0.40667 0.06319 0.40692 0.06294 0.40716 0.06270 0.40766
- 11 50 2 0.04817 0.40021 0.04817 0.39504
- 11 72 3 0.04989 0.39676 0.05186 0.39799 0.05383 0.39676
- 11 72 3 0.04989 0.39676 0.05186 0.39775 0.05383 0.39676
- 11 94 4 0.05605 0.39922 0.05654 0.39947 0.05728 0.40021 0.05728 0.39504
- 11 116 5 0.06073 0.39553 0.06048 0.39528 0.06073 0.39504 0.06097 0.39528 0.06073 0.39553
- 11 72 3 0.06516 0.40021 0.06270 0.39676 0.06639 0.39676
- 11 50 2 0.06516 0.40021 0.06516 0.39504
11 50 2 0.04817 0.38857 0.04817 0.38340
11 72 3 0.04989 0.38513 0.05186 0.38636 0.05383 0.38513
11 72 3 0.04989 0.38513 0.05186 0.38611 0.05383 0.38513
@@ -474,37 +413,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 94 4 0.10891 0.47434 0.11117 0.47887 0.11343 0.47434 0.10891 0.47434
21 6 1
25 6 1
- 11 50 2 0.04817 0.43511 0.04817 0.42994
- 11 72 3 0.04989 0.43166 0.05186 0.43289 0.05383 0.43166
- 11 72 3 0.04989 0.43166 0.05186 0.43265 0.05383 0.43166
- 11 94 4 0.05605 0.43413 0.05654 0.43437 0.05728 0.43511 0.05728 0.42994
- 11 116 5 0.06073 0.43043 0.06048 0.43019 0.06073 0.42994 0.06097 0.43019 0.06073 0.43043
- 11 94 4 0.06343 0.43413 0.06393 0.43437 0.06467 0.43511 0.06467 0.42994
- 11 50 2 0.04817 0.42348 0.04817 0.41831
- 11 72 3 0.04989 0.42003 0.05186 0.42126 0.05383 0.42003
- 11 72 3 0.04989 0.42003 0.05186 0.42101 0.05383 0.42003
- 11 94 4 0.05605 0.42249 0.05654 0.42274 0.05728 0.42348 0.05728 0.41831
- 11 116 5 0.06073 0.41880 0.06048 0.41855 0.06073 0.41831 0.06097 0.41855 0.06073 0.41880
- 11 314 14 0.06294 0.42225 0.06294 0.42249 0.06319 0.42298 0.06343 0.42323 0.06393 0.42348 0.06491 0.42348 0.06540 0.42323 0.06565 0.42298 0.06590 0.42249 0.06590 0.42200 0.06565 0.42151 0.06516 0.42077 0.06270 0.41831 0.06614 0.41831
- 11 50 2 0.04817 0.41184 0.04817 0.40667
- 11 72 3 0.04989 0.40839 0.05186 0.40963 0.05383 0.40839
- 11 72 3 0.04989 0.40839 0.05186 0.40938 0.05383 0.40839
- 11 94 4 0.05605 0.41086 0.05654 0.41110 0.05728 0.41184 0.05728 0.40667
- 11 116 5 0.06073 0.40716 0.06048 0.40692 0.06073 0.40667 0.06097 0.40692 0.06073 0.40716
- 11 336 15 0.06319 0.41184 0.06590 0.41184 0.06442 0.40987 0.06516 0.40987 0.06565 0.40963 0.06590 0.40938 0.06614 0.40864 0.06614 0.40815 0.06590 0.40741 0.06540 0.40692 0.06467 0.40667 0.06393 0.40667 0.06319 0.40692 0.06294 0.40716 0.06270 0.40766
- 11 50 2 0.04817 0.40021 0.04817 0.39504
- 11 72 3 0.04989 0.39676 0.05186 0.39799 0.05383 0.39676
- 11 72 3 0.04989 0.39676 0.05186 0.39775 0.05383 0.39676
- 11 94 4 0.05605 0.39922 0.05654 0.39947 0.05728 0.40021 0.05728 0.39504
- 11 116 5 0.06073 0.39553 0.06048 0.39528 0.06073 0.39504 0.06097 0.39528 0.06073 0.39553
- 11 72 3 0.06516 0.40021 0.06270 0.39676 0.06639 0.39676
- 11 50 2 0.06516 0.40021 0.06516 0.39504
- 11 50 2 0.04817 0.38857 0.04817 0.38340
- 11 72 3 0.04989 0.38513 0.05186 0.38636 0.05383 0.38513
- 11 72 3 0.04989 0.38513 0.05186 0.38611 0.05383 0.38513
- 11 94 4 0.05605 0.38759 0.05654 0.38783 0.05728 0.38857 0.05728 0.38340
- 11 116 5 0.06073 0.38390 0.06048 0.38365 0.06073 0.38340 0.06097 0.38365 0.06073 0.38390
- 11 380 17 0.06565 0.38857 0.06319 0.38857 0.06294 0.38636 0.06319 0.38660 0.06393 0.38685 0.06467 0.38685 0.06540 0.38660 0.06590 0.38611 0.06614 0.38537 0.06614 0.38488 0.06590 0.38414 0.06540 0.38365 0.06467 0.38340 0.06393 0.38340 0.06319 0.38365 0.06294 0.38390 0.06270 0.38439
11 50 2 0.11713 0.47867 0.11713 0.47454
11 72 3 0.11851 0.47592 0.12009 0.47690 0.12166 0.47592
11 72 3 0.11851 0.47592 0.12009 0.47670 0.12166 0.47592
@@ -763,20 +671,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 50 2 0.53781 0.43511 0.54298 0.42994
21 6 1
25 6 1
- 11 50 2 0.57867 0.70593 0.58384 0.69817
- 11 50 2 0.58384 0.70593 0.57867 0.69817
- 11 116 5 0.59271 0.70335 0.59234 0.70298 0.59271 0.70261 0.59307 0.70298 0.59271 0.70335
- 11 116 5 0.59271 0.69891 0.59234 0.69854 0.59271 0.69817 0.59307 0.69854 0.59271 0.69891
- 11 380 17 0.60379 0.70593 0.60268 0.70556 0.60194 0.70445 0.60157 0.70261 0.60157 0.70150 0.60194 0.69965 0.60268 0.69854 0.60379 0.69817 0.60452 0.69817 0.60563 0.69854 0.60637 0.69965 0.60674 0.70150 0.60674 0.70261 0.60637 0.70445 0.60563 0.70556 0.60452 0.70593 0.60379 0.70593
- 11 116 5 0.60969 0.69891 0.60933 0.69854 0.60969 0.69817 0.61006 0.69854 0.60969 0.69891
- 11 380 17 0.61708 0.70593 0.61339 0.70593 0.61302 0.70261 0.61339 0.70298 0.61450 0.70335 0.61560 0.70335 0.61671 0.70298 0.61745 0.70224 0.61782 0.70113 0.61782 0.70039 0.61745 0.69928 0.61671 0.69854 0.61560 0.69817 0.61450 0.69817 0.61339 0.69854 0.61302 0.69891 0.61265 0.69965
- 11 116 5 0.62668 0.70593 0.62668 0.69965 0.62705 0.69854 0.62779 0.69817 0.62853 0.69817
- 11 50 2 0.62558 0.70335 0.62816 0.70335
- 11 380 17 0.63222 0.70335 0.63149 0.70298 0.63075 0.70224 0.63038 0.70113 0.63038 0.70039 0.63075 0.69928 0.63149 0.69854 0.63222 0.69817 0.63333 0.69817 0.63407 0.69854 0.63481 0.69928 0.63518 0.70039 0.63518 0.70113 0.63481 0.70224 0.63407 0.70298 0.63333 0.70335 0.63222 0.70335
- 11 94 4 0.64441 0.70445 0.64515 0.70482 0.64626 0.70593 0.64626 0.69817
- 11 380 17 0.65291 0.70593 0.65180 0.70556 0.65106 0.70445 0.65069 0.70261 0.65069 0.70150 0.65106 0.69965 0.65180 0.69854 0.65291 0.69817 0.65365 0.69817 0.65475 0.69854 0.65549 0.69965 0.65586 0.70150 0.65586 0.70261 0.65549 0.70445 0.65475 0.70556 0.65365 0.70593 0.65291 0.70593
- 11 116 5 0.65882 0.69891 0.65845 0.69854 0.65882 0.69817 0.65919 0.69854 0.65882 0.69891
- 11 380 17 0.66620 0.70593 0.66251 0.70593 0.66214 0.70261 0.66251 0.70298 0.66362 0.70335 0.66473 0.70335 0.66583 0.70298 0.66657 0.70224 0.66694 0.70113 0.66694 0.70039 0.66657 0.69928 0.66583 0.69854 0.66473 0.69817 0.66362 0.69817 0.66251 0.69854 0.66214 0.69891 0.66177 0.69965
11 50 2 0.54817 0.43511 0.54817 0.42994
11 226 10 0.54817 0.43511 0.55038 0.43511 0.55112 0.43486 0.55137 0.43462 0.55162 0.43413 0.55162 0.43363 0.55137 0.43314 0.55112 0.43289 0.55038 0.43265 0.54817 0.43265
11 50 2 0.54989 0.43265 0.55162 0.42994
@@ -840,64 +734,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 72 3 0.50646 0.42089 0.50646 0.42089 0.54040 0.42089
21 6 1
25 6 1
- 11 50 2 0.57867 0.70593 0.58384 0.69817
- 11 50 2 0.58384 0.70593 0.57867 0.69817
- 11 116 5 0.59271 0.70335 0.59234 0.70298 0.59271 0.70261 0.59307 0.70298 0.59271 0.70335
- 11 116 5 0.59271 0.69891 0.59234 0.69854 0.59271 0.69817 0.59307 0.69854 0.59271 0.69891
- 11 380 17 0.60379 0.70593 0.60268 0.70556 0.60194 0.70445 0.60157 0.70261 0.60157 0.70150 0.60194 0.69965 0.60268 0.69854 0.60379 0.69817 0.60452 0.69817 0.60563 0.69854 0.60637 0.69965 0.60674 0.70150 0.60674 0.70261 0.60637 0.70445 0.60563 0.70556 0.60452 0.70593 0.60379 0.70593
- 11 116 5 0.60969 0.69891 0.60933 0.69854 0.60969 0.69817 0.61006 0.69854 0.60969 0.69891
- 11 380 17 0.61708 0.70593 0.61339 0.70593 0.61302 0.70261 0.61339 0.70298 0.61450 0.70335 0.61560 0.70335 0.61671 0.70298 0.61745 0.70224 0.61782 0.70113 0.61782 0.70039 0.61745 0.69928 0.61671 0.69854 0.61560 0.69817 0.61450 0.69817 0.61339 0.69854 0.61302 0.69891 0.61265 0.69965
- 11 116 5 0.62668 0.70593 0.62668 0.69965 0.62705 0.69854 0.62779 0.69817 0.62853 0.69817
- 11 50 2 0.62558 0.70335 0.62816 0.70335
- 11 380 17 0.63222 0.70335 0.63149 0.70298 0.63075 0.70224 0.63038 0.70113 0.63038 0.70039 0.63075 0.69928 0.63149 0.69854 0.63222 0.69817 0.63333 0.69817 0.63407 0.69854 0.63481 0.69928 0.63518 0.70039 0.63518 0.70113 0.63481 0.70224 0.63407 0.70298 0.63333 0.70335 0.63222 0.70335
- 11 94 4 0.64441 0.70445 0.64515 0.70482 0.64626 0.70593 0.64626 0.69817
- 11 380 17 0.65291 0.70593 0.65180 0.70556 0.65106 0.70445 0.65069 0.70261 0.65069 0.70150 0.65106 0.69965 0.65180 0.69854 0.65291 0.69817 0.65365 0.69817 0.65475 0.69854 0.65549 0.69965 0.65586 0.70150 0.65586 0.70261 0.65549 0.70445 0.65475 0.70556 0.65365 0.70593 0.65291 0.70593
- 11 116 5 0.65882 0.69891 0.65845 0.69854 0.65882 0.69817 0.65919 0.69854 0.65882 0.69891
- 11 380 17 0.66620 0.70593 0.66251 0.70593 0.66214 0.70261 0.66251 0.70298 0.66362 0.70335 0.66473 0.70335 0.66583 0.70298 0.66657 0.70224 0.66694 0.70113 0.66694 0.70039 0.66657 0.69928 0.66583 0.69854 0.66473 0.69817 0.66362 0.69817 0.66251 0.69854 0.66214 0.69891 0.66177 0.69965
- 11 50 2 0.54817 0.43511 0.54817 0.42994
- 11 226 10 0.54817 0.43511 0.55038 0.43511 0.55112 0.43486 0.55137 0.43462 0.55162 0.43413 0.55162 0.43363 0.55137 0.43314 0.55112 0.43289 0.55038 0.43265 0.54817 0.43265
- 11 50 2 0.54989 0.43265 0.55162 0.42994
- 11 50 2 0.55457 0.43511 0.55260 0.42994
- 11 50 2 0.55457 0.43511 0.55654 0.42994
- 11 50 2 0.55334 0.43166 0.55580 0.43166
- 11 50 2 0.55777 0.43511 0.55777 0.42994
- 11 50 2 0.55777 0.43511 0.56122 0.42994
- 11 50 2 0.56122 0.43511 0.56122 0.42994
- 11 50 2 0.56319 0.43511 0.56319 0.42994
- 11 270 12 0.56319 0.43511 0.56491 0.43511 0.56565 0.43486 0.56614 0.43437 0.56639 0.43388 0.56664 0.43314 0.56664 0.43191 0.56639 0.43117 0.56614 0.43068 0.56565 0.43019 0.56491 0.42994 0.56319 0.42994
- 11 226 10 0.56836 0.43511 0.56836 0.43142 0.56861 0.43068 0.56910 0.43019 0.56984 0.42994 0.57033 0.42994 0.57107 0.43019 0.57156 0.43068 0.57181 0.43142 0.57181 0.43511
- 11 226 10 0.57550 0.43610 0.57501 0.43560 0.57451 0.43486 0.57402 0.43388 0.57378 0.43265 0.57378 0.43166 0.57402 0.43043 0.57451 0.42945 0.57501 0.42871 0.57550 0.42822
- 11 50 2 0.57722 0.43511 0.57722 0.42994
- 11 50 2 0.57919 0.43610 0.57919 0.42822
- 11 50 2 0.57944 0.43610 0.57944 0.42822
- 11 50 2 0.57919 0.43610 0.58092 0.43610
- 11 50 2 0.57919 0.42822 0.58092 0.42822
- 11 50 2 0.58264 0.43511 0.58264 0.42994
- 11 50 2 0.58461 0.43289 0.58904 0.43289
- 11 50 2 0.58461 0.43142 0.58904 0.43142
- 11 94 4 0.59150 0.43413 0.59200 0.43437 0.59274 0.43511 0.59274 0.42994
- 11 116 5 0.59618 0.43339 0.59594 0.43314 0.59618 0.43289 0.59643 0.43314 0.59618 0.43339
- 11 116 5 0.59618 0.43043 0.59594 0.43019 0.59618 0.42994 0.59643 0.43019 0.59618 0.43043
- 11 94 4 0.59889 0.43413 0.59938 0.43437 0.60012 0.43511 0.60012 0.42994
- 11 380 17 0.60455 0.43511 0.60382 0.43486 0.60332 0.43413 0.60308 0.43289 0.60308 0.43216 0.60332 0.43092 0.60382 0.43019 0.60455 0.42994 0.60505 0.42994 0.60579 0.43019 0.60628 0.43092 0.60652 0.43216 0.60652 0.43289 0.60628 0.43413 0.60579 0.43486 0.60505 0.43511 0.60455 0.43511
- 11 50 2 0.60948 0.43610 0.60948 0.42822
- 11 50 2 0.60973 0.43610 0.60973 0.42822
- 11 50 2 0.60800 0.43610 0.60973 0.43610
- 11 50 2 0.60800 0.42822 0.60973 0.42822
- 11 50 2 0.61391 0.43437 0.61391 0.42994
- 11 50 2 0.61170 0.43216 0.61613 0.43216
- 11 94 4 0.61859 0.43413 0.61908 0.43437 0.61982 0.43511 0.61982 0.42994
- 11 380 17 0.62425 0.43511 0.62351 0.43486 0.62302 0.43413 0.62278 0.43289 0.62278 0.43216 0.62302 0.43092 0.62351 0.43019 0.62425 0.42994 0.62475 0.42994 0.62548 0.43019 0.62598 0.43092 0.62622 0.43216 0.62622 0.43289 0.62598 0.43413 0.62548 0.43486 0.62475 0.43511 0.62425 0.43511
- 11 50 2 0.63016 0.43437 0.63016 0.42994
- 11 50 2 0.62795 0.43216 0.63238 0.43216
- 11 50 2 0.63435 0.43511 0.63435 0.42994
- 11 50 2 0.63435 0.43511 0.63755 0.43511
- 11 50 2 0.63435 0.43265 0.63632 0.43265
- 11 50 2 0.63435 0.42994 0.63755 0.42994
- 11 50 2 0.63903 0.43511 0.63903 0.42994
- 11 226 10 0.63903 0.43511 0.64124 0.43511 0.64198 0.43486 0.64223 0.43462 0.64247 0.43413 0.64247 0.43339 0.64223 0.43289 0.64198 0.43265 0.64124 0.43240 0.63903 0.43240
- 11 446 20 0.64740 0.43437 0.64691 0.43486 0.64617 0.43511 0.64518 0.43511 0.64444 0.43486 0.64395 0.43437 0.64395 0.43388 0.64420 0.43339 0.64444 0.43314 0.64494 0.43289 0.64641 0.43240 0.64691 0.43216 0.64715 0.43191 0.64740 0.43142 0.64740 0.43068 0.64691 0.43019 0.64617 0.42994 0.64518 0.42994 0.64444 0.43019 0.64395 0.43068
- 11 226 10 0.64888 0.43610 0.64937 0.43560 0.64986 0.43486 0.65035 0.43388 0.65060 0.43265 0.65060 0.43166 0.65035 0.43043 0.64986 0.42945 0.64937 0.42871 0.64888 0.42822
11 50 2 0.54817 0.42348 0.54817 0.41831
11 226 10 0.54817 0.42348 0.55038 0.42348 0.55112 0.42323 0.55137 0.42298 0.55162 0.42249 0.55162 0.42200 0.55137 0.42151 0.55112 0.42126 0.55038 0.42101 0.54817 0.42101
11 50 2 0.54989 0.42101 0.55162 0.41831
@@ -996,108 +832,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 50 2 0.53781 0.41184 0.54298 0.40667
21 6 1
25 6 1
- 11 50 2 0.57867 0.70593 0.58384 0.69817
- 11 50 2 0.58384 0.70593 0.57867 0.69817
- 11 116 5 0.59271 0.70335 0.59234 0.70298 0.59271 0.70261 0.59307 0.70298 0.59271 0.70335
- 11 116 5 0.59271 0.69891 0.59234 0.69854 0.59271 0.69817 0.59307 0.69854 0.59271 0.69891
- 11 380 17 0.60379 0.70593 0.60268 0.70556 0.60194 0.70445 0.60157 0.70261 0.60157 0.70150 0.60194 0.69965 0.60268 0.69854 0.60379 0.69817 0.60452 0.69817 0.60563 0.69854 0.60637 0.69965 0.60674 0.70150 0.60674 0.70261 0.60637 0.70445 0.60563 0.70556 0.60452 0.70593 0.60379 0.70593
- 11 116 5 0.60969 0.69891 0.60933 0.69854 0.60969 0.69817 0.61006 0.69854 0.60969 0.69891
- 11 380 17 0.61708 0.70593 0.61339 0.70593 0.61302 0.70261 0.61339 0.70298 0.61450 0.70335 0.61560 0.70335 0.61671 0.70298 0.61745 0.70224 0.61782 0.70113 0.61782 0.70039 0.61745 0.69928 0.61671 0.69854 0.61560 0.69817 0.61450 0.69817 0.61339 0.69854 0.61302 0.69891 0.61265 0.69965
- 11 116 5 0.62668 0.70593 0.62668 0.69965 0.62705 0.69854 0.62779 0.69817 0.62853 0.69817
- 11 50 2 0.62558 0.70335 0.62816 0.70335
- 11 380 17 0.63222 0.70335 0.63149 0.70298 0.63075 0.70224 0.63038 0.70113 0.63038 0.70039 0.63075 0.69928 0.63149 0.69854 0.63222 0.69817 0.63333 0.69817 0.63407 0.69854 0.63481 0.69928 0.63518 0.70039 0.63518 0.70113 0.63481 0.70224 0.63407 0.70298 0.63333 0.70335 0.63222 0.70335
- 11 94 4 0.64441 0.70445 0.64515 0.70482 0.64626 0.70593 0.64626 0.69817
- 11 380 17 0.65291 0.70593 0.65180 0.70556 0.65106 0.70445 0.65069 0.70261 0.65069 0.70150 0.65106 0.69965 0.65180 0.69854 0.65291 0.69817 0.65365 0.69817 0.65475 0.69854 0.65549 0.69965 0.65586 0.70150 0.65586 0.70261 0.65549 0.70445 0.65475 0.70556 0.65365 0.70593 0.65291 0.70593
- 11 116 5 0.65882 0.69891 0.65845 0.69854 0.65882 0.69817 0.65919 0.69854 0.65882 0.69891
- 11 380 17 0.66620 0.70593 0.66251 0.70593 0.66214 0.70261 0.66251 0.70298 0.66362 0.70335 0.66473 0.70335 0.66583 0.70298 0.66657 0.70224 0.66694 0.70113 0.66694 0.70039 0.66657 0.69928 0.66583 0.69854 0.66473 0.69817 0.66362 0.69817 0.66251 0.69854 0.66214 0.69891 0.66177 0.69965
- 11 50 2 0.54817 0.43511 0.54817 0.42994
- 11 226 10 0.54817 0.43511 0.55038 0.43511 0.55112 0.43486 0.55137 0.43462 0.55162 0.43413 0.55162 0.43363 0.55137 0.43314 0.55112 0.43289 0.55038 0.43265 0.54817 0.43265
- 11 50 2 0.54989 0.43265 0.55162 0.42994
- 11 50 2 0.55457 0.43511 0.55260 0.42994
- 11 50 2 0.55457 0.43511 0.55654 0.42994
- 11 50 2 0.55334 0.43166 0.55580 0.43166
- 11 50 2 0.55777 0.43511 0.55777 0.42994
- 11 50 2 0.55777 0.43511 0.56122 0.42994
- 11 50 2 0.56122 0.43511 0.56122 0.42994
- 11 50 2 0.56319 0.43511 0.56319 0.42994
- 11 270 12 0.56319 0.43511 0.56491 0.43511 0.56565 0.43486 0.56614 0.43437 0.56639 0.43388 0.56664 0.43314 0.56664 0.43191 0.56639 0.43117 0.56614 0.43068 0.56565 0.43019 0.56491 0.42994 0.56319 0.42994
- 11 226 10 0.56836 0.43511 0.56836 0.43142 0.56861 0.43068 0.56910 0.43019 0.56984 0.42994 0.57033 0.42994 0.57107 0.43019 0.57156 0.43068 0.57181 0.43142 0.57181 0.43511
- 11 226 10 0.57550 0.43610 0.57501 0.43560 0.57451 0.43486 0.57402 0.43388 0.57378 0.43265 0.57378 0.43166 0.57402 0.43043 0.57451 0.42945 0.57501 0.42871 0.57550 0.42822
- 11 50 2 0.57722 0.43511 0.57722 0.42994
- 11 50 2 0.57919 0.43610 0.57919 0.42822
- 11 50 2 0.57944 0.43610 0.57944 0.42822
- 11 50 2 0.57919 0.43610 0.58092 0.43610
- 11 50 2 0.57919 0.42822 0.58092 0.42822
- 11 50 2 0.58264 0.43511 0.58264 0.42994
- 11 50 2 0.58461 0.43289 0.58904 0.43289
- 11 50 2 0.58461 0.43142 0.58904 0.43142
- 11 94 4 0.59150 0.43413 0.59200 0.43437 0.59274 0.43511 0.59274 0.42994
- 11 116 5 0.59618 0.43339 0.59594 0.43314 0.59618 0.43289 0.59643 0.43314 0.59618 0.43339
- 11 116 5 0.59618 0.43043 0.59594 0.43019 0.59618 0.42994 0.59643 0.43019 0.59618 0.43043
- 11 94 4 0.59889 0.43413 0.59938 0.43437 0.60012 0.43511 0.60012 0.42994
- 11 380 17 0.60455 0.43511 0.60382 0.43486 0.60332 0.43413 0.60308 0.43289 0.60308 0.43216 0.60332 0.43092 0.60382 0.43019 0.60455 0.42994 0.60505 0.42994 0.60579 0.43019 0.60628 0.43092 0.60652 0.43216 0.60652 0.43289 0.60628 0.43413 0.60579 0.43486 0.60505 0.43511 0.60455 0.43511
- 11 50 2 0.60948 0.43610 0.60948 0.42822
- 11 50 2 0.60973 0.43610 0.60973 0.42822
- 11 50 2 0.60800 0.43610 0.60973 0.43610
- 11 50 2 0.60800 0.42822 0.60973 0.42822
- 11 50 2 0.61391 0.43437 0.61391 0.42994
- 11 50 2 0.61170 0.43216 0.61613 0.43216
- 11 94 4 0.61859 0.43413 0.61908 0.43437 0.61982 0.43511 0.61982 0.42994
- 11 380 17 0.62425 0.43511 0.62351 0.43486 0.62302 0.43413 0.62278 0.43289 0.62278 0.43216 0.62302 0.43092 0.62351 0.43019 0.62425 0.42994 0.62475 0.42994 0.62548 0.43019 0.62598 0.43092 0.62622 0.43216 0.62622 0.43289 0.62598 0.43413 0.62548 0.43486 0.62475 0.43511 0.62425 0.43511
- 11 50 2 0.63016 0.43437 0.63016 0.42994
- 11 50 2 0.62795 0.43216 0.63238 0.43216
- 11 50 2 0.63435 0.43511 0.63435 0.42994
- 11 50 2 0.63435 0.43511 0.63755 0.43511
- 11 50 2 0.63435 0.43265 0.63632 0.43265
- 11 50 2 0.63435 0.42994 0.63755 0.42994
- 11 50 2 0.63903 0.43511 0.63903 0.42994
- 11 226 10 0.63903 0.43511 0.64124 0.43511 0.64198 0.43486 0.64223 0.43462 0.64247 0.43413 0.64247 0.43339 0.64223 0.43289 0.64198 0.43265 0.64124 0.43240 0.63903 0.43240
- 11 446 20 0.64740 0.43437 0.64691 0.43486 0.64617 0.43511 0.64518 0.43511 0.64444 0.43486 0.64395 0.43437 0.64395 0.43388 0.64420 0.43339 0.64444 0.43314 0.64494 0.43289 0.64641 0.43240 0.64691 0.43216 0.64715 0.43191 0.64740 0.43142 0.64740 0.43068 0.64691 0.43019 0.64617 0.42994 0.64518 0.42994 0.64444 0.43019 0.64395 0.43068
- 11 226 10 0.64888 0.43610 0.64937 0.43560 0.64986 0.43486 0.65035 0.43388 0.65060 0.43265 0.65060 0.43166 0.65035 0.43043 0.64986 0.42945 0.64937 0.42871 0.64888 0.42822
- 11 50 2 0.54817 0.42348 0.54817 0.41831
- 11 226 10 0.54817 0.42348 0.55038 0.42348 0.55112 0.42323 0.55137 0.42298 0.55162 0.42249 0.55162 0.42200 0.55137 0.42151 0.55112 0.42126 0.55038 0.42101 0.54817 0.42101
- 11 50 2 0.54989 0.42101 0.55162 0.41831
- 11 50 2 0.55457 0.42348 0.55260 0.41831
- 11 50 2 0.55457 0.42348 0.55654 0.41831
- 11 50 2 0.55334 0.42003 0.55580 0.42003
- 11 50 2 0.55777 0.42348 0.55777 0.41831
- 11 50 2 0.55777 0.42348 0.56122 0.41831
- 11 50 2 0.56122 0.42348 0.56122 0.41831
- 11 50 2 0.56319 0.42348 0.56319 0.41831
- 11 270 12 0.56319 0.42348 0.56491 0.42348 0.56565 0.42323 0.56614 0.42274 0.56639 0.42225 0.56664 0.42151 0.56664 0.42028 0.56639 0.41954 0.56614 0.41904 0.56565 0.41855 0.56491 0.41831 0.56319 0.41831
- 11 226 10 0.56836 0.42348 0.56836 0.41978 0.56861 0.41904 0.56910 0.41855 0.56984 0.41831 0.57033 0.41831 0.57107 0.41855 0.57156 0.41904 0.57181 0.41978 0.57181 0.42348
- 11 226 10 0.57550 0.42446 0.57501 0.42397 0.57451 0.42323 0.57402 0.42225 0.57378 0.42101 0.57378 0.42003 0.57402 0.41880 0.57451 0.41781 0.57501 0.41707 0.57550 0.41658
- 11 50 2 0.57722 0.42348 0.57722 0.41831
- 11 50 2 0.57919 0.42446 0.57919 0.41658
- 11 50 2 0.57944 0.42446 0.57944 0.41658
- 11 50 2 0.57919 0.42446 0.58092 0.42446
- 11 50 2 0.57919 0.41658 0.58092 0.41658
- 11 50 2 0.58264 0.42348 0.58264 0.41831
- 11 50 2 0.58461 0.42126 0.58904 0.42126
- 11 50 2 0.58461 0.41978 0.58904 0.41978
- 11 94 4 0.59150 0.42249 0.59200 0.42274 0.59274 0.42348 0.59274 0.41831
- 11 116 5 0.59618 0.42175 0.59594 0.42151 0.59618 0.42126 0.59643 0.42151 0.59618 0.42175
- 11 116 5 0.59618 0.41880 0.59594 0.41855 0.59618 0.41831 0.59643 0.41855 0.59618 0.41880
- 11 94 4 0.59889 0.42249 0.59938 0.42274 0.60012 0.42348 0.60012 0.41831
- 11 380 17 0.60455 0.42348 0.60382 0.42323 0.60332 0.42249 0.60308 0.42126 0.60308 0.42052 0.60332 0.41929 0.60382 0.41855 0.60455 0.41831 0.60505 0.41831 0.60579 0.41855 0.60628 0.41929 0.60652 0.42052 0.60652 0.42126 0.60628 0.42249 0.60579 0.42323 0.60505 0.42348 0.60455 0.42348
- 11 50 2 0.60948 0.42446 0.60948 0.41658
- 11 50 2 0.60973 0.42446 0.60973 0.41658
- 11 50 2 0.60800 0.42446 0.60973 0.42446
- 11 50 2 0.60800 0.41658 0.60973 0.41658
- 11 50 2 0.61391 0.42274 0.61391 0.41831
- 11 50 2 0.61170 0.42052 0.61613 0.42052
- 11 94 4 0.61859 0.42249 0.61908 0.42274 0.61982 0.42348 0.61982 0.41831
- 11 380 17 0.62425 0.42348 0.62351 0.42323 0.62302 0.42249 0.62278 0.42126 0.62278 0.42052 0.62302 0.41929 0.62351 0.41855 0.62425 0.41831 0.62475 0.41831 0.62548 0.41855 0.62598 0.41929 0.62622 0.42052 0.62622 0.42126 0.62598 0.42249 0.62548 0.42323 0.62475 0.42348 0.62425 0.42348
- 11 50 2 0.63016 0.42274 0.63016 0.41831
- 11 50 2 0.62795 0.42052 0.63238 0.42052
- 11 50 2 0.63435 0.42348 0.63435 0.41831
- 11 50 2 0.63435 0.42348 0.63755 0.42348
- 11 50 2 0.63435 0.42101 0.63632 0.42101
- 11 50 2 0.63435 0.41831 0.63755 0.41831
- 11 50 2 0.63903 0.42348 0.63903 0.41831
- 11 226 10 0.63903 0.42348 0.64124 0.42348 0.64198 0.42323 0.64223 0.42298 0.64247 0.42249 0.64247 0.42175 0.64223 0.42126 0.64198 0.42101 0.64124 0.42077 0.63903 0.42077
- 11 446 20 0.64740 0.42274 0.64691 0.42323 0.64617 0.42348 0.64518 0.42348 0.64444 0.42323 0.64395 0.42274 0.64395 0.42225 0.64420 0.42175 0.64444 0.42151 0.64494 0.42126 0.64641 0.42077 0.64691 0.42052 0.64715 0.42028 0.64740 0.41978 0.64740 0.41904 0.64691 0.41855 0.64617 0.41831 0.64518 0.41831 0.64444 0.41855 0.64395 0.41904
- 11 226 10 0.64888 0.42446 0.64937 0.42397 0.64986 0.42323 0.65035 0.42225 0.65060 0.42101 0.65060 0.42003 0.65035 0.41880 0.64986 0.41781 0.64937 0.41707 0.64888 0.41658
11 50 2 0.54817 0.41184 0.54817 0.40667
11 226 10 0.54817 0.41184 0.55038 0.41184 0.55112 0.41160 0.55137 0.41135 0.55162 0.41086 0.55162 0.41036 0.55137 0.40987 0.55112 0.40963 0.55038 0.40938 0.54817 0.40938
11 50 2 0.54989 0.40938 0.55162 0.40667
@@ -1178,152 +912,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 116 5 0.53910 0.39633 0.54169 0.39633 0.54169 0.39891 0.53910 0.39891 0.53910 0.39633
21 6 1
25 6 1
- 11 50 2 0.57867 0.70593 0.58384 0.69817
- 11 50 2 0.58384 0.70593 0.57867 0.69817
- 11 116 5 0.59271 0.70335 0.59234 0.70298 0.59271 0.70261 0.59307 0.70298 0.59271 0.70335
- 11 116 5 0.59271 0.69891 0.59234 0.69854 0.59271 0.69817 0.59307 0.69854 0.59271 0.69891
- 11 380 17 0.60379 0.70593 0.60268 0.70556 0.60194 0.70445 0.60157 0.70261 0.60157 0.70150 0.60194 0.69965 0.60268 0.69854 0.60379 0.69817 0.60452 0.69817 0.60563 0.69854 0.60637 0.69965 0.60674 0.70150 0.60674 0.70261 0.60637 0.70445 0.60563 0.70556 0.60452 0.70593 0.60379 0.70593
- 11 116 5 0.60969 0.69891 0.60933 0.69854 0.60969 0.69817 0.61006 0.69854 0.60969 0.69891
- 11 380 17 0.61708 0.70593 0.61339 0.70593 0.61302 0.70261 0.61339 0.70298 0.61450 0.70335 0.61560 0.70335 0.61671 0.70298 0.61745 0.70224 0.61782 0.70113 0.61782 0.70039 0.61745 0.69928 0.61671 0.69854 0.61560 0.69817 0.61450 0.69817 0.61339 0.69854 0.61302 0.69891 0.61265 0.69965
- 11 116 5 0.62668 0.70593 0.62668 0.69965 0.62705 0.69854 0.62779 0.69817 0.62853 0.69817
- 11 50 2 0.62558 0.70335 0.62816 0.70335
- 11 380 17 0.63222 0.70335 0.63149 0.70298 0.63075 0.70224 0.63038 0.70113 0.63038 0.70039 0.63075 0.69928 0.63149 0.69854 0.63222 0.69817 0.63333 0.69817 0.63407 0.69854 0.63481 0.69928 0.63518 0.70039 0.63518 0.70113 0.63481 0.70224 0.63407 0.70298 0.63333 0.70335 0.63222 0.70335
- 11 94 4 0.64441 0.70445 0.64515 0.70482 0.64626 0.70593 0.64626 0.69817
- 11 380 17 0.65291 0.70593 0.65180 0.70556 0.65106 0.70445 0.65069 0.70261 0.65069 0.70150 0.65106 0.69965 0.65180 0.69854 0.65291 0.69817 0.65365 0.69817 0.65475 0.69854 0.65549 0.69965 0.65586 0.70150 0.65586 0.70261 0.65549 0.70445 0.65475 0.70556 0.65365 0.70593 0.65291 0.70593
- 11 116 5 0.65882 0.69891 0.65845 0.69854 0.65882 0.69817 0.65919 0.69854 0.65882 0.69891
- 11 380 17 0.66620 0.70593 0.66251 0.70593 0.66214 0.70261 0.66251 0.70298 0.66362 0.70335 0.66473 0.70335 0.66583 0.70298 0.66657 0.70224 0.66694 0.70113 0.66694 0.70039 0.66657 0.69928 0.66583 0.69854 0.66473 0.69817 0.66362 0.69817 0.66251 0.69854 0.66214 0.69891 0.66177 0.69965
- 11 50 2 0.54817 0.43511 0.54817 0.42994
- 11 226 10 0.54817 0.43511 0.55038 0.43511 0.55112 0.43486 0.55137 0.43462 0.55162 0.43413 0.55162 0.43363 0.55137 0.43314 0.55112 0.43289 0.55038 0.43265 0.54817 0.43265
- 11 50 2 0.54989 0.43265 0.55162 0.42994
- 11 50 2 0.55457 0.43511 0.55260 0.42994
- 11 50 2 0.55457 0.43511 0.55654 0.42994
- 11 50 2 0.55334 0.43166 0.55580 0.43166
- 11 50 2 0.55777 0.43511 0.55777 0.42994
- 11 50 2 0.55777 0.43511 0.56122 0.42994
- 11 50 2 0.56122 0.43511 0.56122 0.42994
- 11 50 2 0.56319 0.43511 0.56319 0.42994
- 11 270 12 0.56319 0.43511 0.56491 0.43511 0.56565 0.43486 0.56614 0.43437 0.56639 0.43388 0.56664 0.43314 0.56664 0.43191 0.56639 0.43117 0.56614 0.43068 0.56565 0.43019 0.56491 0.42994 0.56319 0.42994
- 11 226 10 0.56836 0.43511 0.56836 0.43142 0.56861 0.43068 0.56910 0.43019 0.56984 0.42994 0.57033 0.42994 0.57107 0.43019 0.57156 0.43068 0.57181 0.43142 0.57181 0.43511
- 11 226 10 0.57550 0.43610 0.57501 0.43560 0.57451 0.43486 0.57402 0.43388 0.57378 0.43265 0.57378 0.43166 0.57402 0.43043 0.57451 0.42945 0.57501 0.42871 0.57550 0.42822
- 11 50 2 0.57722 0.43511 0.57722 0.42994
- 11 50 2 0.57919 0.43610 0.57919 0.42822
- 11 50 2 0.57944 0.43610 0.57944 0.42822
- 11 50 2 0.57919 0.43610 0.58092 0.43610
- 11 50 2 0.57919 0.42822 0.58092 0.42822
- 11 50 2 0.58264 0.43511 0.58264 0.42994
- 11 50 2 0.58461 0.43289 0.58904 0.43289
- 11 50 2 0.58461 0.43142 0.58904 0.43142
- 11 94 4 0.59150 0.43413 0.59200 0.43437 0.59274 0.43511 0.59274 0.42994
- 11 116 5 0.59618 0.43339 0.59594 0.43314 0.59618 0.43289 0.59643 0.43314 0.59618 0.43339
- 11 116 5 0.59618 0.43043 0.59594 0.43019 0.59618 0.42994 0.59643 0.43019 0.59618 0.43043
- 11 94 4 0.59889 0.43413 0.59938 0.43437 0.60012 0.43511 0.60012 0.42994
- 11 380 17 0.60455 0.43511 0.60382 0.43486 0.60332 0.43413 0.60308 0.43289 0.60308 0.43216 0.60332 0.43092 0.60382 0.43019 0.60455 0.42994 0.60505 0.42994 0.60579 0.43019 0.60628 0.43092 0.60652 0.43216 0.60652 0.43289 0.60628 0.43413 0.60579 0.43486 0.60505 0.43511 0.60455 0.43511
- 11 50 2 0.60948 0.43610 0.60948 0.42822
- 11 50 2 0.60973 0.43610 0.60973 0.42822
- 11 50 2 0.60800 0.43610 0.60973 0.43610
- 11 50 2 0.60800 0.42822 0.60973 0.42822
- 11 50 2 0.61391 0.43437 0.61391 0.42994
- 11 50 2 0.61170 0.43216 0.61613 0.43216
- 11 94 4 0.61859 0.43413 0.61908 0.43437 0.61982 0.43511 0.61982 0.42994
- 11 380 17 0.62425 0.43511 0.62351 0.43486 0.62302 0.43413 0.62278 0.43289 0.62278 0.43216 0.62302 0.43092 0.62351 0.43019 0.62425 0.42994 0.62475 0.42994 0.62548 0.43019 0.62598 0.43092 0.62622 0.43216 0.62622 0.43289 0.62598 0.43413 0.62548 0.43486 0.62475 0.43511 0.62425 0.43511
- 11 50 2 0.63016 0.43437 0.63016 0.42994
- 11 50 2 0.62795 0.43216 0.63238 0.43216
- 11 50 2 0.63435 0.43511 0.63435 0.42994
- 11 50 2 0.63435 0.43511 0.63755 0.43511
- 11 50 2 0.63435 0.43265 0.63632 0.43265
- 11 50 2 0.63435 0.42994 0.63755 0.42994
- 11 50 2 0.63903 0.43511 0.63903 0.42994
- 11 226 10 0.63903 0.43511 0.64124 0.43511 0.64198 0.43486 0.64223 0.43462 0.64247 0.43413 0.64247 0.43339 0.64223 0.43289 0.64198 0.43265 0.64124 0.43240 0.63903 0.43240
- 11 446 20 0.64740 0.43437 0.64691 0.43486 0.64617 0.43511 0.64518 0.43511 0.64444 0.43486 0.64395 0.43437 0.64395 0.43388 0.64420 0.43339 0.64444 0.43314 0.64494 0.43289 0.64641 0.43240 0.64691 0.43216 0.64715 0.43191 0.64740 0.43142 0.64740 0.43068 0.64691 0.43019 0.64617 0.42994 0.64518 0.42994 0.64444 0.43019 0.64395 0.43068
- 11 226 10 0.64888 0.43610 0.64937 0.43560 0.64986 0.43486 0.65035 0.43388 0.65060 0.43265 0.65060 0.43166 0.65035 0.43043 0.64986 0.42945 0.64937 0.42871 0.64888 0.42822
- 11 50 2 0.54817 0.42348 0.54817 0.41831
- 11 226 10 0.54817 0.42348 0.55038 0.42348 0.55112 0.42323 0.55137 0.42298 0.55162 0.42249 0.55162 0.42200 0.55137 0.42151 0.55112 0.42126 0.55038 0.42101 0.54817 0.42101
- 11 50 2 0.54989 0.42101 0.55162 0.41831
- 11 50 2 0.55457 0.42348 0.55260 0.41831
- 11 50 2 0.55457 0.42348 0.55654 0.41831
- 11 50 2 0.55334 0.42003 0.55580 0.42003
- 11 50 2 0.55777 0.42348 0.55777 0.41831
- 11 50 2 0.55777 0.42348 0.56122 0.41831
- 11 50 2 0.56122 0.42348 0.56122 0.41831
- 11 50 2 0.56319 0.42348 0.56319 0.41831
- 11 270 12 0.56319 0.42348 0.56491 0.42348 0.56565 0.42323 0.56614 0.42274 0.56639 0.42225 0.56664 0.42151 0.56664 0.42028 0.56639 0.41954 0.56614 0.41904 0.56565 0.41855 0.56491 0.41831 0.56319 0.41831
- 11 226 10 0.56836 0.42348 0.56836 0.41978 0.56861 0.41904 0.56910 0.41855 0.56984 0.41831 0.57033 0.41831 0.57107 0.41855 0.57156 0.41904 0.57181 0.41978 0.57181 0.42348
- 11 226 10 0.57550 0.42446 0.57501 0.42397 0.57451 0.42323 0.57402 0.42225 0.57378 0.42101 0.57378 0.42003 0.57402 0.41880 0.57451 0.41781 0.57501 0.41707 0.57550 0.41658
- 11 50 2 0.57722 0.42348 0.57722 0.41831
- 11 50 2 0.57919 0.42446 0.57919 0.41658
- 11 50 2 0.57944 0.42446 0.57944 0.41658
- 11 50 2 0.57919 0.42446 0.58092 0.42446
- 11 50 2 0.57919 0.41658 0.58092 0.41658
- 11 50 2 0.58264 0.42348 0.58264 0.41831
- 11 50 2 0.58461 0.42126 0.58904 0.42126
- 11 50 2 0.58461 0.41978 0.58904 0.41978
- 11 94 4 0.59150 0.42249 0.59200 0.42274 0.59274 0.42348 0.59274 0.41831
- 11 116 5 0.59618 0.42175 0.59594 0.42151 0.59618 0.42126 0.59643 0.42151 0.59618 0.42175
- 11 116 5 0.59618 0.41880 0.59594 0.41855 0.59618 0.41831 0.59643 0.41855 0.59618 0.41880
- 11 94 4 0.59889 0.42249 0.59938 0.42274 0.60012 0.42348 0.60012 0.41831
- 11 380 17 0.60455 0.42348 0.60382 0.42323 0.60332 0.42249 0.60308 0.42126 0.60308 0.42052 0.60332 0.41929 0.60382 0.41855 0.60455 0.41831 0.60505 0.41831 0.60579 0.41855 0.60628 0.41929 0.60652 0.42052 0.60652 0.42126 0.60628 0.42249 0.60579 0.42323 0.60505 0.42348 0.60455 0.42348
- 11 50 2 0.60948 0.42446 0.60948 0.41658
- 11 50 2 0.60973 0.42446 0.60973 0.41658
- 11 50 2 0.60800 0.42446 0.60973 0.42446
- 11 50 2 0.60800 0.41658 0.60973 0.41658
- 11 50 2 0.61391 0.42274 0.61391 0.41831
- 11 50 2 0.61170 0.42052 0.61613 0.42052
- 11 94 4 0.61859 0.42249 0.61908 0.42274 0.61982 0.42348 0.61982 0.41831
- 11 380 17 0.62425 0.42348 0.62351 0.42323 0.62302 0.42249 0.62278 0.42126 0.62278 0.42052 0.62302 0.41929 0.62351 0.41855 0.62425 0.41831 0.62475 0.41831 0.62548 0.41855 0.62598 0.41929 0.62622 0.42052 0.62622 0.42126 0.62598 0.42249 0.62548 0.42323 0.62475 0.42348 0.62425 0.42348
- 11 50 2 0.63016 0.42274 0.63016 0.41831
- 11 50 2 0.62795 0.42052 0.63238 0.42052
- 11 50 2 0.63435 0.42348 0.63435 0.41831
- 11 50 2 0.63435 0.42348 0.63755 0.42348
- 11 50 2 0.63435 0.42101 0.63632 0.42101
- 11 50 2 0.63435 0.41831 0.63755 0.41831
- 11 50 2 0.63903 0.42348 0.63903 0.41831
- 11 226 10 0.63903 0.42348 0.64124 0.42348 0.64198 0.42323 0.64223 0.42298 0.64247 0.42249 0.64247 0.42175 0.64223 0.42126 0.64198 0.42101 0.64124 0.42077 0.63903 0.42077
- 11 446 20 0.64740 0.42274 0.64691 0.42323 0.64617 0.42348 0.64518 0.42348 0.64444 0.42323 0.64395 0.42274 0.64395 0.42225 0.64420 0.42175 0.64444 0.42151 0.64494 0.42126 0.64641 0.42077 0.64691 0.42052 0.64715 0.42028 0.64740 0.41978 0.64740 0.41904 0.64691 0.41855 0.64617 0.41831 0.64518 0.41831 0.64444 0.41855 0.64395 0.41904
- 11 226 10 0.64888 0.42446 0.64937 0.42397 0.64986 0.42323 0.65035 0.42225 0.65060 0.42101 0.65060 0.42003 0.65035 0.41880 0.64986 0.41781 0.64937 0.41707 0.64888 0.41658
- 11 50 2 0.54817 0.41184 0.54817 0.40667
- 11 226 10 0.54817 0.41184 0.55038 0.41184 0.55112 0.41160 0.55137 0.41135 0.55162 0.41086 0.55162 0.41036 0.55137 0.40987 0.55112 0.40963 0.55038 0.40938 0.54817 0.40938
- 11 50 2 0.54989 0.40938 0.55162 0.40667
- 11 50 2 0.55457 0.41184 0.55260 0.40667
- 11 50 2 0.55457 0.41184 0.55654 0.40667
- 11 50 2 0.55334 0.40839 0.55580 0.40839
- 11 50 2 0.55777 0.41184 0.55777 0.40667
- 11 50 2 0.55777 0.41184 0.56122 0.40667
- 11 50 2 0.56122 0.41184 0.56122 0.40667
- 11 50 2 0.56319 0.41184 0.56319 0.40667
- 11 270 12 0.56319 0.41184 0.56491 0.41184 0.56565 0.41160 0.56614 0.41110 0.56639 0.41061 0.56664 0.40987 0.56664 0.40864 0.56639 0.40790 0.56614 0.40741 0.56565 0.40692 0.56491 0.40667 0.56319 0.40667
- 11 226 10 0.56836 0.41184 0.56836 0.40815 0.56861 0.40741 0.56910 0.40692 0.56984 0.40667 0.57033 0.40667 0.57107 0.40692 0.57156 0.40741 0.57181 0.40815 0.57181 0.41184
- 11 226 10 0.57550 0.41283 0.57501 0.41233 0.57451 0.41160 0.57402 0.41061 0.57378 0.40938 0.57378 0.40839 0.57402 0.40716 0.57451 0.40618 0.57501 0.40544 0.57550 0.40495
- 11 50 2 0.57722 0.41184 0.57722 0.40667
- 11 50 2 0.57919 0.41283 0.57919 0.40495
- 11 50 2 0.57944 0.41283 0.57944 0.40495
- 11 50 2 0.57919 0.41283 0.58092 0.41283
- 11 50 2 0.57919 0.40495 0.58092 0.40495
- 11 50 2 0.58264 0.41184 0.58264 0.40667
- 11 50 2 0.58461 0.40963 0.58904 0.40963
- 11 50 2 0.58461 0.40815 0.58904 0.40815
- 11 94 4 0.59150 0.41086 0.59200 0.41110 0.59274 0.41184 0.59274 0.40667
- 11 116 5 0.59618 0.41012 0.59594 0.40987 0.59618 0.40963 0.59643 0.40987 0.59618 0.41012
- 11 116 5 0.59618 0.40716 0.59594 0.40692 0.59618 0.40667 0.59643 0.40692 0.59618 0.40716
- 11 94 4 0.59889 0.41086 0.59938 0.41110 0.60012 0.41184 0.60012 0.40667
- 11 380 17 0.60455 0.41184 0.60382 0.41160 0.60332 0.41086 0.60308 0.40963 0.60308 0.40889 0.60332 0.40766 0.60382 0.40692 0.60455 0.40667 0.60505 0.40667 0.60579 0.40692 0.60628 0.40766 0.60652 0.40889 0.60652 0.40963 0.60628 0.41086 0.60579 0.41160 0.60505 0.41184 0.60455 0.41184
- 11 50 2 0.60948 0.41283 0.60948 0.40495
- 11 50 2 0.60973 0.41283 0.60973 0.40495
- 11 50 2 0.60800 0.41283 0.60973 0.41283
- 11 50 2 0.60800 0.40495 0.60973 0.40495
- 11 50 2 0.61391 0.41110 0.61391 0.40667
- 11 50 2 0.61170 0.40889 0.61613 0.40889
- 11 94 4 0.61859 0.41086 0.61908 0.41110 0.61982 0.41184 0.61982 0.40667
- 11 380 17 0.62425 0.41184 0.62351 0.41160 0.62302 0.41086 0.62278 0.40963 0.62278 0.40889 0.62302 0.40766 0.62351 0.40692 0.62425 0.40667 0.62475 0.40667 0.62548 0.40692 0.62598 0.40766 0.62622 0.40889 0.62622 0.40963 0.62598 0.41086 0.62548 0.41160 0.62475 0.41184 0.62425 0.41184
- 11 50 2 0.63016 0.41110 0.63016 0.40667
- 11 50 2 0.62795 0.40889 0.63238 0.40889
- 11 50 2 0.63435 0.41184 0.63435 0.40667
- 11 50 2 0.63435 0.41184 0.63755 0.41184
- 11 50 2 0.63435 0.40938 0.63632 0.40938
- 11 50 2 0.63435 0.40667 0.63755 0.40667
- 11 50 2 0.63903 0.41184 0.63903 0.40667
- 11 226 10 0.63903 0.41184 0.64124 0.41184 0.64198 0.41160 0.64223 0.41135 0.64247 0.41086 0.64247 0.41012 0.64223 0.40963 0.64198 0.40938 0.64124 0.40913 0.63903 0.40913
- 11 446 20 0.64740 0.41110 0.64691 0.41160 0.64617 0.41184 0.64518 0.41184 0.64444 0.41160 0.64395 0.41110 0.64395 0.41061 0.64420 0.41012 0.64444 0.40987 0.64494 0.40963 0.64641 0.40913 0.64691 0.40889 0.64715 0.40864 0.64740 0.40815 0.64740 0.40741 0.64691 0.40692 0.64617 0.40667 0.64518 0.40667 0.64444 0.40692 0.64395 0.40741
- 11 226 10 0.64888 0.41283 0.64937 0.41233 0.64986 0.41160 0.65035 0.41061 0.65060 0.40938 0.65060 0.40839 0.65035 0.40716 0.64986 0.40618 0.64937 0.40544 0.64888 0.40495
11 50 2 0.54817 0.40021 0.54817 0.39504
11 226 10 0.54817 0.40021 0.55038 0.40021 0.55112 0.39996 0.55137 0.39972 0.55162 0.39922 0.55162 0.39873 0.55137 0.39824 0.55112 0.39799 0.55038 0.39775 0.54817 0.39775
11 50 2 0.54989 0.39775 0.55162 0.39504
@@ -1405,196 +993,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 94 4 0.53910 0.38470 0.54040 0.38728 0.54169 0.38470 0.53910 0.38470
21 6 1
25 6 1
- 11 50 2 0.57867 0.70593 0.58384 0.69817
- 11 50 2 0.58384 0.70593 0.57867 0.69817
- 11 116 5 0.59271 0.70335 0.59234 0.70298 0.59271 0.70261 0.59307 0.70298 0.59271 0.70335
- 11 116 5 0.59271 0.69891 0.59234 0.69854 0.59271 0.69817 0.59307 0.69854 0.59271 0.69891
- 11 380 17 0.60379 0.70593 0.60268 0.70556 0.60194 0.70445 0.60157 0.70261 0.60157 0.70150 0.60194 0.69965 0.60268 0.69854 0.60379 0.69817 0.60452 0.69817 0.60563 0.69854 0.60637 0.69965 0.60674 0.70150 0.60674 0.70261 0.60637 0.70445 0.60563 0.70556 0.60452 0.70593 0.60379 0.70593
- 11 116 5 0.60969 0.69891 0.60933 0.69854 0.60969 0.69817 0.61006 0.69854 0.60969 0.69891
- 11 380 17 0.61708 0.70593 0.61339 0.70593 0.61302 0.70261 0.61339 0.70298 0.61450 0.70335 0.61560 0.70335 0.61671 0.70298 0.61745 0.70224 0.61782 0.70113 0.61782 0.70039 0.61745 0.69928 0.61671 0.69854 0.61560 0.69817 0.61450 0.69817 0.61339 0.69854 0.61302 0.69891 0.61265 0.69965
- 11 116 5 0.62668 0.70593 0.62668 0.69965 0.62705 0.69854 0.62779 0.69817 0.62853 0.69817
- 11 50 2 0.62558 0.70335 0.62816 0.70335
- 11 380 17 0.63222 0.70335 0.63149 0.70298 0.63075 0.70224 0.63038 0.70113 0.63038 0.70039 0.63075 0.69928 0.63149 0.69854 0.63222 0.69817 0.63333 0.69817 0.63407 0.69854 0.63481 0.69928 0.63518 0.70039 0.63518 0.70113 0.63481 0.70224 0.63407 0.70298 0.63333 0.70335 0.63222 0.70335
- 11 94 4 0.64441 0.70445 0.64515 0.70482 0.64626 0.70593 0.64626 0.69817
- 11 380 17 0.65291 0.70593 0.65180 0.70556 0.65106 0.70445 0.65069 0.70261 0.65069 0.70150 0.65106 0.69965 0.65180 0.69854 0.65291 0.69817 0.65365 0.69817 0.65475 0.69854 0.65549 0.69965 0.65586 0.70150 0.65586 0.70261 0.65549 0.70445 0.65475 0.70556 0.65365 0.70593 0.65291 0.70593
- 11 116 5 0.65882 0.69891 0.65845 0.69854 0.65882 0.69817 0.65919 0.69854 0.65882 0.69891
- 11 380 17 0.66620 0.70593 0.66251 0.70593 0.66214 0.70261 0.66251 0.70298 0.66362 0.70335 0.66473 0.70335 0.66583 0.70298 0.66657 0.70224 0.66694 0.70113 0.66694 0.70039 0.66657 0.69928 0.66583 0.69854 0.66473 0.69817 0.66362 0.69817 0.66251 0.69854 0.66214 0.69891 0.66177 0.69965
- 11 50 2 0.54817 0.43511 0.54817 0.42994
- 11 226 10 0.54817 0.43511 0.55038 0.43511 0.55112 0.43486 0.55137 0.43462 0.55162 0.43413 0.55162 0.43363 0.55137 0.43314 0.55112 0.43289 0.55038 0.43265 0.54817 0.43265
- 11 50 2 0.54989 0.43265 0.55162 0.42994
- 11 50 2 0.55457 0.43511 0.55260 0.42994
- 11 50 2 0.55457 0.43511 0.55654 0.42994
- 11 50 2 0.55334 0.43166 0.55580 0.43166
- 11 50 2 0.55777 0.43511 0.55777 0.42994
- 11 50 2 0.55777 0.43511 0.56122 0.42994
- 11 50 2 0.56122 0.43511 0.56122 0.42994
- 11 50 2 0.56319 0.43511 0.56319 0.42994
- 11 270 12 0.56319 0.43511 0.56491 0.43511 0.56565 0.43486 0.56614 0.43437 0.56639 0.43388 0.56664 0.43314 0.56664 0.43191 0.56639 0.43117 0.56614 0.43068 0.56565 0.43019 0.56491 0.42994 0.56319 0.42994
- 11 226 10 0.56836 0.43511 0.56836 0.43142 0.56861 0.43068 0.56910 0.43019 0.56984 0.42994 0.57033 0.42994 0.57107 0.43019 0.57156 0.43068 0.57181 0.43142 0.57181 0.43511
- 11 226 10 0.57550 0.43610 0.57501 0.43560 0.57451 0.43486 0.57402 0.43388 0.57378 0.43265 0.57378 0.43166 0.57402 0.43043 0.57451 0.42945 0.57501 0.42871 0.57550 0.42822
- 11 50 2 0.57722 0.43511 0.57722 0.42994
- 11 50 2 0.57919 0.43610 0.57919 0.42822
- 11 50 2 0.57944 0.43610 0.57944 0.42822
- 11 50 2 0.57919 0.43610 0.58092 0.43610
- 11 50 2 0.57919 0.42822 0.58092 0.42822
- 11 50 2 0.58264 0.43511 0.58264 0.42994
- 11 50 2 0.58461 0.43289 0.58904 0.43289
- 11 50 2 0.58461 0.43142 0.58904 0.43142
- 11 94 4 0.59150 0.43413 0.59200 0.43437 0.59274 0.43511 0.59274 0.42994
- 11 116 5 0.59618 0.43339 0.59594 0.43314 0.59618 0.43289 0.59643 0.43314 0.59618 0.43339
- 11 116 5 0.59618 0.43043 0.59594 0.43019 0.59618 0.42994 0.59643 0.43019 0.59618 0.43043
- 11 94 4 0.59889 0.43413 0.59938 0.43437 0.60012 0.43511 0.60012 0.42994
- 11 380 17 0.60455 0.43511 0.60382 0.43486 0.60332 0.43413 0.60308 0.43289 0.60308 0.43216 0.60332 0.43092 0.60382 0.43019 0.60455 0.42994 0.60505 0.42994 0.60579 0.43019 0.60628 0.43092 0.60652 0.43216 0.60652 0.43289 0.60628 0.43413 0.60579 0.43486 0.60505 0.43511 0.60455 0.43511
- 11 50 2 0.60948 0.43610 0.60948 0.42822
- 11 50 2 0.60973 0.43610 0.60973 0.42822
- 11 50 2 0.60800 0.43610 0.60973 0.43610
- 11 50 2 0.60800 0.42822 0.60973 0.42822
- 11 50 2 0.61391 0.43437 0.61391 0.42994
- 11 50 2 0.61170 0.43216 0.61613 0.43216
- 11 94 4 0.61859 0.43413 0.61908 0.43437 0.61982 0.43511 0.61982 0.42994
- 11 380 17 0.62425 0.43511 0.62351 0.43486 0.62302 0.43413 0.62278 0.43289 0.62278 0.43216 0.62302 0.43092 0.62351 0.43019 0.62425 0.42994 0.62475 0.42994 0.62548 0.43019 0.62598 0.43092 0.62622 0.43216 0.62622 0.43289 0.62598 0.43413 0.62548 0.43486 0.62475 0.43511 0.62425 0.43511
- 11 50 2 0.63016 0.43437 0.63016 0.42994
- 11 50 2 0.62795 0.43216 0.63238 0.43216
- 11 50 2 0.63435 0.43511 0.63435 0.42994
- 11 50 2 0.63435 0.43511 0.63755 0.43511
- 11 50 2 0.63435 0.43265 0.63632 0.43265
- 11 50 2 0.63435 0.42994 0.63755 0.42994
- 11 50 2 0.63903 0.43511 0.63903 0.42994
- 11 226 10 0.63903 0.43511 0.64124 0.43511 0.64198 0.43486 0.64223 0.43462 0.64247 0.43413 0.64247 0.43339 0.64223 0.43289 0.64198 0.43265 0.64124 0.43240 0.63903 0.43240
- 11 446 20 0.64740 0.43437 0.64691 0.43486 0.64617 0.43511 0.64518 0.43511 0.64444 0.43486 0.64395 0.43437 0.64395 0.43388 0.64420 0.43339 0.64444 0.43314 0.64494 0.43289 0.64641 0.43240 0.64691 0.43216 0.64715 0.43191 0.64740 0.43142 0.64740 0.43068 0.64691 0.43019 0.64617 0.42994 0.64518 0.42994 0.64444 0.43019 0.64395 0.43068
- 11 226 10 0.64888 0.43610 0.64937 0.43560 0.64986 0.43486 0.65035 0.43388 0.65060 0.43265 0.65060 0.43166 0.65035 0.43043 0.64986 0.42945 0.64937 0.42871 0.64888 0.42822
- 11 50 2 0.54817 0.42348 0.54817 0.41831
- 11 226 10 0.54817 0.42348 0.55038 0.42348 0.55112 0.42323 0.55137 0.42298 0.55162 0.42249 0.55162 0.42200 0.55137 0.42151 0.55112 0.42126 0.55038 0.42101 0.54817 0.42101
- 11 50 2 0.54989 0.42101 0.55162 0.41831
- 11 50 2 0.55457 0.42348 0.55260 0.41831
- 11 50 2 0.55457 0.42348 0.55654 0.41831
- 11 50 2 0.55334 0.42003 0.55580 0.42003
- 11 50 2 0.55777 0.42348 0.55777 0.41831
- 11 50 2 0.55777 0.42348 0.56122 0.41831
- 11 50 2 0.56122 0.42348 0.56122 0.41831
- 11 50 2 0.56319 0.42348 0.56319 0.41831
- 11 270 12 0.56319 0.42348 0.56491 0.42348 0.56565 0.42323 0.56614 0.42274 0.56639 0.42225 0.56664 0.42151 0.56664 0.42028 0.56639 0.41954 0.56614 0.41904 0.56565 0.41855 0.56491 0.41831 0.56319 0.41831
- 11 226 10 0.56836 0.42348 0.56836 0.41978 0.56861 0.41904 0.56910 0.41855 0.56984 0.41831 0.57033 0.41831 0.57107 0.41855 0.57156 0.41904 0.57181 0.41978 0.57181 0.42348
- 11 226 10 0.57550 0.42446 0.57501 0.42397 0.57451 0.42323 0.57402 0.42225 0.57378 0.42101 0.57378 0.42003 0.57402 0.41880 0.57451 0.41781 0.57501 0.41707 0.57550 0.41658
- 11 50 2 0.57722 0.42348 0.57722 0.41831
- 11 50 2 0.57919 0.42446 0.57919 0.41658
- 11 50 2 0.57944 0.42446 0.57944 0.41658
- 11 50 2 0.57919 0.42446 0.58092 0.42446
- 11 50 2 0.57919 0.41658 0.58092 0.41658
- 11 50 2 0.58264 0.42348 0.58264 0.41831
- 11 50 2 0.58461 0.42126 0.58904 0.42126
- 11 50 2 0.58461 0.41978 0.58904 0.41978
- 11 94 4 0.59150 0.42249 0.59200 0.42274 0.59274 0.42348 0.59274 0.41831
- 11 116 5 0.59618 0.42175 0.59594 0.42151 0.59618 0.42126 0.59643 0.42151 0.59618 0.42175
- 11 116 5 0.59618 0.41880 0.59594 0.41855 0.59618 0.41831 0.59643 0.41855 0.59618 0.41880
- 11 94 4 0.59889 0.42249 0.59938 0.42274 0.60012 0.42348 0.60012 0.41831
- 11 380 17 0.60455 0.42348 0.60382 0.42323 0.60332 0.42249 0.60308 0.42126 0.60308 0.42052 0.60332 0.41929 0.60382 0.41855 0.60455 0.41831 0.60505 0.41831 0.60579 0.41855 0.60628 0.41929 0.60652 0.42052 0.60652 0.42126 0.60628 0.42249 0.60579 0.42323 0.60505 0.42348 0.60455 0.42348
- 11 50 2 0.60948 0.42446 0.60948 0.41658
- 11 50 2 0.60973 0.42446 0.60973 0.41658
- 11 50 2 0.60800 0.42446 0.60973 0.42446
- 11 50 2 0.60800 0.41658 0.60973 0.41658
- 11 50 2 0.61391 0.42274 0.61391 0.41831
- 11 50 2 0.61170 0.42052 0.61613 0.42052
- 11 94 4 0.61859 0.42249 0.61908 0.42274 0.61982 0.42348 0.61982 0.41831
- 11 380 17 0.62425 0.42348 0.62351 0.42323 0.62302 0.42249 0.62278 0.42126 0.62278 0.42052 0.62302 0.41929 0.62351 0.41855 0.62425 0.41831 0.62475 0.41831 0.62548 0.41855 0.62598 0.41929 0.62622 0.42052 0.62622 0.42126 0.62598 0.42249 0.62548 0.42323 0.62475 0.42348 0.62425 0.42348
- 11 50 2 0.63016 0.42274 0.63016 0.41831
- 11 50 2 0.62795 0.42052 0.63238 0.42052
- 11 50 2 0.63435 0.42348 0.63435 0.41831
- 11 50 2 0.63435 0.42348 0.63755 0.42348
- 11 50 2 0.63435 0.42101 0.63632 0.42101
- 11 50 2 0.63435 0.41831 0.63755 0.41831
- 11 50 2 0.63903 0.42348 0.63903 0.41831
- 11 226 10 0.63903 0.42348 0.64124 0.42348 0.64198 0.42323 0.64223 0.42298 0.64247 0.42249 0.64247 0.42175 0.64223 0.42126 0.64198 0.42101 0.64124 0.42077 0.63903 0.42077
- 11 446 20 0.64740 0.42274 0.64691 0.42323 0.64617 0.42348 0.64518 0.42348 0.64444 0.42323 0.64395 0.42274 0.64395 0.42225 0.64420 0.42175 0.64444 0.42151 0.64494 0.42126 0.64641 0.42077 0.64691 0.42052 0.64715 0.42028 0.64740 0.41978 0.64740 0.41904 0.64691 0.41855 0.64617 0.41831 0.64518 0.41831 0.64444 0.41855 0.64395 0.41904
- 11 226 10 0.64888 0.42446 0.64937 0.42397 0.64986 0.42323 0.65035 0.42225 0.65060 0.42101 0.65060 0.42003 0.65035 0.41880 0.64986 0.41781 0.64937 0.41707 0.64888 0.41658
- 11 50 2 0.54817 0.41184 0.54817 0.40667
- 11 226 10 0.54817 0.41184 0.55038 0.41184 0.55112 0.41160 0.55137 0.41135 0.55162 0.41086 0.55162 0.41036 0.55137 0.40987 0.55112 0.40963 0.55038 0.40938 0.54817 0.40938
- 11 50 2 0.54989 0.40938 0.55162 0.40667
- 11 50 2 0.55457 0.41184 0.55260 0.40667
- 11 50 2 0.55457 0.41184 0.55654 0.40667
- 11 50 2 0.55334 0.40839 0.55580 0.40839
- 11 50 2 0.55777 0.41184 0.55777 0.40667
- 11 50 2 0.55777 0.41184 0.56122 0.40667
- 11 50 2 0.56122 0.41184 0.56122 0.40667
- 11 50 2 0.56319 0.41184 0.56319 0.40667
- 11 270 12 0.56319 0.41184 0.56491 0.41184 0.56565 0.41160 0.56614 0.41110 0.56639 0.41061 0.56664 0.40987 0.56664 0.40864 0.56639 0.40790 0.56614 0.40741 0.56565 0.40692 0.56491 0.40667 0.56319 0.40667
- 11 226 10 0.56836 0.41184 0.56836 0.40815 0.56861 0.40741 0.56910 0.40692 0.56984 0.40667 0.57033 0.40667 0.57107 0.40692 0.57156 0.40741 0.57181 0.40815 0.57181 0.41184
- 11 226 10 0.57550 0.41283 0.57501 0.41233 0.57451 0.41160 0.57402 0.41061 0.57378 0.40938 0.57378 0.40839 0.57402 0.40716 0.57451 0.40618 0.57501 0.40544 0.57550 0.40495
- 11 50 2 0.57722 0.41184 0.57722 0.40667
- 11 50 2 0.57919 0.41283 0.57919 0.40495
- 11 50 2 0.57944 0.41283 0.57944 0.40495
- 11 50 2 0.57919 0.41283 0.58092 0.41283
- 11 50 2 0.57919 0.40495 0.58092 0.40495
- 11 50 2 0.58264 0.41184 0.58264 0.40667
- 11 50 2 0.58461 0.40963 0.58904 0.40963
- 11 50 2 0.58461 0.40815 0.58904 0.40815
- 11 94 4 0.59150 0.41086 0.59200 0.41110 0.59274 0.41184 0.59274 0.40667
- 11 116 5 0.59618 0.41012 0.59594 0.40987 0.59618 0.40963 0.59643 0.40987 0.59618 0.41012
- 11 116 5 0.59618 0.40716 0.59594 0.40692 0.59618 0.40667 0.59643 0.40692 0.59618 0.40716
- 11 94 4 0.59889 0.41086 0.59938 0.41110 0.60012 0.41184 0.60012 0.40667
- 11 380 17 0.60455 0.41184 0.60382 0.41160 0.60332 0.41086 0.60308 0.40963 0.60308 0.40889 0.60332 0.40766 0.60382 0.40692 0.60455 0.40667 0.60505 0.40667 0.60579 0.40692 0.60628 0.40766 0.60652 0.40889 0.60652 0.40963 0.60628 0.41086 0.60579 0.41160 0.60505 0.41184 0.60455 0.41184
- 11 50 2 0.60948 0.41283 0.60948 0.40495
- 11 50 2 0.60973 0.41283 0.60973 0.40495
- 11 50 2 0.60800 0.41283 0.60973 0.41283
- 11 50 2 0.60800 0.40495 0.60973 0.40495
- 11 50 2 0.61391 0.41110 0.61391 0.40667
- 11 50 2 0.61170 0.40889 0.61613 0.40889
- 11 94 4 0.61859 0.41086 0.61908 0.41110 0.61982 0.41184 0.61982 0.40667
- 11 380 17 0.62425 0.41184 0.62351 0.41160 0.62302 0.41086 0.62278 0.40963 0.62278 0.40889 0.62302 0.40766 0.62351 0.40692 0.62425 0.40667 0.62475 0.40667 0.62548 0.40692 0.62598 0.40766 0.62622 0.40889 0.62622 0.40963 0.62598 0.41086 0.62548 0.41160 0.62475 0.41184 0.62425 0.41184
- 11 50 2 0.63016 0.41110 0.63016 0.40667
- 11 50 2 0.62795 0.40889 0.63238 0.40889
- 11 50 2 0.63435 0.41184 0.63435 0.40667
- 11 50 2 0.63435 0.41184 0.63755 0.41184
- 11 50 2 0.63435 0.40938 0.63632 0.40938
- 11 50 2 0.63435 0.40667 0.63755 0.40667
- 11 50 2 0.63903 0.41184 0.63903 0.40667
- 11 226 10 0.63903 0.41184 0.64124 0.41184 0.64198 0.41160 0.64223 0.41135 0.64247 0.41086 0.64247 0.41012 0.64223 0.40963 0.64198 0.40938 0.64124 0.40913 0.63903 0.40913
- 11 446 20 0.64740 0.41110 0.64691 0.41160 0.64617 0.41184 0.64518 0.41184 0.64444 0.41160 0.64395 0.41110 0.64395 0.41061 0.64420 0.41012 0.64444 0.40987 0.64494 0.40963 0.64641 0.40913 0.64691 0.40889 0.64715 0.40864 0.64740 0.40815 0.64740 0.40741 0.64691 0.40692 0.64617 0.40667 0.64518 0.40667 0.64444 0.40692 0.64395 0.40741
- 11 226 10 0.64888 0.41283 0.64937 0.41233 0.64986 0.41160 0.65035 0.41061 0.65060 0.40938 0.65060 0.40839 0.65035 0.40716 0.64986 0.40618 0.64937 0.40544 0.64888 0.40495
- 11 50 2 0.54817 0.40021 0.54817 0.39504
- 11 226 10 0.54817 0.40021 0.55038 0.40021 0.55112 0.39996 0.55137 0.39972 0.55162 0.39922 0.55162 0.39873 0.55137 0.39824 0.55112 0.39799 0.55038 0.39775 0.54817 0.39775
- 11 50 2 0.54989 0.39775 0.55162 0.39504
- 11 50 2 0.55457 0.40021 0.55260 0.39504
- 11 50 2 0.55457 0.40021 0.55654 0.39504
- 11 50 2 0.55334 0.39676 0.55580 0.39676
- 11 50 2 0.55777 0.40021 0.55777 0.39504
- 11 50 2 0.55777 0.40021 0.56122 0.39504
- 11 50 2 0.56122 0.40021 0.56122 0.39504
- 11 50 2 0.56319 0.40021 0.56319 0.39504
- 11 270 12 0.56319 0.40021 0.56491 0.40021 0.56565 0.39996 0.56614 0.39947 0.56639 0.39898 0.56664 0.39824 0.56664 0.39701 0.56639 0.39627 0.56614 0.39578 0.56565 0.39528 0.56491 0.39504 0.56319 0.39504
- 11 226 10 0.56836 0.40021 0.56836 0.39651 0.56861 0.39578 0.56910 0.39528 0.56984 0.39504 0.57033 0.39504 0.57107 0.39528 0.57156 0.39578 0.57181 0.39651 0.57181 0.40021
- 11 226 10 0.57550 0.40119 0.57501 0.40070 0.57451 0.39996 0.57402 0.39898 0.57378 0.39775 0.57378 0.39676 0.57402 0.39553 0.57451 0.39454 0.57501 0.39381 0.57550 0.39331
- 11 50 2 0.57722 0.40021 0.57722 0.39504
- 11 50 2 0.57919 0.40119 0.57919 0.39331
- 11 50 2 0.57944 0.40119 0.57944 0.39331
- 11 50 2 0.57919 0.40119 0.58092 0.40119
- 11 50 2 0.57919 0.39331 0.58092 0.39331
- 11 50 2 0.58264 0.40021 0.58264 0.39504
- 11 50 2 0.58461 0.39799 0.58904 0.39799
- 11 50 2 0.58461 0.39651 0.58904 0.39651
- 11 94 4 0.59150 0.39922 0.59200 0.39947 0.59274 0.40021 0.59274 0.39504
- 11 116 5 0.59618 0.39848 0.59594 0.39824 0.59618 0.39799 0.59643 0.39824 0.59618 0.39848
- 11 116 5 0.59618 0.39553 0.59594 0.39528 0.59618 0.39504 0.59643 0.39528 0.59618 0.39553
- 11 94 4 0.59889 0.39922 0.59938 0.39947 0.60012 0.40021 0.60012 0.39504
- 11 380 17 0.60455 0.40021 0.60382 0.39996 0.60332 0.39922 0.60308 0.39799 0.60308 0.39725 0.60332 0.39602 0.60382 0.39528 0.60455 0.39504 0.60505 0.39504 0.60579 0.39528 0.60628 0.39602 0.60652 0.39725 0.60652 0.39799 0.60628 0.39922 0.60579 0.39996 0.60505 0.40021 0.60455 0.40021
- 11 50 2 0.60948 0.40119 0.60948 0.39331
- 11 50 2 0.60973 0.40119 0.60973 0.39331
- 11 50 2 0.60800 0.40119 0.60973 0.40119
- 11 50 2 0.60800 0.39331 0.60973 0.39331
- 11 50 2 0.61391 0.39947 0.61391 0.39504
- 11 50 2 0.61170 0.39725 0.61613 0.39725
- 11 94 4 0.61859 0.39922 0.61908 0.39947 0.61982 0.40021 0.61982 0.39504
- 11 380 17 0.62425 0.40021 0.62351 0.39996 0.62302 0.39922 0.62278 0.39799 0.62278 0.39725 0.62302 0.39602 0.62351 0.39528 0.62425 0.39504 0.62475 0.39504 0.62548 0.39528 0.62598 0.39602 0.62622 0.39725 0.62622 0.39799 0.62598 0.39922 0.62548 0.39996 0.62475 0.40021 0.62425 0.40021
- 11 50 2 0.63016 0.39947 0.63016 0.39504
- 11 50 2 0.62795 0.39725 0.63238 0.39725
- 11 50 2 0.63435 0.40021 0.63435 0.39504
- 11 50 2 0.63435 0.40021 0.63755 0.40021
- 11 50 2 0.63435 0.39775 0.63632 0.39775
- 11 50 2 0.63435 0.39504 0.63755 0.39504
- 11 50 2 0.63903 0.40021 0.63903 0.39504
- 11 226 10 0.63903 0.40021 0.64124 0.40021 0.64198 0.39996 0.64223 0.39972 0.64247 0.39922 0.64247 0.39848 0.64223 0.39799 0.64198 0.39775 0.64124 0.39750 0.63903 0.39750
- 11 446 20 0.64740 0.39947 0.64691 0.39996 0.64617 0.40021 0.64518 0.40021 0.64444 0.39996 0.64395 0.39947 0.64395 0.39898 0.64420 0.39848 0.64444 0.39824 0.64494 0.39799 0.64641 0.39750 0.64691 0.39725 0.64715 0.39701 0.64740 0.39651 0.64740 0.39578 0.64691 0.39528 0.64617 0.39504 0.64518 0.39504 0.64444 0.39528 0.64395 0.39578
- 11 226 10 0.64888 0.40119 0.64937 0.40070 0.64986 0.39996 0.65035 0.39898 0.65060 0.39775 0.65060 0.39676 0.65035 0.39553 0.64986 0.39454 0.64937 0.39381 0.64888 0.39331
11 50 2 0.54817 0.38857 0.54817 0.38340
11 226 10 0.54817 0.38857 0.55038 0.38857 0.55112 0.38833 0.55137 0.38808 0.55162 0.38759 0.55162 0.38710 0.55137 0.38660 0.55112 0.38636 0.55038 0.38611 0.54817 0.38611
11 50 2 0.54989 0.38611 0.55162 0.38340
@@ -1718,240 +1116,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/12/14 1 0 3 6 611 1 1
11 50 2 0.60891 0.47661 0.61343 0.47661
21 6 1
25 6 1
- 11 50 2 0.57867 0.70593 0.58384 0.69817
- 11 50 2 0.58384 0.70593 0.57867 0.69817
- 11 116 5 0.59271 0.70335 0.59234 0.70298 0.59271 0.70261 0.59307 0.70298 0.59271 0.70335
- 11 116 5 0.59271 0.69891 0.59234 0.69854 0.59271 0.69817 0.59307 0.69854 0.59271 0.69891
- 11 380 17 0.60379 0.70593 0.60268 0.70556 0.60194 0.70445 0.60157 0.70261 0.60157 0.70150 0.60194 0.69965 0.60268 0.69854 0.60379 0.69817 0.60452 0.69817 0.60563 0.69854 0.60637 0.69965 0.60674 0.70150 0.60674 0.70261 0.60637 0.70445 0.60563 0.70556 0.60452 0.70593 0.60379 0.70593
- 11 116 5 0.60969 0.69891 0.60933 0.69854 0.60969 0.69817 0.61006 0.69854 0.60969 0.69891
- 11 380 17 0.61708 0.70593 0.61339 0.70593 0.61302 0.70261 0.61339 0.70298 0.61450 0.70335 0.61560 0.70335 0.61671 0.70298 0.61745 0.70224 0.61782 0.70113 0.61782 0.70039 0.61745 0.69928 0.61671 0.69854 0.61560 0.69817 0.61450 0.69817 0.61339 0.69854 0.61302 0.69891 0.61265 0.69965
- 11 116 5 0.62668 0.70593 0.62668 0.69965 0.62705 0.69854 0.62779 0.69817 0.62853 0.69817
- 11 50 2 0.62558 0.70335 0.62816 0.70335
- 11 380 17 0.63222 0.70335 0.63149 0.70298 0.63075 0.70224 0.63038 0.70113 0.63038 0.70039 0.63075 0.69928 0.63149 0.69854 0.63222 0.69817 0.63333 0.69817 0.63407 0.69854 0.63481 0.69928 0.63518 0.70039 0.63518 0.70113 0.63481 0.70224 0.63407 0.70298 0.63333 0.70335 0.63222 0.70335
- 11 94 4 0.64441 0.70445 0.64515 0.70482 0.64626 0.70593 0.64626 0.69817
- 11 380 17 0.65291 0.70593 0.65180 0.70556 0.65106 0.70445 0.65069 0.70261 0.65069 0.70150 0.65106 0.69965 0.65180 0.69854 0.65291 0.69817 0.65365 0.69817 0.65475 0.69854 0.65549 0.69965 0.65586 0.70150 0.65586 0.70261 0.65549 0.70445 0.65475 0.70556 0.65365 0.70593 0.65291 0.70593
- 11 116 5 0.65882 0.69891 0.65845 0.69854 0.65882 0.69817 0.65919 0.69854 0.65882 0.69891
- 11 380 17 0.66620 0.70593 0.66251 0.70593 0.66214 0.70261 0.66251 0.70298 0.66362 0.70335 0.66473 0.70335 0.66583 0.70298 0.66657 0.70224 0.66694 0.70113 0.66694 0.70039 0.66657 0.69928 0.66583 0.69854 0.66473 0.69817 0.66362 0.69817 0.66251 0.69854 0.66214 0.69891 0.66177 0.69965
- 11 50 2 0.54817 0.43511 0.54817 0.42994
- 11 226 10 0.54817 0.43511 0.55038 0.43511 0.55112 0.43486 0.55137 0.43462 0.55162 0.43413 0.55162 0.43363 0.55137 0.43314 0.55112 0.43289 0.55038 0.43265 0.54817 0.43265
- 11 50 2 0.54989 0.43265 0.55162 0.42994
- 11 50 2 0.55457 0.43511 0.55260 0.42994
- 11 50 2 0.55457 0.43511 0.55654 0.42994
- 11 50 2 0.55334 0.43166 0.55580 0.43166
- 11 50 2 0.55777 0.43511 0.55777 0.42994
- 11 50 2 0.55777 0.43511 0.56122 0.42994
- 11 50 2 0.56122 0.43511 0.56122 0.42994
- 11 50 2 0.56319 0.43511 0.56319 0.42994
- 11 270 12 0.56319 0.43511 0.56491 0.43511 0.56565 0.43486 0.56614 0.43437 0.56639 0.43388 0.56664 0.43314 0.56664 0.43191 0.56639 0.43117 0.56614 0.43068 0.56565 0.43019 0.56491 0.42994 0.56319 0.42994
- 11 226 10 0.56836 0.43511 0.56836 0.43142 0.56861 0.43068 0.56910 0.43019 0.56984 0.42994 0.57033 0.42994 0.57107 0.43019 0.57156 0.43068 0.57181 0.43142 0.57181 0.43511
- 11 226 10 0.57550 0.43610 0.57501 0.43560 0.57451 0.43486 0.57402 0.43388 0.57378 0.43265 0.57378 0.43166 0.57402 0.43043 0.57451 0.42945 0.57501 0.42871 0.57550 0.42822
- 11 50 2 0.57722 0.43511 0.57722 0.42994
- 11 50 2 0.57919 0.43610 0.57919 0.42822
- 11 50 2 0.57944 0.43610 0.57944 0.42822
- 11 50 2 0.57919 0.43610 0.58092 0.43610
- 11 50 2 0.57919 0.42822 0.58092 0.42822
- 11 50 2 0.58264 0.43511 0.58264 0.42994
- 11 50 2 0.58461 0.43289 0.58904 0.43289
- 11 50 2 0.58461 0.43142 0.58904 0.43142
- 11 94 4 0.59150 0.43413 0.59200 0.43437 0.59274 0.43511 0.59274 0.42994
- 11 116 5 0.59618 0.43339 0.59594 0.43314 0.59618 0.43289 0.59643 0.43314 0.59618 0.43339
- 11 116 5 0.59618 0.43043 0.59594 0.43019 0.59618 0.42994 0.59643 0.43019 0.59618 0.43043
- 11 94 4 0.59889 0.43413 0.59938 0.43437 0.60012 0.43511 0.60012 0.42994
- 11 380 17 0.60455 0.43511 0.60382 0.43486 0.60332 0.43413 0.60308 0.43289 0.60308 0.43216 0.60332 0.43092 0.60382 0.43019 0.60455 0.42994 0.60505 0.42994 0.60579 0.43019 0.60628 0.43092 0.60652 0.43216 0.60652 0.43289 0.60628 0.43413 0.60579 0.43486 0.60505 0.43511 0.60455 0.43511
- 11 50 2 0.60948 0.43610 0.60948 0.42822
- 11 50 2 0.60973 0.43610 0.60973 0.42822
- 11 50 2 0.60800 0.43610 0.60973 0.43610
- 11 50 2 0.60800 0.42822 0.60973 0.42822
- 11 50 2 0.61391 0.43437 0.61391 0.42994
- 11 50 2 0.61170 0.43216 0.61613 0.43216
- 11 94 4 0.61859 0.43413 0.61908 0.43437 0.61982 0.43511 0.61982 0.42994
- 11 380 17 0.62425 0.43511 0.62351 0.43486 0.62302 0.43413 0.62278 0.43289 0.62278 0.43216 0.62302 0.43092 0.62351 0.43019 0.62425 0.42994 0.62475 0.42994 0.62548 0.43019 0.62598 0.43092 0.62622 0.43216 0.62622 0.43289 0.62598 0.43413 0.62548 0.43486 0.62475 0.43511 0.62425 0.43511
- 11 50 2 0.63016 0.43437 0.63016 0.42994
- 11 50 2 0.62795 0.43216 0.63238 0.43216
- 11 50 2 0.63435 0.43511 0.63435 0.42994
- 11 50 2 0.63435 0.43511 0.63755 0.43511
- 11 50 2 0.63435 0.43265 0.63632 0.43265
- 11 50 2 0.63435 0.42994 0.63755 0.42994
- 11 50 2 0.63903 0.43511 0.63903 0.42994
- 11 226 10 0.63903 0.43511 0.64124 0.43511 0.64198 0.43486 0.64223 0.43462 0.64247 0.43413 0.64247 0.43339 0.64223 0.43289 0.64198 0.43265 0.64124 0.43240 0.63903 0.43240
- 11 446 20 0.64740 0.43437 0.64691 0.43486 0.64617 0.43511 0.64518 0.43511 0.64444 0.43486 0.64395 0.43437 0.64395 0.43388 0.64420 0.43339 0.64444 0.43314 0.64494 0.43289 0.64641 0.43240 0.64691 0.43216 0.64715 0.43191 0.64740 0.43142 0.64740 0.43068 0.64691 0.43019 0.64617 0.42994 0.64518 0.42994 0.64444 0.43019 0.64395 0.43068
- 11 226 10 0.64888 0.43610 0.64937 0.43560 0.64986 0.43486 0.65035 0.43388 0.65060 0.43265 0.65060 0.43166 0.65035 0.43043 0.64986 0.42945 0.64937 0.42871 0.64888 0.42822
- 11 50 2 0.54817 0.42348 0.54817 0.41831
- 11 226 10 0.54817 0.42348 0.55038 0.42348 0.55112 0.42323 0.55137 0.42298 0.55162 0.42249 0.55162 0.42200 0.55137 0.42151 0.55112 0.42126 0.55038 0.42101 0.54817 0.42101
- 11 50 2 0.54989 0.42101 0.55162 0.41831
- 11 50 2 0.55457 0.42348 0.55260 0.41831
- 11 50 2 0.55457 0.42348 0.55654 0.41831
- 11 50 2 0.55334 0.42003 0.55580 0.42003
- 11 50 2 0.55777 0.42348 0.55777 0.41831
- 11 50 2 0.55777 0.42348 0.56122 0.41831
- 11 50 2 0.56122 0.42348 0.56122 0.41831
- 11 50 2 0.56319 0.42348 0.56319 0.41831
- 11 270 12 0.56319 0.42348 0.56491 0.42348 0.56565 0.42323 0.56614 0.42274 0.56639 0.42225 0.56664 0.42151 0.56664 0.42028 0.56639 0.41954 0.56614 0.41904 0.56565 0.41855 0.56491 0.41831 0.56319 0.41831
- 11 226 10 0.56836 0.42348 0.56836 0.41978 0.56861 0.41904 0.56910 0.41855 0.56984 0.41831 0.57033 0.41831 0.57107 0.41855 0.57156 0.41904 0.57181 0.41978 0.57181 0.42348
- 11 226 10 0.57550 0.42446 0.57501 0.42397 0.57451 0.42323 0.57402 0.42225 0.57378 0.42101 0.57378 0.42003 0.57402 0.41880 0.57451 0.41781 0.57501 0.41707 0.57550 0.41658
- 11 50 2 0.57722 0.42348 0.57722 0.41831
- 11 50 2 0.57919 0.42446 0.57919 0.41658
- 11 50 2 0.57944 0.42446 0.57944 0.41658
- 11 50 2 0.57919 0.42446 0.58092 0.42446
- 11 50 2 0.57919 0.41658 0.58092 0.41658
- 11 50 2 0.58264 0.42348 0.58264 0.41831
- 11 50 2 0.58461 0.42126 0.58904 0.42126
- 11 50 2 0.58461 0.41978 0.58904 0.41978
- 11 94 4 0.59150 0.42249 0.59200 0.42274 0.59274 0.42348 0.59274 0.41831
- 11 116 5 0.59618 0.42175 0.59594 0.42151 0.59618 0.42126 0.59643 0.42151 0.59618 0.42175
- 11 116 5 0.59618 0.41880 0.59594 0.41855 0.59618 0.41831 0.59643 0.41855 0.59618 0.41880
- 11 94 4 0.59889 0.42249 0.59938 0.42274 0.60012 0.42348 0.60012 0.41831
- 11 380 17 0.60455 0.42348 0.60382 0.42323 0.60332 0.42249 0.60308 0.42126 0.60308 0.42052 0.60332 0.41929 0.60382 0.41855 0.60455 0.41831 0.60505 0.41831 0.60579 0.41855 0.60628 0.41929 0.60652 0.42052 0.60652 0.42126 0.60628 0.42249 0.60579 0.42323 0.60505 0.42348 0.60455 0.42348
- 11 50 2 0.60948 0.42446 0.60948 0.41658
- 11 50 2 0.60973 0.42446 0.60973 0.41658
- 11 50 2 0.60800 0.42446 0.60973 0.42446
- 11 50 2 0.60800 0.41658 0.60973 0.41658
- 11 50 2 0.61391 0.42274 0.61391 0.41831
- 11 50 2 0.61170 0.42052 0.61613 0.42052
- 11 94 4 0.61859 0.42249 0.61908 0.42274 0.61982 0.42348 0.61982 0.41831
- 11 380 17 0.62425 0.42348 0.62351 0.42323 0.62302 0.42249 0.62278 0.42126 0.62278 0.42052 0.62302 0.41929 0.62351 0.41855 0.62425 0.41831 0.62475 0.41831 0.62548 0.41855 0.62598 0.41929 0.62622 0.42052 0.62622 0.42126 0.62598 0.42249 0.62548 0.42323 0.62475 0.42348 0.62425 0.42348
- 11 50 2 0.63016 0.42274 0.63016 0.41831
- 11 50 2 0.62795 0.42052 0.63238 0.42052
- 11 50 2 0.63435 0.42348 0.63435 0.41831
- 11 50 2 0.63435 0.42348 0.63755 0.42348
- 11 50 2 0.63435 0.42101 0.63632 0.42101
- 11 50 2 0.63435 0.41831 0.63755 0.41831
- 11 50 2 0.63903 0.42348 0.63903 0.41831
- 11 226 10 0.63903 0.42348 0.64124 0.42348 0.64198 0.42323 0.64223 0.42298 0.64247 0.42249 0.64247 0.42175 0.64223 0.42126 0.64198 0.42101 0.64124 0.42077 0.63903 0.42077
- 11 446 20 0.64740 0.42274 0.64691 0.42323 0.64617 0.42348 0.64518 0.42348 0.64444 0.42323 0.64395 0.42274 0.64395 0.42225 0.64420 0.42175 0.64444 0.42151 0.64494 0.42126 0.64641 0.42077 0.64691 0.42052 0.64715 0.42028 0.64740 0.41978 0.64740 0.41904 0.64691 0.41855 0.64617 0.41831 0.64518 0.41831 0.64444 0.41855 0.64395 0.41904
- 11 226 10 0.64888 0.42446 0.64937 0.42397 0.64986 0.42323 0.65035 0.42225 0.65060 0.42101 0.65060 0.42003 0.65035 0.41880 0.64986 0.41781 0.64937 0.41707 0.64888 0.41658
- 11 50 2 0.54817 0.41184 0.54817 0.40667
- 11 226 10 0.54817 0.41184 0.55038 0.41184 0.55112 0.41160 0.55137 0.41135 0.55162 0.41086 0.55162 0.41036 0.55137 0.40987 0.55112 0.40963 0.55038 0.40938 0.54817 0.40938
- 11 50 2 0.54989 0.40938 0.55162 0.40667
- 11 50 2 0.55457 0.41184 0.55260 0.40667
- 11 50 2 0.55457 0.41184 0.55654 0.40667
- 11 50 2 0.55334 0.40839 0.55580 0.40839
- 11 50 2 0.55777 0.41184 0.55777 0.40667
- 11 50 2 0.55777 0.41184 0.56122 0.40667
- 11 50 2 0.56122 0.41184 0.56122 0.40667
- 11 50 2 0.56319 0.41184 0.56319 0.40667
- 11 270 12 0.56319 0.41184 0.56491 0.41184 0.56565 0.41160 0.56614 0.41110 0.56639 0.41061 0.56664 0.40987 0.56664 0.40864 0.56639 0.40790 0.56614 0.40741 0.56565 0.40692 0.56491 0.40667 0.56319 0.40667
- 11 226 10 0.56836 0.41184 0.56836 0.40815 0.56861 0.40741 0.56910 0.40692 0.56984 0.40667 0.57033 0.40667 0.57107 0.40692 0.57156 0.40741 0.57181 0.40815 0.57181 0.41184
- 11 226 10 0.57550 0.41283 0.57501 0.41233 0.57451 0.41160 0.57402 0.41061 0.57378 0.40938 0.57378 0.40839 0.57402 0.40716 0.57451 0.40618 0.57501 0.40544 0.57550 0.40495
- 11 50 2 0.57722 0.41184 0.57722 0.40667
- 11 50 2 0.57919 0.41283 0.57919 0.40495
- 11 50 2 0.57944 0.41283 0.57944 0.40495
- 11 50 2 0.57919 0.41283 0.58092 0.41283
- 11 50 2 0.57919 0.40495 0.58092 0.40495
- 11 50 2 0.58264 0.41184 0.58264 0.40667
- 11 50 2 0.58461 0.40963 0.58904 0.40963
- 11 50 2 0.58461 0.40815 0.58904 0.40815
- 11 94 4 0.59150 0.41086 0.59200 0.41110 0.59274 0.41184 0.59274 0.40667
- 11 116 5 0.59618 0.41012 0.59594 0.40987 0.59618 0.40963 0.59643 0.40987 0.59618 0.41012
- 11 116 5 0.59618 0.40716 0.59594 0.40692 0.59618 0.40667 0.59643 0.40692 0.59618 0.40716
- 11 94 4 0.59889 0.41086 0.59938 0.41110 0.60012 0.41184 0.60012 0.40667
- 11 380 17 0.60455 0.41184 0.60382 0.41160 0.60332 0.41086 0.60308 0.40963 0.60308 0.40889 0.60332 0.40766 0.60382 0.40692 0.60455 0.40667 0.60505 0.40667 0.60579 0.40692 0.60628 0.40766 0.60652 0.40889 0.60652 0.40963 0.60628 0.41086 0.60579 0.41160 0.60505 0.41184 0.60455 0.41184
- 11 50 2 0.60948 0.41283 0.60948 0.40495
- 11 50 2 0.60973 0.41283 0.60973 0.40495
- 11 50 2 0.60800 0.41283 0.60973 0.41283
- 11 50 2 0.60800 0.40495 0.60973 0.40495
- 11 50 2 0.61391 0.41110 0.61391 0.40667
- 11 50 2 0.61170 0.40889 0.61613 0.40889
- 11 94 4 0.61859 0.41086 0.61908 0.41110 0.61982 0.41184 0.61982 0.40667
- 11 380 17 0.62425 0.41184 0.62351 0.41160 0.62302 0.41086 0.62278 0.40963 0.62278 0.40889 0.62302 0.40766 0.62351 0.40692 0.62425 0.40667 0.62475 0.40667 0.62548 0.40692 0.62598 0.40766 0.62622 0.40889 0.62622 0.40963 0.62598 0.41086 0.62548 0.41160 0.62475 0.41184 0.62425 0.41184
- 11 50 2 0.63016 0.41110 0.63016 0.40667
- 11 50 2 0.62795 0.40889 0.63238 0.40889
- 11 50 2 0.63435 0.41184 0.63435 0.40667
- 11 50 2 0.63435 0.41184 0.63755 0.41184
- 11 50 2 0.63435 0.40938 0.63632 0.40938
- 11 50 2 0.63435 0.40667 0.63755 0.40667
- 11 50 2 0.63903 0.41184 0.63903 0.40667
- 11 226 10 0.63903 0.41184 0.64124 0.41184 0.64198 0.41160 0.64223 0.41135 0.64247 0.41086 0.64247 0.41012 0.64223 0.40963 0.64198 0.40938 0.64124 0.40913 0.63903 0.40913
- 11 446 20 0.64740 0.41110 0.64691 0.41160 0.64617 0.41184 0.64518 0.41184 0.64444 0.41160 0.64395 0.41110 0.64395 0.41061 0.64420 0.41012 0.64444 0.40987 0.64494 0.40963 0.64641 0.40913 0.64691 0.40889 0.64715 0.40864 0.64740 0.40815 0.64740 0.40741 0.64691 0.40692 0.64617 0.40667 0.64518 0.40667 0.64444 0.40692 0.64395 0.40741
- 11 226 10 0.64888 0.41283 0.64937 0.41233 0.64986 0.41160 0.65035 0.41061 0.65060 0.40938 0.65060 0.40839 0.65035 0.40716 0.64986 0.40618 0.64937 0.40544 0.64888 0.40495
- 11 50 2 0.54817 0.40021 0.54817 0.39504
- 11 226 10 0.54817 0.40021 0.55038 0.40021 0.55112 0.39996 0.55137 0.39972 0.55162 0.39922 0.55162 0.39873 0.55137 0.39824 0.55112 0.39799 0.55038 0.39775 0.54817 0.39775
- 11 50 2 0.54989 0.39775 0.55162 0.39504
- 11 50 2 0.55457 0.40021 0.55260 0.39504
- 11 50 2 0.55457 0.40021 0.55654 0.39504
- 11 50 2 0.55334 0.39676 0.55580 0.39676
- 11 50 2 0.55777 0.40021 0.55777 0.39504
- 11 50 2 0.55777 0.40021 0.56122 0.39504
- 11 50 2 0.56122 0.40021 0.56122 0.39504
- 11 50 2 0.56319 0.40021 0.56319 0.39504
- 11 270 12 0.56319 0.40021 0.56491 0.40021 0.56565 0.39996 0.56614 0.39947 0.56639 0.39898 0.56664 0.39824 0.56664 0.39701 0.56639 0.39627 0.56614 0.39578 0.56565 0.39528 0.56491 0.39504 0.56319 0.39504
- 11 226 10 0.56836 0.40021 0.56836 0.39651 0.56861 0.39578 0.56910 0.39528 0.56984 0.39504 0.57033 0.39504 0.57107 0.39528 0.57156 0.39578 0.57181 0.39651 0.57181 0.40021
- 11 226 10 0.57550 0.40119 0.57501 0.40070 0.57451 0.39996 0.57402 0.39898 0.57378 0.39775 0.57378 0.39676 0.57402 0.39553 0.57451 0.39454 0.57501 0.39381 0.57550 0.39331
- 11 50 2 0.57722 0.40021 0.57722 0.39504
- 11 50 2 0.57919 0.40119 0.57919 0.39331
- 11 50 2 0.57944 0.40119 0.57944 0.39331
- 11 50 2 0.57919 0.40119 0.58092 0.40119
- 11 50 2 0.57919 0.39331 0.58092 0.39331
- 11 50 2 0.58264 0.40021 0.58264 0.39504
- 11 50 2 0.58461 0.39799 0.58904 0.39799
- 11 50 2 0.58461 0.39651 0.58904 0.39651
- 11 94 4 0.59150 0.39922 0.59200 0.39947 0.59274 0.40021 0.59274 0.39504
- 11 116 5 0.59618 0.39848 0.59594 0.39824 0.59618 0.39799 0.59643 0.39824 0.59618 0.39848
- 11 116 5 0.59618 0.39553 0.59594 0.39528 0.59618 0.39504 0.59643 0.39528 0.59618 0.39553
- 11 94 4 0.59889 0.39922 0.59938 0.39947 0.60012 0.40021 0.60012 0.39504
- 11 380 17 0.60455 0.40021 0.60382 0.39996 0.60332 0.39922 0.60308 0.39799 0.60308 0.39725 0.60332 0.39602 0.60382 0.39528 0.60455 0.39504 0.60505 0.39504 0.60579 0.39528 0.60628 0.39602 0.60652 0.39725 0.60652 0.39799 0.60628 0.39922 0.60579 0.39996 0.60505 0.40021 0.60455 0.40021
- 11 50 2 0.60948 0.40119 0.60948 0.39331
- 11 50 2 0.60973 0.40119 0.60973 0.39331
- 11 50 2 0.60800 0.40119 0.60973 0.40119
- 11 50 2 0.60800 0.39331 0.60973 0.39331
- 11 50 2 0.61391 0.39947 0.61391 0.39504
- 11 50 2 0.61170 0.39725 0.61613 0.39725
- 11 94 4 0.61859 0.39922 0.61908 0.39947 0.61982 0.40021 0.61982 0.39504
- 11 380 17 0.62425 0.40021 0.62351 0.39996 0.62302 0.39922 0.62278 0.39799 0.62278 0.39725 0.62302 0.39602 0.62351 0.39528 0.62425 0.39504 0.62475 0.39504 0.62548 0.39528 0.62598 0.39602 0.62622 0.39725 0.62622 0.39799 0.62598 0.39922 0.62548 0.39996 0.62475 0.40021 0.62425 0.40021
- 11 50 2 0.63016 0.39947 0.63016 0.39504
- 11 50 2 0.62795 0.39725 0.63238 0.39725
- 11 50 2 0.63435 0.40021 0.63435 0.39504
- 11 50 2 0.63435 0.40021 0.63755 0.40021
- 11 50 2 0.63435 0.39775 0.63632 0.39775
- 11 50 2 0.63435 0.39504 0.63755 0.39504
- 11 50 2 0.63903 0.40021 0.63903 0.39504
- 11 226 10 0.63903 0.40021 0.64124 0.40021 0.64198 0.39996 0.64223 0.39972 0.64247 0.39922 0.64247 0.39848 0.64223 0.39799 0.64198 0.39775 0.64124 0.39750 0.63903 0.39750
- 11 446 20 0.64740 0.39947 0.64691 0.39996 0.64617 0.40021 0.64518 0.40021 0.64444 0.39996 0.64395 0.39947 0.64395 0.39898 0.64420 0.39848 0.64444 0.39824 0.64494 0.39799 0.64641 0.39750 0.64691 0.39725 0.64715 0.39701 0.64740 0.39651 0.64740 0.39578 0.64691 0.39528 0.64617 0.39504 0.64518 0.39504 0.64444 0.39528 0.64395 0.39578
- 11 226 10 0.64888 0.40119 0.64937 0.40070 0.64986 0.39996 0.65035 0.39898 0.65060 0.39775 0.65060 0.39676 0.65035 0.39553 0.64986 0.39454 0.64937 0.39381 0.64888 0.39331
- 11 50 2 0.54817 0.38857 0.54817 0.38340
- 11 226 10 0.54817 0.38857 0.55038 0.38857 0.55112 0.38833 0.55137 0.38808 0.55162 0.38759 0.55162 0.38710 0.55137 0.38660 0.55112 0.38636 0.55038 0.38611 0.54817 0.38611
- 11 50 2 0.54989 0.38611 0.55162 0.38340
- 11 50 2 0.55457 0.38857 0.55260 0.38340
- 11 50 2 0.55457 0.38857 0.55654 0.38340
- 11 50 2 0.55334 0.38513 0.55580 0.38513
- 11 50 2 0.55777 0.38857 0.55777 0.38340
- 11 50 2 0.55777 0.38857 0.56122 0.38340
- 11 50 2 0.56122 0.38857 0.56122 0.38340
- 11 50 2 0.56319 0.38857 0.56319 0.38340
- 11 270 12 0.56319 0.38857 0.56491 0.38857 0.56565 0.38833 0.56614 0.38783 0.56639 0.38734 0.56664 0.38660 0.56664 0.38537 0.56639 0.38463 0.56614 0.38414 0.56565 0.38365 0.56491 0.38340 0.56319 0.38340
- 11 226 10 0.56836 0.38857 0.56836 0.38488 0.56861 0.38414 0.56910 0.38365 0.56984 0.38340 0.57033 0.38340 0.57107 0.38365 0.57156 0.38414 0.57181 0.38488 0.57181 0.38857
- 11 226 10 0.57550 0.38956 0.57501 0.38907 0.57451 0.38833 0.57402 0.38734 0.57378 0.38611 0.57378 0.38513 0.57402 0.38390 0.57451 0.38291 0.57501 0.38217 0.57550 0.38168
- 11 50 2 0.57722 0.38857 0.57722 0.38340
- 11 50 2 0.57919 0.38956 0.57919 0.38168
- 11 50 2 0.57944 0.38956 0.57944 0.38168
- 11 50 2 0.57919 0.38956 0.58092 0.38956
- 11 50 2 0.57919 0.38168 0.58092 0.38168
- 11 50 2 0.58264 0.38857 0.58264 0.38340
- 11 50 2 0.58461 0.38636 0.58904 0.38636
- 11 50 2 0.58461 0.38488 0.58904 0.38488
- 11 94 4 0.59150 0.38759 0.59200 0.38783 0.59274 0.38857 0.59274 0.38340
- 11 116 5 0.59618 0.38685 0.59594 0.38660 0.59618 0.38636 0.59643 0.38660 0.59618 0.38685
- 11 116 5 0.59618 0.38390 0.59594 0.38365 0.59618 0.38340 0.59643 0.38365 0.59618 0.38390
- 11 94 4 0.59889 0.38759 0.59938 0.38783 0.60012 0.38857 0.60012 0.38340
- 11 380 17 0.60455 0.38857 0.60382 0.38833 0.60332 0.38759 0.60308 0.38636 0.60308 0.38562 0.60332 0.38439 0.60382 0.38365 0.60455 0.38340 0.60505 0.38340 0.60579 0.38365 0.60628 0.38439 0.60652 0.38562 0.60652 0.38636 0.60628 0.38759 0.60579 0.38833 0.60505 0.38857 0.60455 0.38857
- 11 50 2 0.60948 0.38956 0.60948 0.38168
- 11 50 2 0.60973 0.38956 0.60973 0.38168
- 11 50 2 0.60800 0.38956 0.60973 0.38956
- 11 50 2 0.60800 0.38168 0.60973 0.38168
- 11 50 2 0.61391 0.38783 0.61391 0.38340
- 11 50 2 0.61170 0.38562 0.61613 0.38562
- 11 94 4 0.61859 0.38759 0.61908 0.38783 0.61982 0.38857 0.61982 0.38340
- 11 380 17 0.62425 0.38857 0.62351 0.38833 0.62302 0.38759 0.62278 0.38636 0.62278 0.38562 0.62302 0.38439 0.62351 0.38365 0.62425 0.38340 0.62475 0.38340 0.62548 0.38365 0.62598 0.38439 0.62622 0.38562 0.62622 0.38636 0.62598 0.38759 0.62548 0.38833 0.62475 0.38857 0.62425 0.38857
- 11 50 2 0.63016 0.38783 0.63016 0.38340
- 11 50 2 0.62795 0.38562 0.63238 0.38562
- 11 50 2 0.63435 0.38857 0.63435 0.38340
- 11 50 2 0.63435 0.38857 0.63755 0.38857
- 11 50 2 0.63435 0.38611 0.63632 0.38611
- 11 50 2 0.63435 0.38340 0.63755 0.38340
- 11 50 2 0.63903 0.38857 0.63903 0.38340
- 11 226 10 0.63903 0.38857 0.64124 0.38857 0.64198 0.38833 0.64223 0.38808 0.64247 0.38759 0.64247 0.38685 0.64223 0.38636 0.64198 0.38611 0.64124 0.38586 0.63903 0.38586
- 11 446 20 0.64740 0.38783 0.64691 0.38833 0.64617 0.38857 0.64518 0.38857 0.64444 0.38833 0.64395 0.38783 0.64395 0.38734 0.64420 0.38685 0.64444 0.38660 0.64494 0.38636 0.64641 0.38586 0.64691 0.38562 0.64715 0.38537 0.64740 0.38488 0.64740 0.38414 0.64691 0.38365 0.64617 0.38340 0.64518 0.38340 0.64444 0.38365 0.64395 0.38414
- 11 226 10 0.64888 0.38956 0.64937 0.38907 0.64986 0.38833 0.65035 0.38734 0.65060 0.38611 0.65060 0.38513 0.65035 0.38390 0.64986 0.38291 0.64937 0.38217 0.64888 0.38168
11 50 2 0.61713 0.47867 0.61713 0.47454
11 226 10 0.61713 0.47867 0.61890 0.47867 0.61949 0.47848 0.61969 0.47828 0.61989 0.47789 0.61989 0.47749 0.61969 0.47710 0.61949 0.47690 0.61890 0.47670 0.61713 0.47670
11 50 2 0.61851 0.47670 0.61989 0.47454
diff --git a/bench/metafile_masters_64bit_rh6/multi_line_labels.plt b/bench/metafile_masters_64bit_rh6/multi_line_labels.plt
index 3d50588..9dc0c23 100644
--- a/bench/metafile_masters_64bit_rh6/multi_line_labels.plt
+++ b/bench/metafile_masters_64bit_rh6/multi_line_labels.plt
@@ -1,4 +1,4 @@
-GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
+GKSMansley at dunkel.pmel.nXPPLP Profile F 1.0 17/10/13 1 0 3 6 611 1 1
4 12 3 0
51 29 19 1 1.00000 0
56 39 2 1.00000 0.00000 0.00000
@@ -87,7 +87,7 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
11 2206 100 0.10969 0.35028 0.11776 0.35287 0.12583 0.35521 0.13390 0.35719 0.14197 0.35868 0.15004 0.35960 0.15811 0.35987 0.16618 0.35942 0.17425 0.35820 0.18232 0.35621 0.19039 0.35343 0.19846 0.34988 0.20653 0.34562 0.21460 0.34070 0.22267 0.33522 0.23074 0.32928 0.23880 0.32300 0.24687 0.31652 0.25494 0.30999 0.26301 0.30357 0.27108 0.29743 0.27915 [...]
21 6 1
25 6 1
- 11 732 33 0.10969 0.12797 0.10969 0.12797 0.10969 0.12797 0.09826 0.12797 0.10969 0.12797 0.10969 0.18287 0.09826 0.18287 0.10969 0.18287 0.10969 0.23776 0.09826 0.23776 0.10969 0.23776 0.10969 0.29266 0.09826 0.29266 0.10969 0.29266 0.10969 0.34755 0.09826 0.34755 0.10969 0.34755 0.10969 0.40245 0.09826 0.40245 0.10969 0.40245 0.10969 0.45734 0.09826 [...]
+ 11 732 33 0.10969 0.12797 0.10969 0.12797 0.09826 0.12797 0.10969 0.12797 0.10969 0.18287 0.09826 0.18287 0.10969 0.18287 0.10969 0.23776 0.09826 0.23776 0.10969 0.23776 0.10969 0.29266 0.09826 0.29266 0.10969 0.29266 0.10969 0.34755 0.09826 0.34755 0.10969 0.34755 0.10969 0.40245 0.09826 0.40245 0.10969 0.40245 0.10969 0.45734 0.09826 0.45734 0.10969 [...]
11 50 2 0.06007 0.12732 0.06790 0.12732
11 644 29 0.07313 0.13254 0.07182 0.13211 0.07139 0.13124 0.07139 0.13036 0.07182 0.12949 0.07269 0.12906 0.07443 0.12862 0.07574 0.12819 0.07661 0.12732 0.07704 0.12645 0.07704 0.12514 0.07661 0.12427 0.07617 0.12384 0.07487 0.12340 0.07313 0.12340 0.07182 0.12384 0.07139 0.12427 0.07095 0.12514 0.07095 0.12645 0.07139 0.12732 0.07226 0.12819 0.07356 [...]
11 380 17 0.08227 0.13254 0.08096 0.13211 0.08009 0.13080 0.07966 0.12862 0.07966 0.12732 0.08009 0.12514 0.08096 0.12384 0.08227 0.12340 0.08314 0.12340 0.08444 0.12384 0.08531 0.12514 0.08575 0.12732 0.08575 0.12862 0.08531 0.13080 0.08444 0.13211 0.08314 0.13254 0.08227 0.13254
@@ -106,9 +106,9 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
11 644 29 0.07313 0.57170 0.07182 0.57127 0.07139 0.57040 0.07139 0.56953 0.07182 0.56866 0.07269 0.56822 0.07443 0.56779 0.07574 0.56735 0.07661 0.56648 0.07704 0.56561 0.07704 0.56430 0.07661 0.56343 0.07617 0.56300 0.07487 0.56256 0.07313 0.56256 0.07182 0.56300 0.07139 0.56343 0.07095 0.56430 0.07095 0.56561 0.07139 0.56648 0.07226 0.56735 0.07356 [...]
11 380 17 0.08227 0.57170 0.08096 0.57127 0.08009 0.56996 0.07966 0.56779 0.07966 0.56648 0.08009 0.56430 0.08096 0.56300 0.08227 0.56256 0.08314 0.56256 0.08444 0.56300 0.08531 0.56430 0.08575 0.56648 0.08575 0.56779 0.08531 0.56996 0.08444 0.57127 0.08314 0.57170 0.08227 0.57170
11 116 5 0.08923 0.56343 0.08880 0.56300 0.08923 0.56256 0.08967 0.56300 0.08923 0.56343
- 11 732 33 0.90859 0.12797 0.90859 0.12797 0.90859 0.12797 0.92002 0.12797 0.90859 0.12797 0.90859 0.18287 0.92002 0.18287 0.90859 0.18287 0.90859 0.23776 0.92002 0.23776 0.90859 0.23776 0.90859 0.29266 0.92002 0.29266 0.90859 0.29266 0.90859 0.34755 0.92002 0.34755 0.90859 0.34755 0.90859 0.40245 0.92002 0.40245 0.90859 0.40245 0.90859 0.45734 0.92002 [...]
- 11 732 33 0.18232 0.62203 0.10969 0.62203 0.18232 0.62203 0.18232 0.63346 0.18232 0.62203 0.26301 0.62203 0.26301 0.63346 0.26301 0.62203 0.34371 0.62203 0.34371 0.63346 0.34371 0.62203 0.42441 0.62203 0.42441 0.63346 0.42441 0.62203 0.50511 0.62203 0.50511 0.63346 0.50511 0.62203 0.58580 0.62203 0.58580 0.63346 0.58580 0.62203 0.66650 0.62203 0.66650 [...]
- 11 732 33 0.18232 0.12797 0.10969 0.12797 0.18232 0.12797 0.18232 0.11654 0.18232 0.12797 0.26301 0.12797 0.26301 0.11654 0.26301 0.12797 0.34371 0.12797 0.34371 0.11654 0.34371 0.12797 0.42441 0.12797 0.42441 0.11654 0.42441 0.12797 0.50511 0.12797 0.50511 0.11654 0.50511 0.12797 0.58580 0.12797 0.58580 0.11654 0.58580 0.12797 0.66650 0.12797 0.66650 [...]
+ 11 732 33 0.90859 0.12797 0.90859 0.12797 0.92002 0.12797 0.90859 0.12797 0.90859 0.18287 0.92002 0.18287 0.90859 0.18287 0.90859 0.23776 0.92002 0.23776 0.90859 0.23776 0.90859 0.29266 0.92002 0.29266 0.90859 0.29266 0.90859 0.34755 0.92002 0.34755 0.90859 0.34755 0.90859 0.40245 0.92002 0.40245 0.90859 0.40245 0.90859 0.45734 0.92002 0.45734 0.90859 [...]
+ 11 732 33 0.18232 0.62203 0.18232 0.62203 0.18232 0.63346 0.18232 0.62203 0.26301 0.62203 0.26301 0.63346 0.26301 0.62203 0.34371 0.62203 0.34371 0.63346 0.34371 0.62203 0.42441 0.62203 0.42441 0.63346 0.42441 0.62203 0.50511 0.62203 0.50511 0.63346 0.50511 0.62203 0.58580 0.62203 0.58580 0.63346 0.58580 0.62203 0.66650 0.62203 0.66650 0.63346 0.66650 [...]
+ 11 732 33 0.18232 0.12797 0.18232 0.12797 0.18232 0.11654 0.18232 0.12797 0.26301 0.12797 0.26301 0.11654 0.26301 0.12797 0.34371 0.12797 0.34371 0.11654 0.34371 0.12797 0.42441 0.12797 0.42441 0.11654 0.42441 0.12797 0.50511 0.12797 0.50511 0.11654 0.50511 0.12797 0.58580 0.12797 0.58580 0.11654 0.58580 0.12797 0.66650 0.12797 0.66650 0.11654 0.66650 [...]
11 94 4 0.17622 0.10658 0.17709 0.10701 0.17840 0.10832 0.17840 0.09918
11 380 17 0.18623 0.10832 0.18493 0.10788 0.18406 0.10658 0.18362 0.10440 0.18362 0.10309 0.18406 0.10092 0.18493 0.09961 0.18623 0.09918 0.18710 0.09918 0.18841 0.09961 0.18928 0.10092 0.18972 0.10309 0.18972 0.10440 0.18928 0.10658 0.18841 0.10788 0.18710 0.10832 0.18623 0.10832
11 336 15 0.33718 0.10832 0.34197 0.10832 0.33936 0.10484 0.34066 0.10484 0.34153 0.10440 0.34197 0.10397 0.34241 0.10266 0.34241 0.10179 0.34197 0.10048 0.34110 0.09961 0.33979 0.09918 0.33849 0.09918 0.33718 0.09961 0.33675 0.10005 0.33631 0.10092
@@ -416,63 +416,6 @@ GKSMansley at flat.pmel.noaXPPLP Profile F 1.0 16/08/09 1 0 3 6 611 1 1
11 72 3 0.00914 0.04845 0.00914 0.04845 0.05713 0.04845
21 6 1
25 6 1
- 11 380 17 0.07160 0.08153 0.07125 0.08222 0.07021 0.08257 0.06917 0.08257 0.06812 0.08222 0.06777 0.08153 0.06812 0.08083 0.06882 0.08048 0.07056 0.08013 0.07125 0.07979 0.07160 0.07909 0.07160 0.07874 0.07125 0.07804 0.07021 0.07770 0.06917 0.07770 0.06812 0.07804 0.06777 0.07874
- 11 50 2 0.07404 0.08501 0.07404 0.07770
- 11 160 7 0.07404 0.08118 0.07508 0.08222 0.07578 0.08257 0.07683 0.08257 0.07752 0.08222 0.07787 0.08118 0.07787 0.07770
- 11 380 17 0.08205 0.08257 0.08135 0.08222 0.08066 0.08153 0.08031 0.08048 0.08031 0.07979 0.08066 0.07874 0.08135 0.07804 0.08205 0.07770 0.08309 0.07770 0.08379 0.07804 0.08449 0.07874 0.08484 0.07979 0.08484 0.08048 0.08449 0.08153 0.08379 0.08222 0.08309 0.08257 0.08205 0.08257
- 11 50 2 0.08727 0.08257 0.08727 0.07770
- 11 116 5 0.08727 0.08048 0.08762 0.08153 0.08832 0.08222 0.08901 0.08257 0.09006 0.08257
- 11 116 5 0.09215 0.08501 0.09215 0.07909 0.09250 0.07804 0.09319 0.07770 0.09389 0.07770
- 11 50 2 0.09110 0.08257 0.09354 0.08257
- 11 116 5 0.10190 0.08501 0.10190 0.07909 0.10225 0.07804 0.10294 0.07770 0.10364 0.07770
- 11 50 2 0.10085 0.08257 0.10329 0.08257
- 11 50 2 0.10538 0.08257 0.10677 0.07770
- 11 50 2 0.10817 0.08257 0.10677 0.07770
- 11 50 2 0.10817 0.08257 0.10956 0.07770
- 11 50 2 0.11095 0.08257 0.10956 0.07770
- 11 380 17 0.11478 0.08257 0.11409 0.08222 0.11339 0.08153 0.11304 0.08048 0.11304 0.07979 0.11339 0.07874 0.11409 0.07804 0.11478 0.07770 0.11583 0.07770 0.11652 0.07804 0.11722 0.07874 0.11757 0.07979 0.11757 0.08048 0.11722 0.08153 0.11652 0.08222 0.11583 0.08257 0.11478 0.08257
- 11 50 2 0.12001 0.08083 0.12627 0.08083
- 11 50 2 0.12906 0.08501 0.12906 0.07770
- 11 116 5 0.13150 0.08501 0.13184 0.08466 0.13219 0.08501 0.13184 0.08536 0.13150 0.08501
- 11 50 2 0.13184 0.08257 0.13184 0.07770
- 11 50 2 0.13463 0.08257 0.13463 0.07770
- 11 160 7 0.13463 0.08118 0.13568 0.08222 0.13637 0.08257 0.13742 0.08257 0.13811 0.08222 0.13846 0.08118 0.13846 0.07770
- 11 380 17 0.14090 0.08048 0.14508 0.08048 0.14508 0.08118 0.14473 0.08188 0.14438 0.08222 0.14368 0.08257 0.14264 0.08257 0.14194 0.08222 0.14125 0.08153 0.14090 0.08048 0.14090 0.07979 0.14125 0.07874 0.14194 0.07804 0.14264 0.07770 0.14368 0.07770 0.14438 0.07804 0.14508 0.07874
- 11 116 5 0.06847 0.07331 0.06847 0.06739 0.06882 0.06634 0.06951 0.06600 0.07021 0.06600
- 11 50 2 0.06742 0.07087 0.06986 0.07087
- 11 116 5 0.07195 0.07331 0.07230 0.07296 0.07265 0.07331 0.07230 0.07366 0.07195 0.07331
- 11 50 2 0.07230 0.07087 0.07230 0.06600
- 11 116 5 0.07543 0.07331 0.07543 0.06739 0.07578 0.06634 0.07648 0.06600 0.07717 0.06600
- 11 50 2 0.07439 0.07087 0.07683 0.07087
- 11 50 2 0.07926 0.07331 0.07926 0.06600
- 11 380 17 0.08170 0.06878 0.08588 0.06878 0.08588 0.06948 0.08553 0.07017 0.08518 0.07052 0.08449 0.07087 0.08344 0.07087 0.08275 0.07052 0.08205 0.06983 0.08170 0.06878 0.08170 0.06809 0.08205 0.06704 0.08275 0.06634 0.08344 0.06600 0.08449 0.06600 0.08518 0.06634 0.08588 0.06704
- 11 116 5 0.09598 0.07331 0.09528 0.07331 0.09459 0.07296 0.09424 0.07192 0.09424 0.06600
- 11 50 2 0.09319 0.07087 0.09563 0.07087
- 11 380 17 0.09946 0.07087 0.09876 0.07052 0.09807 0.06983 0.09772 0.06878 0.09772 0.06809 0.09807 0.06704 0.09876 0.06634 0.09946 0.06600 0.10050 0.06600 0.10120 0.06634 0.10190 0.06704 0.10225 0.06809 0.10225 0.06878 0.10190 0.06983 0.10120 0.07052 0.10050 0.07087 0.09946 0.07087
- 11 50 2 0.10468 0.07087 0.10468 0.06600
- 11 116 5 0.10468 0.06878 0.10503 0.06983 0.10573 0.07052 0.10642 0.07087 0.10747 0.07087
- 11 116 5 0.11513 0.07331 0.11513 0.06739 0.11548 0.06634 0.11617 0.06600 0.11687 0.06600
- 11 50 2 0.11409 0.07087 0.11652 0.07087
- 11 50 2 0.11896 0.07331 0.11896 0.06600
- 11 160 7 0.11896 0.06948 0.12001 0.07052 0.12070 0.07087 0.12175 0.07087 0.12244 0.07052 0.12279 0.06948 0.12279 0.06600
- 11 380 17 0.12523 0.06878 0.12941 0.06878 0.12941 0.06948 0.12906 0.07017 0.12871 0.07052 0.12801 0.07087 0.12697 0.07087 0.12627 0.07052 0.12558 0.06983 0.12523 0.06878 0.12523 0.06809 0.12558 0.06704 0.12627 0.06634 0.12697 0.06600 0.12801 0.06600 0.12871 0.06634 0.12941 0.06704
- 11 380 17 0.13881 0.07087 0.13811 0.07052 0.13742 0.06983 0.13707 0.06878 0.13707 0.06809 0.13742 0.06704 0.13811 0.06634 0.13881 0.06600 0.13985 0.06600 0.14055 0.06634 0.14125 0.06704 0.14159 0.06809 0.14159 0.06878 0.14125 0.06983 0.14055 0.07052 0.13985 0.07087 0.13881 0.07087
- 11 50 2 0.14334 0.07087 0.14543 0.06600
- 11 50 2 0.14751 0.07087 0.14543 0.06600
- 11 380 17 0.14926 0.06878 0.15343 0.06878 0.15343 0.06948 0.15309 0.07017 0.15274 0.07052 0.15204 0.07087 0.15100 0.07087 0.15030 0.07052 0.14960 0.06983 0.14926 0.06878 0.14926 0.06809 0.14960 0.06704 0.15030 0.06634 0.15100 0.06600 0.15204 0.06600 0.15274 0.06634 0.15343 0.06704
- 11 50 2 0.15587 0.07087 0.15587 0.06600
- 11 116 5 0.15587 0.06878 0.15622 0.06983 0.15692 0.07052 0.15761 0.07087 0.15866 0.07087
- 11 50 2 0.16040 0.07331 0.16040 0.06600
- 11 50 2 0.16701 0.07087 0.16701 0.06600
- 11 314 14 0.16701 0.06983 0.16632 0.07052 0.16562 0.07087 0.16458 0.07087 0.16388 0.07052 0.16318 0.06983 0.16284 0.06878 0.16284 0.06809 0.16318 0.06704 0.16388 0.06634 0.16458 0.06600 0.16562 0.06600 0.16632 0.06634 0.16701 0.06704
- 11 50 2 0.16910 0.07087 0.17119 0.06600
- 11 138 6 0.17328 0.07087 0.17119 0.06600 0.17050 0.06460 0.16980 0.06391 0.16910 0.06356 0.16876 0.06356
- 11 50 2 0.18094 0.07331 0.18094 0.06600
- 11 116 5 0.18338 0.07331 0.18373 0.07296 0.18408 0.07331 0.18373 0.07366 0.18338 0.07331
- 11 50 2 0.18373 0.07087 0.18373 0.06600
- 11 50 2 0.18652 0.07087 0.18652 0.06600
- 11 160 7 0.18652 0.06948 0.18756 0.07052 0.18826 0.07087 0.18930 0.07087 0.19000 0.07052 0.19035 0.06948 0.19035 0.06600
- 11 380 17 0.19278 0.06878 0.19696 0.06878 0.19696 0.06948 0.19661 0.07017 0.19627 0.07052 0.19557 0.07087 0.19452 0.07087 0.19383 0.07052 0.19313 0.06983 0.19278 0.06878 0.19278 0.06809 0.19313 0.06704 0.19383 0.06634 0.19452 0.06600 0.19557 0.06600 0.19627 0.06634 0.19696 0.06704
11 50 2 0.06812 0.05210 0.06812 0.04479
11 160 7 0.06812 0.04827 0.06917 0.04932 0.06986 0.04966 0.07091 0.04966 0.07160 0.04932 0.07195 0.04827 0.07195 0.04479
11 380 17 0.07439 0.04758 0.07857 0.04758 0.07857 0.04827 0.07822 0.04897 0.07787 0.04932 0.07717 0.04966 0.07613 0.04966 0.07543 0.04932 0.07474 0.04862 0.07439 0.04758 0.07439 0.04688 0.07474 0.04583 0.07543 0.04514 0.07613 0.04479 0.07717 0.04479 0.07787 0.04514 0.07857 0.04583
diff --git a/bench/run_all b/bench/run_all
index 3a07f09..32e69a5 100755
--- a/bench/run_all
+++ b/bench/run_all
@@ -129,7 +129,7 @@ echo " " > $ncdump_file
setenv FER_EXTERNAL_FUNCTIONS $efdir
# set up the binary unformatted stream test file as a machine-specific link
-set machine_stream = "stream10by5_{$machine}.unf"
+set machine_stream = "data/stream10by5_{$machine}.unf"
if ( ! -e $machine_stream ) then
echo File $machine_stream does not exist.
echo Benchmark bn420_stream will fail.
@@ -158,9 +158,9 @@ ln -s $machine_stream stream_data_link.unf
rm -f bn_test_stream.jnl
# most everything little-endian now
# if ($machine == "linux" || $machine == "alp" || $machine == "x86_64-linux" || $machine == "ia64-linux") then
- ln -s bn_test_stream_little.jnl bn_test_stream.jnl
+ ln -s v5jnls/bn_test_stream_little.jnl bn_test_stream.jnl
# else
-# ln -s bn_test_stream_big.jnl bn_test_stream.jnl
+# ln -s v5jnls/bn_test_stream_big.jnl bn_test_stream.jnl
# endif
#Set up for metafile/gif testing
@@ -187,7 +187,7 @@ echo "ncdump output will be in $ncdump_file, and appended to this log file " >>&
#set up a generic data environment
echo "***** Restricting Ferret paths to bench directory *****" >>&$log_file
-source bench_environment >>&$log_file
+source bench_environment.csh >>&$log_file
Fenv >>&$log_file
# put a record of this benchmark run into the benchmark log file
@@ -220,14 +220,7 @@ echo "Beginning at $now" >>&$log_file
cp $log_file $err_file
echo "Beginning at $now"
-# $fver <bn230_all.jnl >>&$log_file ! problem with missing lines in log
-# $fver <bn230_all_shell.jnl >>&$log_file ! mixes error lines erratically
-#($fver <bn230_all_shell.jnl >>$log_file) >>&$err_file
-#($fver <bn300_all_shell.jnl >>$log_file) >>&$err_file
-#($fver <bn301_all_shell.jnl >>$log_file) >>&$err_file
-#($fver <bn311_all_shell.jnl >>$log_file) >>&$err_file
-#($fver <{$bver}_all_shell.jnl >>$log_file) >>&$err_file
-(($fver -script bn_all_shell.jnl) >>$log_file) >>&$err_file
+($fver -script genjnls/bn_all_shell.jnl >>$log_file) >>&$err_file
# check status before continuing *kob* 4/98
if ($status) then
@@ -237,7 +230,7 @@ endif
# 5/05 *acm* run tests of externally-linked external functions
if ( $do_shared_obj == "y" ) then
- ($fver <bn_all_ef_shell.jnl >>$log_file) >>&$err_file
+ ($fver < genjnls/bn_all_ef_shell.jnl >>$log_file) >>&$err_file
endif
# Append the ncdump output file to the log file
@@ -250,18 +243,6 @@ echo "end of ncdump output" >>&$log_file
echo " " >>&$log_file
mv $ncdump_file $ncdump_log
-# Now, lets restart ferret and run the bug fix journal file
-# 3.4.98 - moved this to bn491_all *kob*
-#($fver <{$bver}_bug_fixes.jnl >>$log_file) >>&$err_file
-
-# *kob* 11/96 - test out batch ability of ferret
-#set hold_display = $DISPLAY
-#setenv DISPLAY ralf
-#echo "Display now set to "$DISPLAY >>&$log_file
-#($fver < bn430_batch.jnl >> $log_file) >>&$err_file
-#setenv DISPLAY $hold_display
-#echo "Display now set to "$DISPLAY >>&$log_file
-
echo "about to run test of .ferret script"
if (-e $HOME/.ferret) then
rm -f ./keep.ferret
@@ -270,7 +251,7 @@ if (-e $HOME/.ferret) then
endif
cp -f ferret_startup $HOME/.ferret
-($fver <bn_startupfile_shell.jnl >> $log_file) >>& $err_file
+($fver < genjnls/bn_startupfile_shell.jnl >> $log_file) >>& $err_file
rm -f $HOME/.ferret
if (-e keep.ferret) then
@@ -280,11 +261,11 @@ endif
set hold_display = $DISPLAY
unsetenv DISPLAY
echo "Display no longer set, about to run batch gif test"
-($fver -gif <bn_gif_shell.jnl >> $log_file) >>& $err_file
+($fver -gif < genjnls/bn_gif_shell.jnl >> $log_file) >>& $err_file
echo "Display still not set, about to run batch ps test"
-($fver -batch bnplot.ps <bn_ps_shell.jnl >> $log_file) >>& $err_file
+($fver -batch bnplot.ps < genjnls/bn_ps_shell.jnl >> $log_file) >>& $err_file
echo "Display still not set, about to run batch metafile test"
-($fver -batch bat.plt <bn_batch_metafile_shell.jnl >> $log_file) >>& $err_file
+($fver -batch bat.plt < genjnls/bn_batch_metafile_shell.jnl >> $log_file) >>& $err_file
setenv DISPLAY $hold_display
#echo "Display now set to "$DISPLAY >>&$log_file
diff --git a/bench/test_results/bn_axis_vs.gif b/bench/test_results/bn_axis_vs.gif
index 738fd06..e90f928 100644
Binary files a/bench/test_results/bn_axis_vs.gif and b/bench/test_results/bn_axis_vs.gif differ
diff --git a/bench/test_results/bn_contour_conset.gif b/bench/test_results/bn_contour_conset.gif
index 072f1c3..26e4215 100644
Binary files a/bench/test_results/bn_contour_conset.gif and b/bench/test_results/bn_contour_conset.gif differ
diff --git a/bench/test_results/bn_hovmuller_overlays.gif b/bench/test_results/bn_hovmuller_overlays.gif
index 83df73d..95d0cb7 100644
Binary files a/bench/test_results/bn_hovmuller_overlays.gif and b/bench/test_results/bn_hovmuller_overlays.gif differ
diff --git a/bench/test_results/bn_labels_on_taxis.gif b/bench/test_results/bn_labels_on_taxis.gif
index 57d8749..6dbed52 100644
Binary files a/bench/test_results/bn_labels_on_taxis.gif and b/bench/test_results/bn_labels_on_taxis.gif differ
diff --git a/bench/test_results/bn_ribbon_vlog.gif b/bench/test_results/bn_ribbon_vlog.gif
index 3a3f053..b5a1c82 100644
Binary files a/bench/test_results/bn_ribbon_vlog.gif and b/bench/test_results/bn_ribbon_vlog.gif differ
diff --git a/bench/test_results/bn_subspan_mod_strides.gif b/bench/test_results/bn_subspan_mod_strides.gif
index 4121fe6..ba3c949 100644
Binary files a/bench/test_results/bn_subspan_mod_strides.gif and b/bench/test_results/bn_subspan_mod_strides.gif differ
diff --git a/bench/test_results/bn_vs_const_value.gif b/bench/test_results/bn_vs_const_value.gif
index a22c027..4efb96e 100644
Binary files a/bench/test_results/bn_vs_const_value.gif and b/bench/test_results/bn_vs_const_value.gif differ
diff --git a/bench/test_results/bnplot_2.gif b/bench/test_results/bnplot_2.gif
index 1ad19de..4ad3162 100644
Binary files a/bench/test_results/bnplot_2.gif and b/bench/test_results/bnplot_2.gif differ
diff --git a/bench/test_results/bnplot_3.gif b/bench/test_results/bnplot_3.gif
index 0f19756..3dad471 100644
Binary files a/bench/test_results/bnplot_3.gif and b/bench/test_results/bnplot_3.gif differ
diff --git a/bench/test_results/err700_key.gif b/bench/test_results/err700_key.gif
index e003db8..cae182e 100644
Binary files a/bench/test_results/err700_key.gif and b/bench/test_results/err700_key.gif differ
diff --git a/bench/test_results/ferret_run_tests_err b/bench/test_results/ferret_run_tests_err
index 0ca77c4..ee2160b 100644
--- a/bench/test_results/ferret_run_tests_err
+++ b/bench/test_results/ferret_run_tests_err
@@ -1,5 +1,4 @@
*** Running ferret script: bn_syntax.jnl
- *** NOTE: /FILES is deprecated. Use /MEMBERS
*** NOTE: in GIF mode: ignoring SET MODE METAFILE
*** NOTE: in GIF mode: ignoring SET MODE METAFILE
*** NOTE: in GIF mode: ignoring SET MODE METAFILE
@@ -126,14 +125,14 @@ IF 0 THEN say ERROR ELIF 1 THEN say "CORRECT if you see this"
**ERROR: command syntax: Trash after ENDIF
IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
IF 0 THEN say ERROR ELSE say "CORRECT if you see this" ENDIF say trash
- *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.sub
+ *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v4jnls/bn_if.sub
**ERROR: invalid command: ELSE can only be used between IF and ENDIF
else
**ERROR: invalid command: ENDIF can only be used in an IF clause
endif
**ERROR: invalid command: ELIF can only be used between IF and ENDIF
elif
- *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./bn_if.jnl
+ *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v4jnls/bn_if.jnl
*** Running ferret script: bn_expressions.jnl
**ERROR: command syntax: IF I GT 3 THEN ( IF I LT 5 THEN I ELSE -9 ) ELSE .333
Cannot use multiple IFs in an expression
@@ -492,7 +491,7 @@ plot/xlimits=5:5 i
*** Running ferret script: bn_mc.jnl
**TMAP ERR: Attempt to access unsupported feature
Descriptor requests delta of 0, please use 1
- Data set: ./coads_clim_bad_delta.des
+ Data set: ./data/coads_clim_bad_delta.des
set data coads_clim_bad_delta.des
**TMAP ERR: error in line definition
A gap or overlap exists in time axis
@@ -623,8 +622,10 @@ Replacing definition of axis XAX
Replacing definition of axis XAX
*** NOTE: Axis has repeated values -- micro-adjusting ...
Replacing definition of axis XAX
-Replacing definition of axis XAX
-Replacing definition of axis XAX
+ **ERROR: improper grid or axis definition: unrepairable repeated axis coords
+define axis/from/x/name=xax {6,6}
+ **ERROR: improper grid or axis definition: unrepairable repeated axis coords
+define axis/from/x/name=xax/edges {6,6}
**ERROR: improper grid or axis definition: unrepairable repeated axis coords
define axis/from/x/name=xax/edges {6,6,6}
*** NOTE: Axis has repeated values -- micro-adjusting ...
@@ -974,12 +975,12 @@ Replacing definition of axis TAX
Replacing definition of grid G1
**TMAP ERR: syntax error in string
Unrecognized field type: DA2
- Data set: ./bn_delimited_read_date_time.dat
+ Data set: ./data/bn_delimited_read_date_time.dat
*** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
SET DATA/FORM=delimited/type="d, da2,date2" bn_delimited_read_date_time.dat
**TMAP ERR: syntax error in string
Unrecognized field type: DATE2
- Data set: ./bn_delimited_read_date_time.dat
+ Data set: ./data/bn_delimited_read_date_time.dat
*** NOTE: Valid types are: -,NUMERIC,TEXT,LATITUDE,LONGITUDE,DATE,EURODATE,TIME,DATIME,EDATIME
SET DATA/FORM=delimited/type="da,da, date2" bn_delimited_read_date_time.dat
**ERROR: command syntax: ,,:
@@ -1062,7 +1063,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: regarding ./data/test_axes.nc ...
*** NOTE: Climatological axes test_irreg, test_seas defined
LISTing to file longaxspace.dat
*** Running ferret script: bn542_bug_fixes.jnl
@@ -1082,7 +1083,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: regarding ./test_axes.nc ...
+ *** NOTE: regarding ./data/test_axes.nc ...
*** NOTE: Climatological axes test_irreg, test_seas defined
*** NOTE: Not deleted: TEST_IRREG
*** NOTE: Axis is in use by grid (G###)
@@ -1218,9 +1219,9 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: Coordinates missing on axis LONGITUDE at subscript -1423
+ *** NOTE: Coordinates missing on axis LONGITUDE at subscript 2
*** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates missing on axis LATITUDE at subscript -1423
+ *** NOTE: Coordinates missing on axis LATITUDE at subscript 2
*** NOTE: A dummy axis of subscripts will be used
*** NOTE: Axis has repeated values -- micro-adjusting TIME
**ERROR: illegal limits: "DUMMY" does not exist at T=01-JAN-1990 00:00
@@ -2072,7 +2073,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: /UNIT=MONTHS is ambiguous ... using 1/12 of 365.2425 days
-Replacing definition of axis TIME4
+Replacing definition of axis TIME5
*** NOTE: grid GSQ1 used by data set coads_climatology
*** NOTE: Redefinition may alter apparent contents of data set
PERMANENT data cleared from memory
@@ -2135,9 +2136,9 @@ ooooooooooooooooooooooooooooooooooooooooooo
ooooooooooooooooooooooooooooooooooooooooooo
*** Running ferret script: bn_modnbd.jnl
*** Running ferret script: bn_fifty_files.jnl
- *** NOTE: Coordinates missing on axis LONGITUDE at subscript -169
+ *** NOTE: Coordinates missing on axis LONGITUDE at subscript 2
*** NOTE: A dummy axis of subscripts will be used
- *** NOTE: Coordinates missing on axis LATITUDE at subscript -169
+ *** NOTE: Coordinates missing on axis LATITUDE at subscript 2
*** NOTE: A dummy axis of subscripts will be used
*** NOTE: Axis has repeated values -- micro-adjusting TIME
*** NOTE: Error in bounds "TAX_bnds" or bounds do not enclose point on axis TAX
@@ -2155,7 +2156,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
*** NOTE: Units on axis "ALTITUDE" are not recognized: Pa
*** NOTE: They will not be convertible:
- *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: regarding ./data/climatological_axes.cdf ...
*** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
*** NOTE: Coordinates out of order or missing on axis UNORDERED_AXIS at subscript 4
*** NOTE: A dummy axis of subscripts will be used
@@ -2943,20 +2944,12 @@ ooooooooooooooooooooooooooooooooooooooooooo
LISTing to file a.nc
LISTing to file a.nc
*** Running ferret script: bn_NaN_note.jnl
- *** NOTE: unrepairable repeated axis coords on axis j at subscript -126
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: unrepairable repeated axis coords on axis l at subscript -126
- *** NOTE: A dummy axis of subscripts will be used
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: broiled
- *** NOTE: unrepairable repeated axis coords on axis j at subscript -126
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: j
- *** NOTE: unrepairable repeated axis coords on axis l at subscript -126
- *** NOTE: A dummy axis of subscripts will be used
- *** NOTE: No missing_value or _FillValue attribute. Using NaN for variable: l
+ *** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis l
*** Running ferret script: bn671_bug_fixes.jnl
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3001,7 +2994,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
*** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
- *** NOTE: ./err672_vert_axislabel.jnl
+ *** NOTE: ./v6jnls/err672_vert_axislabel.jnl
*** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
*** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
PERMANENT data cleared from memory
@@ -3097,7 +3090,118 @@ Bailing out of external function "eofsvd_tfunc":
There are no spatial locations having complete time series.
**ERROR: error in external function
list eofsvd_tfunc(spacegap)
+Replacing definition of axis XAXIS
+
+Bailing out of external function "eof_stat":
+ Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+ **ERROR: error in external function
+list eof_stat(spacetime, 1.0)
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+load eofs
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v1, v1)
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v1, v2)
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v2, v1)
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v2, v2)
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+load tafs
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v1, v1)
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v1, v2)
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v2, v1)
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v2, v2)
*** Running ferret script: bn_eof_simple2.jnl
+
+Bailing out of external function "eof_stat":
+ Function EOF_STAT not available in this version of Ferret. Use EOFSVD_STAT
+ **ERROR: error in external function
+list eof_stat(spacetime, 1.0)
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+load eofs
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v1, v1)
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v1, v2)
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v2, v1)
+
+Bailing out of external function "eof_space":
+ Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
+ **ERROR: error in external function
+list dot_t(v2, v2)
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+load tafs
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v1, v1)
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v1, v2)
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v2, v1)
+
+Bailing out of external function "eof_tfunc":
+ Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
+ **ERROR: error in external function
+list dot_t(v2, v2)
*** Running ferret script: bn_interpolate_6d.jnl
*** Running ferret script: bn_regrid_6d.jnl
PERMANENT data cleared from memory
@@ -3202,12 +3306,8 @@ ooooooooooooooooooooooooooooooooooooooooooo
*** Running ferret script: bn_descr_4digit.jnl
*** Running ferret script: bn_axis_outtype.jnl
LISTing to file mytype.nc
- *** NOTE: unrepairable repeated axis coords on axis TIME at subscript -126
- *** NOTE: A dummy axis of subscripts will be used
LISTing to file mytype.nc
*** NOTE: Converting data type of missing_value NC_FLOAT to match output type of variable NC_DOUBLE
- *** NOTE: unrepairable repeated axis coords on axis TIME at subscript -126
- *** NOTE: A dummy axis of subscripts will be used
LISTing to file mytype.nc
LISTing to file mytype.nc
LISTing to file mytype.nc
@@ -3415,7 +3515,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: regarding ./climatological_axes.cdf ...
+ *** NOTE: regarding ./data/climatological_axes.cdf ...
*** NOTE: Climatological axes SEASONAL_REG, MONTH_REG, and MONTH_IRREG defined
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3716,9 +3816,9 @@ list f
LISTing to file bn_spawn_size12.dat
LISTing to file bn_spawn_size14.dat
*** Running ferret script: bn_polygon_log.jnl
- **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
+ **ERROR: value out of legal range: coordinates on log axis negative or too small : -0.850
poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
- **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
+ **ERROR: value out of legal range: coordinates on log axis negative or too small : -0.689E-02
poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
*** Running ferret script: bn694_bug_fixes.jnl
PERMANENT data cleared from memory
@@ -3971,7 +4071,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
ooooooooooooooooooooooooooooooooooooooooooo
**TMAP ERR: error in axis attributes
Calendar definitions on T and F axes must match
- Data file: ./ft_cal_one.nc
+ Data file: ./data/ft_cal_one.nc
SET DAT/FORM=CDF ft_cal_mixed.nc
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -4495,14 +4595,14 @@ Replacing definition of axis TAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: unrepairable repeated axis coords on axis xax at subscript 1
+ *** NOTE: unrepairable repeated axis coords on axis xax at subscript 2
*** NOTE: A dummy axis of subscripts will be used
- *** NOTE: unrepairable repeated axis coords on axis yax at subscript 1
+ *** NOTE: unrepairable repeated axis coords on axis yax at subscript 2
*** NOTE: A dummy axis of subscripts will be used
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
- *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./unclosed_if.sub
+ *** NOTE: Unclosed IF statement ... assuming ENDIF, in script ./v7jnls/unclosed_if.sub
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
@@ -5142,6 +5242,63 @@ ooooooooooooooooooooooooooooooooooooooooooo
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
ooooooooooooooooooooooooooooooooooooooooooo
+*** Running ferret script: bn722_bug_fixes.jnl
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ooooooooooooooooooooooooooooooooooooooooooo
+*** Running ferret script: bn_tseries_modulo.jnl
+*** Running ferret script: bn_huge_axis.jnl
+ LISTing to file a.nc
+*** Running ferret script: bn_save_as_global.jnl
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ **ERROR: invalid command: Multi-valued Global string attributes not implemented
+ Variable: multistring
+LIST/FORMAT=CDF/asglobal/append/file=a.nc multistring
+LIST/FORMAT=CDF/asglobal/append/file=a.nc multistring
+ LISTing to file a.nc
+ **ERROR: invalid command: Global attribute must be a 1D variable length < 100
+ Variable: SST
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/x=150/outtype=float/file=a.nc sst
+ LISTing to file a.nc
+ **ERROR: invalid command: Global attribute must be a 1D variable length < 100
+ Variable: SST
+LIST/FORMAT=CDF/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+LIST/FORMAT=CDF/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
*** Running ferret script: bn_gif.jnl
**ERROR: dimensions improperly specified: specified data is not a line
- its a 2D region: "plot/i=1:10/j=1:20/nolabel i+j"
diff --git a/bench/test_results/ferret_run_tests_log b/bench/test_results/ferret_run_tests_log
index 98b0ebe..c74099d 100644
--- a/bench/test_results/ferret_run_tests_log
+++ b/bench/test_results/ferret_run_tests_log
@@ -279,6 +279,10 @@ Benchmark scripts that will be run:
bn_transp_choose.jnl
bn_iin_regrid.jnl
bn721_bug_fixes.jnl
+ bn722_bug_fixes.jnl
+ bn_tseries_modulo.jnl
+ bn_huge_axis.jnl
+ bn_save_as_global.jnl
bn_gif.jnl
bn_ps.jnl
bn_all_ef.jnl
@@ -304,10 +308,10 @@ Benchmark scripts that will be run:
USE gtbc011
SHOW DATA/BRIEF
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
SHOW DATA
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3
@@ -320,7 +324,7 @@ SHOW DATA
SHOW DATA/VARIABLES
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -350,9 +354,9 @@ SHOW DATA/VARIABLES
time range: 15-MAR-1983 10:00 to 15-MAR-1983 12:00
-SHOW DATA/FILES
+SHOW DATA/MEMBERS
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3
@@ -365,7 +369,7 @@ SHOW DATA/FILES
SHOW DATA/FULL
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -402,23 +406,23 @@ USE gtbc011
USE gt4d011
SHOW DATA/BRIEF
currently SET data sets:
- 1> ./gtbc011.cdf
- 2> ./gt4d011.cdf (default)
+ 1> ./data/gtbc011.cdf
+ 2> ./data/gt4d011.cdf (default)
SHOW DATA/BRIEF gtbc011
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
! ... save and restore data set
SET DATA 1
SET DATA/SAVE
SHOW DATA/BRIEF
currently SET data sets:
- 1> ./gtbc011.cdf (default)
- 2> ./gt4d011.cdf
+ 1> ./data/gtbc011.cdf (default)
+ 2> ./data/gt4d011.cdf
SET DATA 2
SHOW DATA/BRIEF
currently SET data sets:
- 1> ./gtbc011.cdf
- 2> ./gt4d011.cdf (default)
+ 1> ./data/gtbc011.cdf
+ 2> ./data/gt4d011.cdf (default)
SET DATA/RESTORE
CANCEL DATA/ALL
! ... EZ data sets
@@ -1069,7 +1073,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1]
TIME: 15-MAR-1983 10:00
E: N/A
F: N/A
- DATA SET: ./gtbc011.cdf
+ DATA SET: ./data/gtbc011.cdf
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 0
@@ -1086,7 +1090,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u]
TIME: 15-MAR-1983 10:00
E: N/A
F: N/A
- DATA SET: ./gtbc011.cdf
+ DATA SET: ./data/gtbc011.cdf
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 0
@@ -1105,7 +1109,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=1,g=u[d=2]]
TIME: 17-AUG-1982 12:00
E: N/A
F: N/A
- DATA SET: ./gtbc011.cdf
+ DATA SET: ./data/gtbc011.cdf
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 1
@@ -1119,7 +1123,7 @@ stat/k=1/l=1/j=40/i=70/d=2 temp[d=gtbc011,g=u[d=gt4d011]]
TIME: 17-AUG-1982 12:00
E: N/A
F: N/A
- DATA SET: ./gtbc011.cdf
+ DATA SET: ./data/gtbc011.cdf
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 1
@@ -1761,7 +1765,7 @@ show var/d=clim_airt_lev
A[D=clim_airt_lev] = CLIM_AIRT_LEV-SPECIFIC
show data clim_airt_lev
currently SET data sets:
- 1> ./clim_airt_lev.cdf (default)
+ 1> ./data/clim_airt_lev.cdf (default)
name title I J K L
AIRT CLIMATOLOGICAL AIR TEMPERATURE 1:160 1:100 ... 1:12
------------------------------
@@ -1842,7 +1846,7 @@ set var/titl=test4 t4[d=snoopy.dat]
set var/titl=test3 t3[d=snoopy.dat]
show data
currently SET data sets:
- 1> ./clim_airt_lev.cdf
+ 1> ./data/clim_airt_lev.cdf
name title I J K L
AIRT CLIMATOLOGICAL AIR TEMPERATURE 1:160 1:100 ... 1:12
------------------------------
@@ -1855,7 +1859,7 @@ show data
show data/full 1
currently SET data sets:
- 1> ./clim_airt_lev.cdf
+ 1> ./data/clim_airt_lev.cdf
name title I J K L
AIRT CLIMATOLOGICAL AIR TEMPERATURE 1:160 1:100 ... 1:12
@@ -9694,7 +9698,7 @@ list a24[g=g48]-a48
FILE EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
V1 V1 1:5 ... ... ...
@@ -9715,7 +9719,7 @@ LIST V1
5 / 5: 0.4780
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
V1 V1 1:5 ... ... ...
@@ -9724,7 +9728,7 @@ SHOW DATA
FILE/VAR="X1,X2" EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:5 ... ... ...
@@ -9738,7 +9742,7 @@ SHOW DATA/FULL
/SKIP = 0
/COLUMNS = 2
LIST X1,X2
- DATA SET: ./EZ.DAT
+ DATA SET: ./data/EZ.DAT
X: 0.5 to 5.5
Column 1: X1
Column 2: X2
@@ -9750,7 +9754,7 @@ LIST X1,X2
5 / 5: 0.4780 0.5337
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:5 ... ... ...
X2 X2 1:5 ... ... ...
@@ -9760,7 +9764,7 @@ SHOW DATA
FILE/VAR="X1,X2"/COLUMNS=6 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:15 ... ... ...
@@ -9794,7 +9798,7 @@ LIST X1
15 / 15: 0.4690
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:15 ... ... ...
X2 X2 1:15 ... ... ...
@@ -9804,15 +9808,15 @@ SHOW DATA
FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
- X1 X1 1:15 ... ... ...
+ X1 X1 1:9 ... ... ...
on grid (G###) with -1.E+34 for missing data
- X=0.5:15.5
- X2 X2 1:15 ... ... ...
+ X=0.5:9.5
+ X2 X2 1:9 ... ... ...
on grid (G###) with -1.E+34 for missing data
- X=0.5:15.5
+ X=0.5:9.5
/FORMAT = FREE
/SKIP = 2
@@ -9832,7 +9836,7 @@ LIST X1
9 / 9: 0.4690
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:9 ... ... ...
X2 X2 1:9 ... ... ...
@@ -9842,15 +9846,15 @@ SHOW DATA
FILE/VAR="X1,-,X2"/COLUMNS=6/SKIP=2 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
- X1 X1 1:15 ... ... ...
+ X1 X1 1:9 ... ... ...
on grid (G###) with -1.E+34 for missing data
- X=0.5:15.5
- X2 X2 1:15 ... ... ...
+ X=0.5:9.5
+ X2 X2 1:9 ... ... ...
on grid (G###) with -1.E+34 for missing data
- X=0.5:15.5
+ X=0.5:9.5
/FORMAT = FREE
/SKIP = 2
@@ -9867,7 +9871,7 @@ LIST X1
6 / 6: 0.5147
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:6 ... ... ...
X2 X2 1:6 ... ... ...
@@ -9877,15 +9881,15 @@ SHOW DATA
FILE/VAR="X1,X2"/COLUMNS=6/SKIP=2/FORMAT=(3(F14.0,F7.0)) EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
- X1 X1 1:15 ... ... ...
+ X1 X1 1:9 ... ... ...
on grid (G###) with -1.E+34 for missing data
- X=0.5:15.5
- X2 X2 1:15 ... ... ...
+ X=0.5:9.5
+ X2 X2 1:9 ... ... ...
on grid (G###) with -1.E+34 for missing data
- X=0.5:15.5
+ X=0.5:9.5
/FORMAT = (3(F14.0,F7.0))
/SKIP = 2
@@ -9905,7 +9909,7 @@ LIST X1
9 / 9: 0.4690
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:9 ... ... ...
X2 X2 1:9 ... ... ...
@@ -9915,15 +9919,15 @@ SHOW DATA
FILE/VAR="X1,X2"/COLUMNS=6/SKIP=1/FORMAT="(3(F14.0,F7.0)/)" EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
- X1 X1 1:15 ... ... ...
+ X1 X1 1:12 ... ... ...
on grid (G###) with -1.E+34 for missing data
- X=0.5:15.5
- X2 X2 1:15 ... ... ...
+ X=0.5:12.5
+ X2 X2 1:12 ... ... ...
on grid (G###) with -1.E+34 for missing data
- X=0.5:15.5
+ X=0.5:12.5
/FORMAT = (3(F14.0,F7.0)/)
/SKIP = 1
@@ -9940,7 +9944,7 @@ LIST X1
6 / 6: 0.4700
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:6 ... ... ...
X2 X2 1:6 ... ... ...
@@ -9950,7 +9954,7 @@ SHOW DATA
SET VARIABLE/TITLE="first variable" X1
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 first variable 1:6 ... ... ...
X2 X2 1:6 ... ... ...
@@ -9962,7 +9966,7 @@ DEFINE GRID/X=XEZ1/Y=EZ GEZ1
FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ1 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:3 1:20480 ... ...
@@ -9988,7 +9992,7 @@ LIST X1
5 / 5: 0.4780 0.5150 0.4690
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:3 1:5 ... ...
X2 X2 1:3 1:5 ... ...
@@ -10002,7 +10006,7 @@ DEFINE GRID/X=XEZ2/Y=YEZ/Z=ZEZ/T=EZ GEZ2
FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ2 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:1 1:3 1:2 1:20480
@@ -10030,7 +10034,7 @@ LIST X1
2 / 2: 0.4350 0.4440 0.4700
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:1 1:3 1:2 1:2
X2 X2 1:1 1:3 1:2 1:2
@@ -10046,7 +10050,7 @@ DEFINE GRID/X=XEZ3 GEZ3
FILE/VAR="X1,X2"/COLUMNS=6/GRID=GEZ3 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:8 ... ... ...
@@ -10073,7 +10077,7 @@ LIST X1
8 / 8: 0.0000
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:8 ... ... ...
X2 X2 1:8 ... ... ...
@@ -10503,8 +10507,8 @@ show symbols/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 3.10.0-693.el7.x86_64 64-bit"
+FERRET_VERSION = "7.3"
+FERRET_PLATFORM = "Linux 3.10.0-693.5.2.el7.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
FERRET_MEMORY = "25.6"
@@ -10535,8 +10539,8 @@ show symbol/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 3.10.0-693.el7.x86_64 64-bit"
+FERRET_VERSION = "7.3"
+FERRET_PLATFORM = "Linux 3.10.0-693.5.2.el7.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
FERRET_MEMORY = "25.6"
@@ -10713,8 +10717,8 @@ show symbols/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 3.10.0-693.el7.x86_64 64-bit"
+FERRET_VERSION = "7.3"
+FERRET_PLATFORM = "Linux 3.10.0-693.5.2.el7.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
FERRET_MEMORY = "25.6"
@@ -12364,7 +12368,7 @@ LIST/FORMAT=comma/precision=9 randu(i)*temp*1e-7
! multiple variable test
set region/i=95:96/j=41:42/k=2/l=5
LIST/FORMAT=comma/precision=5 u,v
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
LONGITUDE: 135.5W to 133.5W
LATITUDE: 1.5S to 0.8S
DEPTH (m): 15
@@ -14579,7 +14583,7 @@ list/format=cdf/append/file=test_fil0.cdf/heading="enh" ijklave
set data/format=cdf test_fil0
show data/full
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -14767,7 +14771,7 @@ list/format=cdf/append/file=test_fil.cdf ijklave
set data/format=cdf test_fil
show data/full
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -14888,7 +14892,7 @@ set data reverse_axes
show data/var
currently SET data sets:
- 1> ./reverse_axes.cdf (default)
+ 1> ./data/reverse_axes.cdf (default)
name title I J K L
FCN_NORM COS(X/10)*SIN(Y/2) 1:51 1:21 ... ...
@@ -14905,7 +14909,7 @@ show data/var
list/x=180 fcn_norm,fcn_rev
WARNING: Listed variables have ambiguous coordinates on axes: Y
- DATA SET: ./reverse_axes.cdf
+ DATA SET: ./data/reverse_axes.cdf
LONGITUDE: 180E
Column 1: FCN_NORM is COS(X/10)*SIN(Y/2)
Column 2: FCN_REV is COS(X/10)*SIN(Y/2)
@@ -15095,7 +15099,7 @@ stat temp[g=u] - temp[g=u at ave,gx=u at lin,gy=u at lin,gz=u at lin,gt=u at lin] ! == 0
TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
E: N/A
F: N/A
- DATA SET: ./gtsa056_1.cdf
+ DATA SET: ./data/gtsa056_1.cdf
Total # of data points: 120 (6*5*2*2*1*1)
# flagged as bad data: 0
@@ -15124,7 +15128,7 @@ stat temp[g=u,gx=@ave] - temp[gx=@ave,g=u] ! == 0
TIME: 21-JAN-1982 00:00 to 24-JAN-1982 00:00
E: N/A
F: N/A
- DATA SET: ./gtsa056_1.cdf
+ DATA SET: ./data/gtsa056_1.cdf
Total # of data points: 120 (6*5*2*2*1*1)
# flagged as bad data: 0
@@ -19248,7 +19252,7 @@ cancel data stream_data_link.unf
! - 11/06/97 - added a set mode/last verify
CAN MODE VERIFY
currently SET data sets:
- 1> ./coads_clim.des (default)
+ 1> ./data/coads_clim.des (default)
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:6
@@ -19306,7 +19310,7 @@ CAN MODE VERIFY
TIME: 01-JAN-1900 00:45 to 02-JUL-1900 15:40
E: N/A
F: N/A
- DATA SET: ./coads_clim.des
+ DATA SET: ./data/coads_clim.des
Total # of data points: 97200 (180*90*1*6*1*1)
# flagged as bad data: 44263
@@ -19315,7 +19319,7 @@ CAN MODE VERIFY
Mean value: 17.806 (unweighted average)
Standard deviation: 9.6933
currently SET data sets:
- 1> ./coads_clim.des
+ 1> ./data/coads_clim.des
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:6
@@ -19324,7 +19328,7 @@ CAN MODE VERIFY
time range: 16-JAN-1900 06:00 to 17-JUN-1900 10:25
- 2> ./coads_clim_irreg.des (default)
+ 2> ./data/coads_clim_irreg.des (default)
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -19373,7 +19377,7 @@ CAN MODE VERIFY
TIME: 01-JAN-1900 00:45 to 02-JUL-1900 15:40
E: N/A
F: N/A
- DATA SET: ./coads_clim_irreg.des
+ DATA SET: ./data/coads_clim_irreg.des
Total # of data points: 48600 (180*90*1*3*1*1)
# flagged as bad data: 21459
@@ -19382,7 +19386,7 @@ CAN MODE VERIFY
Mean value: 17.359 (unweighted average)
Standard deviation: 9.8799
currently SET data sets:
- 1> ./coads_clim_missing_step1.des (default)
+ 1> ./data/coads_clim_missing_step1.des (default)
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -19392,7 +19396,7 @@ CAN MODE VERIFY
time range: 16-JAN-1900 06:00 to 17-MAY-1900 23:56
currently SET data sets:
- 1> ./coads_clim_missing_stepN.des (default)
+ 1> ./data/coads_clim_missing_stepN.des (default)
COAD
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -23385,7 +23389,7 @@ set mem /size=10
use weird_name1.cdf
sh data
currently SET data sets:
- 1> ./weird_name1.cdf (default)
+ 1> ./data/weird_name1.cdf (default)
name title I J K L
v1 lower case v1 1:20 ... ... ...
v2-and-minus
@@ -26516,7 +26520,7 @@ cancel memory/all
SHOW DATA
currently SET data sets:
- 1> ./bn_strides.cdf (default)
+ 1> ./data/bn_strides.cdf (default)
name title I J K L
VAR L*1000 + K*100 + J*10 + I 1:4 1:3 1:2 1:1
MIDVAR VAR 1:9 1:8 1:7 1:6
@@ -27337,7 +27341,7 @@ canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_10
-DELETE BIGVAR M: 5 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
dealloc dynamic grid (G###) (AX###) YUNEVEN ZAX1_6 TAX1_4
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
-DELETE UNE-NVAR M: 3 dset: 1 I: 1 10 J: 1 1 K: 1 1 L: 1 1
-DELETE UNE-NVAR M: 6 dset: 1 I: 1 9 J: 1 1 K: 1 1 L: 1 1
@@ -27430,7 +27434,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_10
-DELETE BIGVAR M: 3 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=zxy bn_strides
list bigvar[i=3:9:2]
@@ -27521,7 +27525,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_10
-DELETE BIGVAR M: 6 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! now with xytvar
cancel region
@@ -27622,7 +27626,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) NORMAL (AX###)
-DELETE XYTVAR M: 3 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=yx bn_strides
show grid xytvar
@@ -27720,7 +27724,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) NORMAL (AX###)
-DELETE XYTVAR M: 6 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=tyx bn_strides
show grid xytvar
@@ -27818,7 +27822,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) NORMAL (AX###)
-DELETE XYTVAR M: 3 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=txy bn_strides
show grid xytvar
@@ -27916,7 +27920,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) NORMAL (AX###)
-DELETE XYTVAR M: 6 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! map into Z instead of T
use/order=zxy bn_strides
@@ -28017,7 +28021,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) NORMAL
-DELETE XYTVAR M: 3 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! * * * * * MIXED STRIDES, PERMUTATIONS and REVERSALS * * * * *
@@ -28066,7 +28070,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_6
-DELETE MIDVAR M: 6 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=-yx bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28100,7 +28104,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_6
-DELETE MIDVAR M: 6 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=y-x bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28134,7 +28138,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_6
-DELETE MIDVAR M: 6 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! reference output
use/order=tyx bn_strides
@@ -28166,7 +28170,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) ZAX1_7
-DELETE MIDVAR M: 3 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
use/order=-t-y-x bn_strides
@@ -28201,7 +28205,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) ZAX1_7
-DELETE MIDVAR M: 3 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! reference output
use/order=txy bn_strides
@@ -28233,7 +28237,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) ZAX1_7
-DELETE MIDVAR M: 6 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=-t-x-y bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -28267,7 +28271,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) ZAX1_7
-DELETE MIDVAR M: 6 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
*** Running ferret script: bn_non_COARDS_netCDF.jnl
! bn_non_COARDS_netCDF.jnl
! *sh* 3/99
@@ -28279,7 +28283,7 @@ use non_COARDS
show data
currently SET data sets:
- 1> ./non_COARDS.cdf (default)
+ 1> ./data/non_COARDS.cdf (default)
name title I J K L
UNORDERED_AXIS
disordered axis 1:5 ... ... ...
@@ -28405,7 +28409,7 @@ show grid COADSY
show data
currently SET data sets:
- 1> ./non_COARDS.cdf (default)
+ 1> ./data/non_COARDS.cdf (default)
name title I J K L
UNORDERED_AXIS
disordered axis 1:5 ... ... ...
@@ -28509,7 +28513,7 @@ stat $1
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -28541,7 +28545,7 @@ stat $1
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -28573,7 +28577,7 @@ stat $1[gx=xtrop]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28613,7 +28617,7 @@ stat $1[gx=xtrop]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28649,7 +28653,7 @@ stat $1x
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28681,7 +28685,7 @@ stat $1x
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28711,7 +28715,7 @@ stat $1[g=gx]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28748,7 +28752,7 @@ stat $1[g=gx]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -28781,7 +28785,7 @@ stat $1[gx=xtrop,gy=ytrop]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -28822,7 +28826,7 @@ stat $1[gx=xtrop,gy=ytrop]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -28855,7 +28859,7 @@ stat $1[g=gxyt]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -28891,7 +28895,7 @@ stat $1[g=gxyt]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -28922,7 +28926,7 @@ stat $1xyt
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -28953,7 +28957,7 @@ stat $1xyt
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -28989,7 +28993,7 @@ stat $1xyt
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29020,7 +29024,7 @@ stat $1xyt
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29047,7 +29051,7 @@ stat $1[x=@ave]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29079,7 +29083,7 @@ stat $1[x=@ave]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29108,7 +29112,7 @@ stat $1xave
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29140,7 +29144,7 @@ stat $1xave
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29169,7 +29173,7 @@ stat $1[x=@sbx]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -29202,7 +29206,7 @@ stat $1[x=@sbx]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -29231,7 +29235,7 @@ stat $1sbx
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -29263,7 +29267,7 @@ stat $1sbx
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -29300,7 +29304,7 @@ stat $1
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -29332,7 +29336,7 @@ stat $1
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -29364,7 +29368,7 @@ stat $1[gx=xtrop]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29404,7 +29408,7 @@ stat $1[gx=xtrop]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29440,7 +29444,7 @@ stat $1x
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29472,7 +29476,7 @@ stat $1x
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29502,7 +29506,7 @@ stat $1[g=gx]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29539,7 +29543,7 @@ stat $1[g=gx]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 13590 (151*90*1*1*1*1)
# flagged as bad data: 4962
@@ -29567,7 +29571,7 @@ stat $1[gx=xtrop,gy=ytrop]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29599,7 +29603,7 @@ stat $1[gx=xtrop,gy=ytrop]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29628,7 +29632,7 @@ stat $1[g=gxyt]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29660,7 +29664,7 @@ stat $1[g=gxyt]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29687,7 +29691,7 @@ stat $1xyt
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29718,7 +29722,7 @@ stat $1xyt
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29767,7 +29771,7 @@ stat $1xyt
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29798,7 +29802,7 @@ stat $1xyt
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 6191 (151*41*1*1*1*1)
# flagged as bad data: 151
@@ -29828,7 +29832,7 @@ stat $1[x=@ave]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29860,7 +29864,7 @@ stat $1[x=@ave]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29889,7 +29893,7 @@ stat $1xave
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29921,7 +29925,7 @@ stat $1xave
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 90 (1*90*1*1*1*1)
# flagged as bad data: 12
@@ -29950,7 +29954,7 @@ stat $1[x=@sbx]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -29983,7 +29987,7 @@ stat $1[x=@sbx]
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -30012,7 +30016,7 @@ stat $1sbx
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -30044,7 +30048,7 @@ stat $1sbx
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 7173
@@ -30948,7 +30952,7 @@ list/l=1:4 sst
17-MAR / 3: 28.35
16-AUG / 4: ....
list/l=1:4 jsst, nsst
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
TIME: 01-JAN 00:00 to 16-APR 12:45 JULIAN
LONGITUDE: 179E
LATITUDE: 1S
@@ -34249,7 +34253,7 @@ let tsorted_indices = sorti( sst[i=61:66,y=39,z=0,l=2])
let tsorted_sst = samplei(sst, tsorted_indices)
list tsorted_indices, tsorted_sst
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
X: 0.5 to 6.5
TIME: 15-FEB 16:29
Column 1: TSORTED_INDICES[Y=39N] is SORTI( SST[I=61:66,Y=39,Z=0,L=2])
@@ -34341,7 +34345,7 @@ let tsorted_indices = sortj( sst[j=65:70,x=141,z=0,l=2])
let tsorted_sst = samplej(sst, tsorted_indices)
list tsorted_indices, tsorted_sst
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Y: 0.5 to 6.5
TIME: 15-FEB 16:29
Column 1: TSORTED_INDICES[X=141E] is SORTJ( SST[J=65:70,X=141,Z=0,L=2])
@@ -34516,7 +34520,7 @@ let tsorted_indices = sortl(sst)
let tsorted_sst = samplel(sst, tsorted_indices[x=141,y=39,z=0])
list tsorted_indices, tsorted_sst
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
T: 0.5 to 3.5
LONGITUDE: 141E
LATITUDE: 39N
@@ -34605,7 +34609,7 @@ list vwnd
let tsorted_indices = sortl(vwnd)
let tsorted_wnd = samplel(vwnd, tsorted_indices[i=90,j=65])
list tsorted_indices, tsorted_wnd
- DATA SET: ./coads_vwnd.cdf
+ DATA SET: ./data/coads_vwnd.cdf
T: 0.5 to 60.5
LONGITUDE: 161W
LATITUDE: 39N
@@ -34704,7 +34708,7 @@ stat tsorted_wnd
T: 0.5 to 60.5
E: N/A
F: N/A
- DATA SET: ./coads_vwnd.cdf
+ DATA SET: ./data/coads_vwnd.cdf
Total # of data points: 60 (1*1*1*60*1*1)
# flagged as bad data: 60
@@ -34783,7 +34787,6 @@ go bench_eof
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
! Test the bail-out from eof_space, eof_stat, eof_tfunc
set mode ignore
@@ -34840,7 +34843,7 @@ list/i=1:2 eoftime
15-FEB / 2: 0.088 1.411
17-MAR / 3: -1.266 -0.630
-
+! The functions need updating for double precision Ferret
exit/script
GO bn_reset
@@ -35366,7 +35369,7 @@ stat mapped
T: N/A
E: N/A
F: N/A
- DATA SET: ./tripolar_subset.nc
+ DATA SET: ./data/tripolar_subset.nc
Total # of data points: 451 (41*11*1*1*1*1)
# flagged as bad data: 79
@@ -35400,7 +35403,7 @@ list/L=15:20 tax_datestring(t[gt=temp],temp,"day")
05-DEC-1982 00 / 19:"05-DEC-1982"
11-DEC-1982 02 / 20:"11-DEC-1982"
list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: 07-NOV-1982 15:00 to 14-DEC-1982 03:00
Column 1: TAX_DAYFRAC(T[GT=TEMP],TEMP)
Column 2: EX#2 is TAX_DAYFRAC(T[GT=TEMP],TEMP)*24.
@@ -35412,7 +35415,7 @@ list/L=15:20 tax_dayfrac(t[gt=temp],temp), tax_dayfrac(t[gt=temp],temp)*24.
05-DEC-1982 00 / 19: 0.0000 0.00
11-DEC-1982 02 / 20: 0.0833 2.00
list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: 07-NOV-1982 15:00 to 14-DEC-1982 03:00
Column 1: TAX_DAY(T[GT=TEMP],TEMP)
Column 2: TAX_JDAY(T[GT=TEMP],TEMP)
@@ -35424,7 +35427,7 @@ list/L=15:20 tax_day(t[gt=temp],temp), tax_jday(t[gt=temp],temp)
05-DEC-1982 00 / 19: 5.00 339.0
11-DEC-1982 02 / 20: 11.00 345.0
list/L=15:20 tax_month(t[gt=temp],temp), tax_yearfrac(t[gt=temp],temp)
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: 07-NOV-1982 15:00 to 14-DEC-1982 03:00
Column 1: TAX_MONTH(T[GT=TEMP],TEMP)
Column 2: TAX_YEARFRAC(T[GT=TEMP],TEMP)
@@ -35485,7 +35488,7 @@ use coads_climatology
! SAMPLEXY will interpolate to geth the result,
! SAMPLEIJ requires an exact match.
list/l=1 samplexy(sst,{321,323.5,325}, {1,1,1}), sampleij(sst,{321,323,324.5}, {1,1,1})
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
X: 0.5 to 3.5
TIME: 16-JAN 06:00
Column 1: EX#1 is SAMPLEXY(SST,{321,323.5,325}, {1,1,1})
@@ -36886,7 +36889,7 @@ set mode logo
! test delimiited (spreadsheet) reads in Ferret
! look at the file
-spawn cat bn_delimited_read_1.dat
+spawn cat data/bn_delimited_read_1.dat
col1,col2,col3,col4,col5
one,,1.1,24S,130E,,1e1,"word 1"
two,,2.2,24N,130W,2S,,"word 2"
@@ -36900,7 +36903,7 @@ extra line
file/format=delim bn_delimited_read_1.dat
show data/var
currently SET data sets:
- 1> ./bn_delimited_read_1.dat (default)
+ 1> ./data/bn_delimited_read_1.dat (default)
name title I J K L
V1 V1 1:7 ... ... ...
@@ -36956,7 +36959,7 @@ show data/var
/DELIMITERS="\t,\,"
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 7.5
Column 1: V1
Column 2: V2
@@ -36980,7 +36983,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
! manually name the variables while still automatically analyzing data types
file/format=delim/var=a1,a2,a3,a4,a5,a6,a7 bn_delimited_read_1.dat
list a1,a2,a3,a4,a5,a6,a7
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 7.5
Column 1: A1 is a1
Column 2: A2 is a2
@@ -37002,7 +37005,7 @@ list a1,a2,a3,a4,a5,a6,a7
! note that v3 is correctly analyzed as numeric
file/format=delim/skip=1 bn_delimited_read_1.dat
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: V1
Column 2: V2 is V2 (all values missing)
@@ -37025,7 +37028,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
! insist that all columns be treated as string
file/format=delim/skip=1/type=text bn_delimited_read_1.dat
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: V1
Column 2: V2
@@ -37049,16 +37052,16 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
file/format=delim/skip=1/type=text/var=a1,a2,a3,a4,a5 bn_delimited_read_1.dat
show data
currently SET data sets:
- 1> ./bn_delimited_read_1.dat (default)
+ 1> ./data/bn_delimited_read_1.dat (default)
name title I J K L
- A1 a1 1:7 ... ... ...
- A2 a2 1:7 ... ... ...
- A3 a3 1:7 ... ... ...
- A4 a4 1:7 ... ... ...
- A5 a5 1:7 ... ... ...
+ A1 a1 1:6 ... ... ...
+ A2 a2 1:6 ... ... ...
+ A3 a3 1:6 ... ... ...
+ A4 a4 1:6 ... ... ...
+ A5 a5 1:6 ... ... ...
list a1,a2,a3,a4,a5
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: A1 is a1
Column 2: A2 is a2
@@ -37076,7 +37079,7 @@ list a1,a2,a3,a4,a5
! insist that all columns be treated as numeric
file/format=delim/skip=1/type=numeric bn_delimited_read_1.dat
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: V1
Column 2: V2
@@ -37099,7 +37102,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
! insist that all columns be treated as latitude
file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 0.5 to 6.5
Column 1: V1 is V1 (degrees_north)(Latitude)
Column 2: V2 is V2 (degrees_north)(Latitude)
@@ -37120,14 +37123,14 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
6 / 6: .... .... .... .... .... .... .... .... .... ....
! read only the first line of the file
-spawn head -1 bn_delimited_read_1.dat
+spawn head -1 data/bn_delimited_read_1.dat
col1,col2,col3,col4,col5
define axis/x=1:1:1 x1
define grid/x=x1 g1
columns/grid=g1 bn_delimited_read_1.dat
! note 10 columns because auto-analysis of file doesnt stop at 1st record
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 1
Column 1: V1
Column 2: V2
@@ -37143,7 +37146,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
I / *: "col1" "col2" "col3" "col4" "col5" " " .... " " " " ....
columns/grid=g1/var=c1,c2,c3,c4,c5 bn_delimited_read_1.dat
list c1,c2,c3,c4,c5
- DATA SET: ./bn_delimited_read_1.dat
+ DATA SET: ./data/bn_delimited_read_1.dat
X: 1
Column 1: C1 is c1
Column 2: C2 is c2
@@ -37163,14 +37166,14 @@ cancel data/all
file/form=delimited bn_delimited_read_2.dat
show data
currently SET data sets:
- 1> ./bn_delimited_read_2.dat (default)
+ 1> ./data/bn_delimited_read_2.dat (default)
name title I J K L
V1 V1 1:3 ... ... ...
file/form=delimited/delimiter=" " bn_delimited_read_2.dat
show data
currently SET data sets:
- 1> ./bn_delimited_read_2.dat (default)
+ 1> ./data/bn_delimited_read_2.dat (default)
name title I J K L
V1 V1 1:3 ... ... ...
(Julian days since 1-Jan-1900)
@@ -37180,7 +37183,7 @@ show data
(all values missing)
list v1,v2
- DATA SET: ./bn_delimited_read_2.dat
+ DATA SET: ./data/bn_delimited_read_2.dat
X: 0.5 to 3.5
Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
Column 2: V2 is V2 (hours)(Time of day)
@@ -37191,7 +37194,7 @@ list v1,v2
! ==========
! look at the date/time file
-spawn cat bn_delimited_read_date_time.dat
+spawn cat data/bn_delimited_read_date_time.dat
12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
@@ -37201,7 +37204,7 @@ spawn cat bn_delimited_read_date_time.dat
! Note that record 3 has syntax errors in the first 4 fields
columns bn_delimited_read_date_time.dat
list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37218,7 +37221,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
4 / 4: "12/4/99" "1999-03-04" "03:00" "16:45:36.5" 36496. 36221. 3.00 16.76
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
V2 V2 1:4 ... ... ...
@@ -37250,7 +37253,7 @@ T0 = 1-JAN-1900
columns/type=date bn_delimited_read_date_time.dat
list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
Column 2: V2 is V2 (days)(Julian days since 1-Jan-1900)
@@ -37267,7 +37270,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
4 / 4: 36496. 36221. .... .... 36496. 36221. .... ....
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
(Julian days since 1-Jan-1900)
@@ -37289,7 +37292,7 @@ show data 2
columns/type=time bn_delimited_read_date_time.dat
list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1 is V1 (hours)(Time of day)
Column 2: V2 is V2 (hours)(Time of day)
@@ -37306,7 +37309,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
4 / 4: .... .... 3.00 16.76 .... .... 3.00 16.76
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
(Time of day)
@@ -37328,7 +37331,7 @@ show data 2
columns/type="da,dat,ti,tim,date, date, time, time" bn_delimited_read_date_time.dat
list v1,v2,v3,v4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
Column 2: V2 is V2 (days)(Julian days since 1-Jan-1900)
@@ -37345,7 +37348,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8
4 / 4: 36496. 36221. 3.00 16.76 36496. 36221. 3.00 16.76
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
(Julian days since 1-Jan-1900)
@@ -37367,7 +37370,7 @@ show data 2
columns/type="da,-,ti,-,date,-,time,-" bn_delimited_read_date_time.dat
list v1,v3,v5,v7
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1 is V1 (days)(Julian days since 1-Jan-1900)
Column 2: V3 is V3 (hours)(Time of day)
@@ -37380,7 +37383,7 @@ list v1,v3,v5,v7
4 / 4: 36496. 3.00 36496. 3.00
show data 2
currently SET data sets:
- 2> ./bn_delimited_read_date_time.dat (default)
+ 2> ./data/bn_delimited_read_date_time.dat (default)
name title I J K L
V1 V1 1:4 ... ... ...
(Julian days since 1-Jan-1900)
@@ -37395,7 +37398,7 @@ show data 2
! delimiters can be used to break up individual fields
file/form=delim/delim="/" bn_delimited_read_date_time.dat
list V1,V2,V3,V4
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37407,7 +37410,7 @@ list V1,V2,V3,V4
3 / 3: 12.00 3.000 "99x,1999-03-03x,2:00x, 15:45x,12" 3.000
4 / 4: 12.00 4.000 "99,1999-03-04,03:00, 16:45:36.5, 12" 4.000
! ---
-sp cat bn_delimited_read_date_time.dat
+sp cat data/bn_delimited_read_date_time.dat
12/1/99,1999-03-01,12:00, 13:45:36.5,12/1/99,1999-03-01,12:00, 13:45:36.5
12/2/99,1999-03-02,01:00:13.5, 14:45:36.5,12/2/99,1999-03-02,01:00:13.5, 14:45:36.5
12/3/99x,1999-03-03x,2:00x, 15:45x,12/3/99,1999-03-03,2:00, 15:45
@@ -37415,7 +37418,7 @@ sp cat bn_delimited_read_date_time.dat
! ---
file/form=delim/delim="/,\," bn_delimited_read_date_time.dat
list V1,V2,V3,V4,v5,v6,v7,v8
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37432,7 +37435,7 @@ list V1,V2,V3,V4,v5,v6,v7,v8
4 / 4: 12.00 4.000 "99" "1999-03-04" "03:00" "16:45:36.5" 12.00 4.000
file/form=delim/delim="/,\,,-" bn_delimited_read_date_time.dat
list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37451,7 +37454,7 @@ list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
4 / 4: 12.00 4.000 "99" 1999. 3.000 "04" "03:00" "16:45:36.5" 12.00 4.000
file/form=delim/delim="/,\,,-,:" bn_delimited_read_date_time.dat
list V1,V2,V3,V4,v5,v6,v7,v8,v9,v10
- DATA SET: ./bn_delimited_read_date_time.dat
+ DATA SET: ./data/bn_delimited_read_date_time.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2
@@ -37474,377 +37477,377 @@ cancel data/all
columns/skip=1 bn_delimited_read_CO2.dat
show data/full
currently SET data sets:
- 1> ./bn_delimited_read_CO2.dat (default)
+ 1> ./data/bn_delimited_read_CO2.dat (default)
name title I J K L
- V1 V1 1:20 ... ... ...
+ V1 V1 1:19 ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V2 V2 1:20 ... ... ...
+ X=0.5:19.5
+ V2 V2 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V3 V3 1:20 ... ... ...
+ X=0.5:19.5
+ V3 V3 1:19 ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V4 V4 1:20 ... ... ...
+ X=0.5:19.5
+ V4 V4 1:19 ... ... ...
(Julian days since 1-Jan-1900)
Data type = NUMERIC
Conversion /TYPE=DATE
days on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V5 V5 1:20 ... ... ...
+ X=0.5:19.5
+ V5 V5 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V6 V6 1:20 ... ... ...
+ X=0.5:19.5
+ V6 V6 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V7 V7 1:20 ... ... ...
+ X=0.5:19.5
+ V7 V7 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V8 V8 1:20 ... ... ...
+ X=0.5:19.5
+ V8 V8 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V9 V9 1:20 ... ... ...
+ X=0.5:19.5
+ V9 V9 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V10 V10 1:20 ... ... ...
+ X=0.5:19.5
+ V10 V10 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V11 V11 1:20 ... ... ...
+ X=0.5:19.5
+ V11 V11 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V12 V12 1:20 ... ... ...
+ X=0.5:19.5
+ V12 V12 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V13 V13 1:20 ... ... ...
+ X=0.5:19.5
+ V13 V13 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V14 V14 1:20 ... ... ...
+ X=0.5:19.5
+ V14 V14 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V15 V15 1:20 ... ... ...
+ X=0.5:19.5
+ V15 V15 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V16 V16 1:20 ... ... ...
+ X=0.5:19.5
+ V16 V16 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V17 V17 1:20 ... ... ...
+ X=0.5:19.5
+ V17 V17 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V18 V18 1:20 ... ... ...
+ X=0.5:19.5
+ V18 V18 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V19 V19 1:20 ... ... ...
+ X=0.5:19.5
+ V19 V19 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V20 V20 1:20 ... ... ...
+ X=0.5:19.5
+ V20 V20 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V21 V21 1:20 ... ... ...
+ X=0.5:19.5
+ V21 V21 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V22 V22 1:20 ... ... ...
+ X=0.5:19.5
+ V22 V22 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V23 V23 1:20 ... ... ...
+ X=0.5:19.5
+ V23 V23 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V24 V24 1:20 ... ... ...
+ X=0.5:19.5
+ V24 V24 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V25 V25 1:20 ... ... ...
+ X=0.5:19.5
+ V25 V25 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V26 V26 1:20 ... ... ...
+ X=0.5:19.5
+ V26 V26 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V27 V27 1:20 ... ... ...
+ X=0.5:19.5
+ V27 V27 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V28 V28 1:20 ... ... ...
+ X=0.5:19.5
+ V28 V28 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V29 V29 1:20 ... ... ...
+ X=0.5:19.5
+ V29 V29 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V30 V30 1:20 ... ... ...
+ X=0.5:19.5
+ V30 V30 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V31 V31 1:20 ... ... ...
+ X=0.5:19.5
+ V31 V31 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V32 V32 1:20 ... ... ...
+ X=0.5:19.5
+ V32 V32 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V33 V33 1:20 ... ... ...
+ X=0.5:19.5
+ V33 V33 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V34 V34 1:20 ... ... ...
+ X=0.5:19.5
+ V34 V34 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V35 V35 1:20 ... ... ...
+ X=0.5:19.5
+ V35 V35 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V36 V36 1:20 ... ... ...
+ X=0.5:19.5
+ V36 V36 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V37 V37 1:20 ... ... ...
+ X=0.5:19.5
+ V37 V37 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V38 V38 1:20 ... ... ...
+ X=0.5:19.5
+ V38 V38 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V39 V39 1:20 ... ... ...
+ X=0.5:19.5
+ V39 V39 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V40 V40 1:20 ... ... ...
+ X=0.5:19.5
+ V40 V40 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V41 V41 1:20 ... ... ...
+ X=0.5:19.5
+ V41 V41 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V42 V42 1:20 ... ... ...
+ X=0.5:19.5
+ V42 V42 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V43 V43 1:20 ... ... ...
+ X=0.5:19.5
+ V43 V43 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V44 V44 1:20 ... ... ...
+ X=0.5:19.5
+ V44 V44 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V45 V45 1:20 ... ... ...
+ X=0.5:19.5
+ V45 V45 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V46 V46 1:20 ... ... ...
+ X=0.5:19.5
+ V46 V46 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V47 V47 1:20 ... ... ...
+ X=0.5:19.5
+ V47 V47 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V48 V48 1:20 ... ... ...
+ X=0.5:19.5
+ V48 V48 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V49 V49 1:20 ... ... ...
+ X=0.5:19.5
+ V49 V49 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V50 V50 1:20 ... ... ...
+ X=0.5:19.5
+ V50 V50 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V51 V51 1:20 ... ... ...
+ X=0.5:19.5
+ V51 V51 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V52 V52 1:20 ... ... ...
+ X=0.5:19.5
+ V52 V52 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V53 V53 1:20 ... ... ...
+ X=0.5:19.5
+ V53 V53 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V54 V54 1:20 ... ... ...
+ X=0.5:19.5
+ V54 V54 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V55 V55 1:20 ... ... ...
+ X=0.5:19.5
+ V55 V55 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V56 V56 1:20 ... ... ...
+ X=0.5:19.5
+ V56 V56 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V57 V57 1:20 ... ... ...
+ X=0.5:19.5
+ V57 V57 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V58 V58 1:20 ... ... ...
+ X=0.5:19.5
+ V58 V58 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V59 V59 1:20 ... ... ...
+ X=0.5:19.5
+ V59 V59 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V60 V60 1:20 ... ... ...
+ X=0.5:19.5
+ V60 V60 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V61 V61 1:20 ... ... ...
+ X=0.5:19.5
+ V61 V61 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V62 V62 1:20 ... ... ...
+ X=0.5:19.5
+ V62 V62 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V63 V63 1:20 ... ... ...
+ X=0.5:19.5
+ V63 V63 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V64 V64 1:20 ... ... ...
+ X=0.5:19.5
+ V64 V64 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V65 V65 1:20 ... ... ...
+ X=0.5:19.5
+ V65 V65 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V66 V66 1:20 ... ... ...
+ X=0.5:19.5
+ V66 V66 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V67 V67 1:20 ... ... ...
+ X=0.5:19.5
+ V67 V67 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V68 V68 1:20 ... ... ...
+ X=0.5:19.5
+ V68 V68 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V69 V69 1:20 ... ... ...
+ X=0.5:19.5
+ V69 V69 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V70 V70 1:20 ... ... ...
+ X=0.5:19.5
+ V70 V70 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V71 V71 1:20 ... ... ...
+ X=0.5:19.5
+ V71 V71 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
- V72 V72 1:20 ... ... ...
+ X=0.5:19.5
+ V72 V72 1:19 ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
on grid (G###) with -1.E+34 for missing data
- X=0.5:20.5
+ X=0.5:19.5
/DELIMITERS="\t,\,"
/FORMAT = DELIMITED
/SKIP = 1
/COLUMNS = 72
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26
- DATA SET: ./bn_delimited_read_CO2.dat
+ DATA SET: ./data/bn_delimited_read_CO2.dat
X: 0.5 to 19.5
Column 1: V1
Column 2: V2
@@ -37893,7 +37896,7 @@ list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,
18 / 18: "I8SI9S" 4.000 "B" 34671. 94.99 -30.30 1945. 999. 4.96 34.41 0.000 19.00 0.0000 1.000 1008. 186.9 0.0000 30.28 0.000 0.0000 0.000 36.39 0.000 2.153 0.000 0.429
19 / 19: "I8SI9S" 4.000 "B" 34671. 94.99 -30.30 1945. 1098. 4.31 34.44 0.000 18.00 0.0000 1.000 1109. 171.8 0.0000 32.20 0.000 0.0000 0.000 50.45 0.000 2.297 0.000 0.198
list/i=8:14 v11,v19,v21,v23,v25
- DATA SET: ./bn_delimited_read_CO2.dat
+ DATA SET: ./data/bn_delimited_read_CO2.dat
X: 7.5 to 14.5
Column 1: V11
Column 2: V19
@@ -37910,7 +37913,7 @@ list/i=8:14 v11,v19,v21,v23,v25
14 / 14: 0.000 0.000 0.000 0.000 0.000
(set variable/bad=9 v11; set variable/bad=9 v19;set variable/bad=9 v21;set variable/bad=9 v23;set variable/bad=9 v25)
list/i=8:14 v11,v19,v21,v23,v25
- DATA SET: ./bn_delimited_read_CO2.dat
+ DATA SET: ./data/bn_delimited_read_CO2.dat
X: 7.5 to 14.5
Column 1: V11
Column 2: V19
@@ -40842,10 +40845,10 @@ set mode labels
! Modulo attribute can take numerical values to indicate
! the modulo length of axis (subspan modulo changes)
! This script tests various string values of the attribute
-
+! *acm* list the axis names, otherwise get random TIME* axes defined right now
use modulo_lon_time
-sh ax lon*
+sh ax lon_true, lon_moderr, lon_false, lon_mod_nounits, lon_usual
name axis # pts start end
LON_TRUE LONGITUDE 5mr 1.875W(-1.875) 13.125E
Axis span (to cell edges) = 18.75 (modulo length = 360)
@@ -40857,7 +40860,7 @@ sh ax lon*
Axis span (to cell edges) = 18.75 (modulo length = axis span)
LON_USUAL LONGITUDE 5mr 0E 15E
Axis span (to cell edges) = 18.75 (modulo length = 360)
-sh ax tim*
+sh ax time_true, time_moderr, time_false, time_mod_nounits, time_usual
name axis # pts start end
TIME_TRUE T (days) 4mi 30 150
T0 = %%
@@ -40874,7 +40877,6 @@ T0 = %%
TIME_USUAL T (days) 4mr 120 150
T0 = %%
Axis span (to cell edges) = 40 (modulo length = axis span)
-
*** Running ferret script: bn550_bug_fixes.jnl
! bn550_bug_fixes.jnl
! test various fixes that went into version 5.5
@@ -41116,7 +41118,7 @@ GO err550_nc_seconds.jnl
use time_axis_seconds.nc
sp echo "err550_nc_seconds.jnl --- seconds of time axis" >> all_ncdump.out
-sp ncdump time_axis_seconds.nc | grep origin >> all_ncdump.out
+sp ncdump data/time_axis_seconds.nc | grep origin >> all_ncdump.out
list t[gt=height] ! Seconds should be 36, 37, 38...
VARIABLE : T
axis TIME
@@ -41332,7 +41334,7 @@ GO err551_invalid_calendar.jnl
set data err_calendar.nc
sh data
currently SET data sets:
- 1> ./err_calendar.nc (default)
+ 1> ./data/err_calendar.nc (default)
name title I J K L
TIME observation time ... ... ... 1:12
(invalid coordinate axis)
@@ -42040,7 +42042,6 @@ ppl list shakey
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
! dataset with 4 dimensions; compute EOF at each vertical level.
use gt4d011.cdf
@@ -42238,7 +42239,7 @@ list/nohead/i=1:5/j=3/k=9 eofst
4 / 4: 0.002
5 / 5: 0.000
-
+! The functions need updating for double precision Ferret
exit/script
*** Running ferret script: bn_abstract_axis_names.jnl
! bn_abstract_axis_names.jnl
@@ -42490,7 +42491,7 @@ USE levitus_climatology.cdf
SHO DATA/XML
<datasets>
-<dataset name="./levitus_climatology.cdf" default="true">
+<dataset name="./data/levitus_climatology.cdf" default="true">
<title> </title>
<var name="TEMP" />
</dataset>
@@ -44143,7 +44144,7 @@ can mem/all
can data/all
dealloc dynamic grid (G###) (AX###) (AX###) NORMAL (AX###)
dealloc dynamic grid (G###) (AX###) (AX###) NORMAL (AX###)
- canceling dset ./gtsa056_2.cdf
+ canceling dset ./data/gtsa056_2.cdf
! Some tests taken from bn_strides_revs_perms.jnl but with
! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44172,7 +44173,7 @@ define grid/like=xytvar egrid
allocate dynamic grid GPC5 XLON YLAT NORMAL TTIME
canc data/all
dealloc dynamic grid GPC5 XLON YLAT NORMAL TTIME
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! cache hit from full region cache -- bypass use of strides
@@ -44465,7 +44466,7 @@ canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_10
-DELETE BIGVAR M: 24 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
dealloc dynamic grid (G###) (AX###) YAX1_30 ZAX1_20 TAX1_10
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=zyx bn_strides
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
@@ -44498,7 +44499,7 @@ list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_10
-DELETE BIGVAR M: 23 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! now with xytvar
cancel region
@@ -44574,7 +44575,7 @@ list xytvar[i=1:7:2,j=2:6:2,l=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) NORMAL (AX###)
-DELETE XYTVAR M: 23 dset: 1 I: 1 4 J: 1 3 K: -999 -999 L: 1 2
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! map into Z instead of T
use/order=zxy bn_strides
@@ -44618,7 +44619,7 @@ list xytvar[i=1:7:2,j=2:6:2,k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) NORMAL
-DELETE XYTVAR M: 24 dset: 1 I: 1 4 J: 1 3 K: 1 2 L: -999 -999
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
cancel region; set region/l=1
@@ -44653,7 +44654,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_6
-DELETE MIDVAR M: 23 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=-yx bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -44687,7 +44688,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) TAX1_6
-DELETE MIDVAR M: 23 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! reference output
use/order=tyx bn_strides
@@ -44719,7 +44720,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) ZAX1_7
-DELETE MIDVAR M: 24 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! note the reversal on axes 1,2 and 3 (X,Y,Z in memory -- NOT T)
use/order=-t-y-x bn_strides
@@ -44754,7 +44755,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) ZAX1_7
-DELETE MIDVAR M: 24 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! reference output
use/order=txy bn_strides
@@ -44786,7 +44787,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) ZAX1_7
-DELETE MIDVAR M: 23 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
use/order=-t-x-y bn_strides
list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
@@ -44820,7 +44821,7 @@ list midvar[i=1:5:4, j=2:5:3, k=3:5:2]
canc data/all
dealloc dynamic grid (G###) (AX###) (AX###) (AX###) ZAX1_7
-DELETE MIDVAR M: 23 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1
- canceling dset ./bn_strides.cdf
+ canceling dset ./data/bn_strides.cdf
! DEFINE AXIS can get the axis too long (bug 673)
GO bn_reset
@@ -45383,7 +45384,7 @@ can mode ignore
use coads_climatology
list/x=181/y=1/form=(f6.2, 3f10.4) sst, t[gt=sst], tboxlo[gt=sst], tboxhi[gt=sst]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
TIME: 01-JAN 00:45 to 01-APR 08:12
LONGITUDE: 179W
LATITUDE: 1N
@@ -45519,7 +45520,7 @@ can data/all
use gappy_bounds.nc
list/prec=7 a, t[gt=a], tboxlo[gt=a], tboxhi[gt=a]
- DATA SET: ./gappy_bounds.nc
+ DATA SET: ./data/gappy_bounds.nc
TIME: 01-JAN-1990 12:00 to 10-JAN-1990 12:00
Column 1: A is SST[X=150:180 at AVE,Y=-10:0 at AVE]
Column 2: T is T (axis TGAP)
@@ -46944,7 +46945,7 @@ GO err570_sh_dat_nan.jnl
use nan_missing.nc
show data/full
currently SET data sets:
- 1> ./nan_missing.nc (default)
+ 1> ./data/nan_missing.nc (default)
NCEP Ocean Analysis
name title I J K L
TEMP temperature 1:1 1:1 1:19 1:1
@@ -47548,7 +47549,7 @@ list/x=180/y=0 sst
use illeg_axname.nc
sh data
currently SET data sets:
- 1> ./illeg_axname.nc (default)
+ 1> ./data/illeg_axname.nc (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:21 1:16 ... ...
NEW.LONGITUDES
@@ -47912,7 +47913,7 @@ GO err580_use_des.jnl
use vary_scale.des
sh data
currently SET data sets:
- 1> ./vary_scale.des (default)
+ 1> ./data/vary_scale.des (default)
name title I J K L
TT 1 + 0*T[GT=DAYT] ... ... ... 1:20
@@ -47929,7 +47930,7 @@ GO err580_use_des.jnl
use vary_scale.des
sh data
currently SET data sets:
- 1> ./vary_scale.des (default)
+ 1> ./data/vary_scale.des (default)
name title I J K L
TT 1 + 0*T[GT=DAYT] ... ... ... 1:20
@@ -48480,7 +48481,7 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "7.21"
+FERRET_VERSION = "7.3"
! history attribute
let a = 12
@@ -48498,7 +48499,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET version7.21:
+ Commands in Program FERRET version7.3:
SET
SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE
SET REGION/I/J/K/L/M/N/X/Y/Z/T/E/F/DX/DY/DZ/DT/DE/DF/DI/DJ/DK/DL/DM/DN
@@ -48507,7 +48508,7 @@ sho command
SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
- /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+ /TYPE/SWAP/REGULART/DELIMITE/STRICT
SET MODE/LAST
SET MOVI/FILE/COMPRESS/LASER/START
SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
@@ -48569,7 +48570,7 @@ sho command
/MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
/CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
- /OUTTYPE/CURVILIN/LAYERZ
+ /OUTTYPE/CURVILIN/LAYERZ/ASGLOBAL
PLOT/I/J/K/L/M/N/X/Y/Z/T/E/F/ALONG/OVERLAY/SET_UP/FRAME/DATASET/TRANPOSE
/VS/SYMBOL/NOLABEL/LINE/COLOR/THICKNES/XLIMITS/YLIMITS/TITLE/SIZE
/NOAXES/STEP/DASH/AXES/HGRATICU/VGRATICU/HLIMITS/VLIMITS/HLOG/VLOG
@@ -48974,7 +48975,7 @@ let zh2 = boxhi[k=2:`n`:2]
list zl2,(zl2+zh2)/2,zh2
WARNING: Listed variables have ambiguous coordinates on axes: Z
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Column 1: ZL2[Z=0:3174] is BOXLO[K=1:26:2]
Column 2: EX#2 is (ZL2+ZH2)/2
Column 3: ZH2[Z=0:4149] is BOXHI[K=2:27:2]
@@ -48996,7 +48997,7 @@ def axis/z/bounds zax2 = (zl2+zh2)/2, zl2, zh2
! original axis
list zboxlo[gz=temp], z[gz=temp], zboxhi[gz=temp]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
DEPTH (m): 0 to 4149
Column 1: ZBOXLO is ZBOXLO (axis PSZT)
Column 2: Z is Z (axis PSZT)
@@ -49070,7 +49071,7 @@ can var/all
use ocean_atlas_temp
sho att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -49078,10 +49079,10 @@ sho att/all temp
TEMP.units = Deg C
show attribute temp.units
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.units = Deg C
show attribute temp.missing_value
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
! specifying data set
@@ -49090,7 +49091,7 @@ use gt4d011
use levitus_climatology
sh att/all temp[d=2]
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
TEMP.parent_grid = PS3DT2
TEMP.slab_min_index = 91, 35, 1, 0
TEMP.slab_max_index = 108, 56, 10, 0
@@ -49100,17 +49101,17 @@ sh att/all temp[d=2]
TEMP.history = From gt4d011
TEMP.units = deg. C
sh att temp.units[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.units = Deg C
! global attributes
use err491_attval
show att ..remark
- attributes for dataset: ./err491_attval.cdf
+ attributes for dataset: ./data/err491_attval.cdf
.remark = Generated by oar3d
show att/all .
- attributes for dataset: ./err491_attval.cdf
+ attributes for dataset: ./data/err491_attval.cdf
..simulation = K-Bay OAR3d model (200m)
..start_date = 980105000000
..history = a
@@ -49145,7 +49146,7 @@ show att/all .
..node_offset = 0
sho att/all .[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
..history = FERRET V4.90 (GUI) 04-Feb-98
! Now SHOW DATA/ATT
@@ -49154,7 +49155,7 @@ can data/all
use ocean_atlas_temp
sho data/att
currently SET data sets:
- 1> ./ocean_atlas_temp.cdf (default)
+ 1> ./data/ocean_atlas_temp.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -49194,7 +49195,7 @@ use levitus_climatology
sh data/att gt4d011
currently SET data sets:
- 2> ./gt4d011.cdf
+ 2> ./data/gt4d011.cdf
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -49443,7 +49444,7 @@ use gt4d011
! string length for string attributes
show att/all temp
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
TEMP.parent_grid = PS3DT2
TEMP.slab_min_index = 91, 35, 1, 0
TEMP.slab_max_index = 108, 56, 10, 0
@@ -49563,7 +49564,7 @@ let nv = ..nvars
let nd = ..ndims
let vnames = ..varnames
list/d=1 nv, nd
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
@@ -49794,7 +49795,7 @@ can var/all
use test0.nc
sh data/att
currently SET data sets:
- 1> ./test0.nc (default)
+ 1> ./data/test0.nc (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -49929,7 +49930,7 @@ list/d=2 ..nvars
sh data
currently SET data sets:
- 1> ./gt4d011.cdf
+ 1> ./data/gt4d011.cdf
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -49940,7 +49941,7 @@ sh data
TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25
PSI STREAM FUNCTION 91:108 35:56 ... 1:25
- 2> ./coads_climatology.cdf (default)
+ 2> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -50049,7 +50050,7 @@ def att/type=float temp.floatval = 22
def att temp.pp = {1.5, 1.9}
def att temp.some_text = "some text about the TEMP variable"
sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -50066,7 +50067,7 @@ sh att/all temp
def att temp.pp = {1.5, 1.9, 3.45, 7}
def att temp.some_text = "some different text"
sh att temp.pp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.pp = 1.5, 1.9, 3.45, 7
let var = temp.some_text
list/nohead var
@@ -50077,7 +50078,7 @@ list/nohead var
use gt4d011
def att/D=1 temp.morenew = 2
sh att/all temp[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -50098,7 +50099,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
use ocean_atlas_temp
sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -50131,7 +50132,7 @@ list (coadsx).modulo
FILENAME : coads_climatology.cdf
" "
sho att/all (coadsx)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(COADSX).units = degrees_east
(COADSX).modulo =
(COADSX).point_spacing = even
@@ -50173,7 +50174,7 @@ can data gt4d011
set data coads_climatology
sho att (coadsx).modulo
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(COADSX).modulo =
set att (coadsx).modulo=360
@@ -50265,7 +50266,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
use gt4d011
sh att/all salt
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
SALT.parent_grid = PS3DT2
SALT.slab_min_index = 91, 35, 1, 0
SALT.slab_max_index = 108, 55, 10, 0
@@ -50277,7 +50278,7 @@ sh att/all salt
set att/like=temp salt
sh att/all salt
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
SALT.missing_value = 0.01
SALT._FillValue = 0.01
SALT.parent_grid = PS3DT2
@@ -50345,7 +50346,7 @@ def att/type=float temp.floatval = 22
def att temp.pp = {1.5, 1.9}
def att temp.some_text = "some text about the TEMP variable"
sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -50361,7 +50362,7 @@ sh att/all temp
set att temp.pp = {1.5, 1.9, 3.45, 7}
set att temp.some_text = "some different text"
sh att temp.pp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.pp = 1.5, 1.9, 3.45, 7
let var = temp.some_text
list/nohead var
@@ -50389,7 +50390,7 @@ list pq
use gt4d011
def att/d=1 temp.morenew = 33
sho att/all temp[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -50431,7 +50432,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
use err491_attval.cdf
sp echo "bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:" >> all_ncdump.out
-sp ncdump -h err491_attval.cdf >> all_ncdump.out
+sp ncdump -h data/err491_attval.cdf >> all_ncdump.out
save/clobber/file=a.nc elev[i=3,j=2:4]
sp echo "bn_attributes.jnl --- 5 before CANCEL MODE upcase_output" >> all_ncdump.out
sp ncdump -h a.nc >> all_ncdump.out
@@ -50502,7 +50503,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
use ocean_atlas_temp
sh att/all (`temp,return=xaxis`)
!-> sh att/all (XAX_LEV9421_380)
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
(XAX_LEV9421_380).units = degrees_east
(XAX_LEV9421_380).modulo =
(XAX_LEV9421_380).point_spacing = even
@@ -50526,7 +50527,7 @@ sp ncdump -h a.nc >> all_ncdump.out
set reg/x=300:360/y=30:45
sh att/all (`temp,return=xaxis`)
!-> sh att/all (XAX_LEV9421_380)
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
(XAX_LEV9421_380).units = degrees_east
(XAX_LEV9421_380).modulo =
(XAX_LEV9421_380).point_spacing = even
@@ -50543,7 +50544,7 @@ sp ncdump -h a.nc >> all_ncdump.out
! cancel output of attributes of the variable itself
can region
sh att/all temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -50568,13 +50569,13 @@ ooooooooooooooooooooooooooooooooooooooooooo
file/var="a1,a2,a3" EZ.DAT
def att a1.three={1,2,3}
sh att/all a1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
a1.long_name = a1
a1.missing_value = -1.E+34
a1.three = 1, 2, 3
sh dat/att
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -50602,7 +50603,7 @@ columns/delim=" " EZ.DAT
def att/type=string v1.strval = 2
set att/output v1.strval
sh att/all v1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
V1.long_name = V1
V1.missing_value = -1.E+34
V1.strval = 2
@@ -50852,7 +50853,7 @@ DEFINE ATT/OUTPUT (`t2,return=yaxis`).new_att = "somthing"
SHOW ATT/ALL (`t2,return=yaxis`)
!-> SHOW ATT/ALL (COADSY)
- attributes for dataset: ./coads_vwnd.cdf
+ attributes for dataset: ./data/coads_vwnd.cdf
(COADSY).units = degrees_north
(COADSY).point_spacing = uneven
(COADSY).orig_file_axname = COADSY
@@ -50904,7 +50905,7 @@ set att (`t2,return=xaxis`).units = "degrees"
!-> set att (PSXT).units = "degrees"
sh att/all (`t2,return=xaxis`)
!-> sh att/all (PSXT)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(PSXT).units = degrees
(PSXT).point_spacing = even
(PSXT).orig_file_axname = PSXT
@@ -50928,7 +50929,7 @@ set att (`temp,return=yaxis`).units="meters"
!-> set att (PSYT).units="meters"
sho att/all (`temp,return=yaxis`)
!-> sho att/all (PSYT)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(PSYT).units = meters
(PSYT).point_spacing = uneven
(PSYT).edges = PSYTedges
@@ -50976,7 +50977,7 @@ define att/out (`temp,return=xaxis`).new_att = "something"
!-> define att/out (XAXLEVITR1_160).new_att = "something"
sh dat/att
currently SET data sets:
- 1> ./levitus_climatology.cdf (default)
+ 1> ./data/levitus_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -51055,7 +51056,7 @@ ooooooooooooooooooooooooooooooooooooooooooo
use coads_climatology
show att/all (`sst,return=taxis`)
!-> show att/all (TIME)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(TIME).units = hour since 0000-01-01 00:00:00
(TIME).time_origin = 1-JAN-0000 00:00:00
(TIME).modulo =
@@ -51066,7 +51067,7 @@ set att (`sst,return=taxis`).units="days"
!-> set att (TIME).units="days"
show att/all (`sst,return=taxis`)
!-> show att/all (TIME)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(TIME).units = days since 1-JAN-0000 00:00:00
(TIME).time_origin = 1-JAN-0000 00:00:00
(TIME).modulo =
@@ -51076,7 +51077,7 @@ define attribute (`sst,return=taxis`).units = "months"
!-> define attribute (TIME).units = "months"
show att/all (`sst,return=taxis`)
!-> show att/all (TIME)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(TIME).units = months since 1-JAN-0000 00:00:00
(TIME).time_origin = 1-JAN-0000 00:00:00
(TIME).modulo =
@@ -51087,7 +51088,7 @@ set att (`sst,return=taxis`).time_origin = "1-mar-1955"
!-> set att (TIME).time_origin = "1-mar-1955"
show att/all (`sst,return=taxis`)
!-> show att/all (TIME)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(TIME).units = months since 1-mar-1955
(TIME).time_origin = 1-mar-1955
(TIME).modulo =
@@ -51097,7 +51098,7 @@ define attribute (`sst,return=taxis`).time_origin = "15-jan-2002"
!-> define attribute (TIME).time_origin = "15-jan-2002"
show att/all (`sst,return=taxis`)
!-> show att/all (TIME)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(TIME).units = months since 15-jan-2002
(TIME).time_origin = 15-jan-2002
(TIME).modulo =
@@ -51109,7 +51110,7 @@ show att/all (`sst,return=taxis`)
use coads_climatology
show att/all (`sst,return=taxis`)
!-> show att/all (TIME)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(TIME).units = months since 15-jan-2002
(TIME).time_origin = 15-jan-2002
(TIME).modulo =
@@ -51117,7 +51118,7 @@ show att/all (`sst,return=taxis`)
def axis/t=1:12:1/unit=months/t0="1-jan-0001" time
show att/all (`sst,return=taxis`)
!-> show att/all (TIME)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(TIME).units = MONTHS since 1-JAN-0001
(TIME).time_origin = 1-JAN-0001
(TIME).orig_file_axname = TIME
@@ -51125,7 +51126,7 @@ show att/all (`sst,return=taxis`)
set axis/t0="15-jan-0000" time
show att/all (`sst,return=taxis`)
!-> show att/all (TIME)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(TIME).units = MONTHS since 15-JAN-0000
(TIME).time_origin = 15-JAN-0000
(TIME).orig_file_axname = TIME
@@ -51133,7 +51134,7 @@ show att/all (`sst,return=taxis`)
set axis/units=days time
show att/all (`sst,return=taxis`)
!-> show att/all (TIME)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(TIME).units = days since 15-JAN-0000
(TIME).time_origin = 15-JAN-0000
(TIME).orig_file_axname = TIME
@@ -51193,7 +51194,7 @@ sp ncdump -h a.nc >> all_ncdump.out
can data/all
use ocean_atlas_temp
sho att temp
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
@@ -51201,7 +51202,7 @@ sho att temp
TEMP.units = Deg C
sho att ocean_atlas_temp
currently SET data sets:
- 1> ./ocean_atlas_temp.cdf (default)
+ 1> ./data/ocean_atlas_temp.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -51237,7 +51238,7 @@ sho att ocean_atlas_temp
sho att (`temp,return=xaxis`)
!-> sho att (XAX_LEV9421_380)
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
(XAX_LEV9421_380).units = degrees_east
(XAX_LEV9421_380).modulo =
(XAX_LEV9421_380).point_spacing = even
@@ -51246,7 +51247,7 @@ sho att (`temp,return=xaxis`)
use levitus_climatology
sho att 1
currently SET data sets:
- 1> ./ocean_atlas_temp.cdf
+ 1> ./data/ocean_atlas_temp.cdf
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -51282,7 +51283,7 @@ sho att 1
sho att 2
currently SET data sets:
- 2> ./levitus_climatology.cdf (default)
+ 2> ./data/levitus_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -51312,14 +51313,14 @@ sho att 2
sho att temp[d=1]
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.missing_value = -1.E+34
TEMP._FillValue = -1.E+34
TEMP.long_name = Temperature
TEMP.history = From ocean_atlas_monthly
TEMP.units = Deg C
sho att temp[d=2]
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
TEMP.missing_value = -1.E+10
TEMP._FillValue = -1.E+10
TEMP.long_name = TEMPERATURE
@@ -51328,14 +51329,14 @@ sho att temp[d=2]
sho att (`temp[d=1],return=taxis`[d=1])
!-> sho att (TIME1[d=1])
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
(TIME1).units = hour since 0000-01-01 00:00:00
(TIME1).time_origin = 01-JAN-0000 00:00:00
(TIME1).modulo =
(TIME1).orig_file_axname = TIME
sho att .
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
..history = FERRET V5.22 5-Apr-01
! 1/17 *sh*
@@ -51370,7 +51371,7 @@ list/L=1/prec=7 sst[x=100:120 at din,y=10:30 at din]
6.009285E+13
list/L=1/y=0/x=83w:49w sst,sst[x=@cda], sst[x=@cdb], sst[x=@cia], sst[x=@cib]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 83W to 49W
LATITUDE: 1S
TIME: 16-JAN 06:00
@@ -51400,7 +51401,7 @@ list/L=1/y=0/x=83w:49w sst,sst[x=@cda], sst[x=@cdb], sst[x=@cia], sst[x=@cib]
49W / 146: 27.38 0.00 0.00 0.00 0.00
list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 10N to 33N
LONGITUDE: 93W
TIME: 16-JAN 06:00
@@ -51423,7 +51424,7 @@ list/L=1/y=10:33/x=93w sst, sst[y=@ddb], sst[y=@ddc], sst[y=@ddf]
33N / 62: .... .... .... ....
list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 10N to 33N
LONGITUDE: 93W
TIME: 16-JAN 06:00
@@ -51444,7 +51445,7 @@ list/L=1/y=10:33/x=93w sst, sst[y=@evnt:23.84]
33N / 62: .... 1.000
list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 23N to 51N
LONGITUDE: 93W
TIME: 16-JAN 06:00
@@ -51470,7 +51471,7 @@ list/L=1/y=23:51/x=93w sst, sst[y=@fav], sst[y=@fln], sst[y=@fnr]
51N / 71: .... .... .... 2.47
list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 93W
LATITUDE: 23N to 51N
TIME: 16-JAN 06:00
@@ -51480,7 +51481,7 @@ list/L=1/y=23:51/x=93w sst[y=23:51 at min], sst[y=23:51 at max]
I / *: 2.466 23.84
list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 93W
LATITUDE: 23N to 51N
TIME: 16-JAN 06:00
@@ -51490,7 +51491,7 @@ list/L=1/y=23:51/x=93w sst[y=23:51 at nbd], sst[y=23:51 at ngd]
I / *: 9.000 6.000
list/L=1/y=1:11/x=93w sst, sst[y=@iin]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 1N to 11N
LONGITUDE: 93W
TIME: 16-JAN 06:00
@@ -51505,7 +51506,7 @@ list/L=1/y=1:11/x=93w sst, sst[y=@iin]
11N / 51: 26.99 2.956E+07
list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 93W
TIME: 16-JAN 06:00
Column 1: SST[Y=23N:25N] is SEA SURFACE TEMPERATURE (Deg C)
@@ -51515,7 +51516,7 @@ list/L=1/y=23:25/x=93w sst, sst[y=24 at itp]
25N / 58: 23.11 23.47
list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-1]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 11N to 23N
LONGITUDE: 93W
TIME: 16-JAN 06:00
@@ -51534,7 +51535,7 @@ list/L=1/y=11:23/x=93w sst, sst[y=@rsum], sst[y=@sbn], sst[y=@sbx], sst[y=@shf:-
23N / 57: 23.84 181.6 23.69 23.63 23.95
list/L=1/y=11:23/x=93w sst, sst[y=@shn] , sst[y=@spz], sst[y=@sum], sst[y=@swl], sst[y=@weq:26]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 11N to 23N
LONGITUDE: 93W
TIME: 16-JAN 06:00
@@ -52874,7 +52875,7 @@ stat rose[d=2]
T: N/A
E: N/A
F: N/A
- DATA SET: ./ss_small.nc
+ DATA SET: ./data/ss_small.nc
Total # of data points: 2576 (46*56*1*1*1*1)
# flagged as bad data: 0
@@ -52898,7 +52899,7 @@ stat rose[j=12,d=1]
T: N/A
E: N/A
F: N/A
- DATA SET: ./ss_small.nc
+ DATA SET: ./data/ss_small.nc
Total # of data points: 46 (46*1*1*1*1*1)
# flagged as bad data: 0
@@ -52921,33 +52922,33 @@ GO err600_reset_redefine_axis.jnl
use coads_climatology
def sym timeax = `sst,return=taxis`
- !-> def sym timeax = TIME4
+ !-> def sym timeax = TIME5
show att/all (($timeax))
- !-> show att/all (TIME4)
- attributes for dataset: ./coads_climatology.cdf
- (TIME4).units = hour since 0000-01-01 00:00:00
- (TIME4).time_origin = 1-JAN-0000 00:00:00
- (TIME4).modulo =
- (TIME4).orig_file_axname = TIME
+ !-> show att/all (TIME5)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME5).units = hour since 0000-01-01 00:00:00
+ (TIME5).time_origin = 1-JAN-0000 00:00:00
+ (TIME5).modulo =
+ (TIME5).orig_file_axname = TIME
show axis ($timeax)
- !-> show axis TIME4
+ !-> show axis TIME5
name axis # pts start end
- TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ TIME5 TIME 3mr 16-JAN 06:00 17-MAR 02:58
T0 = 01-JAN-0000 00:00:00
Axis span (to cell edges) = 2191.455 (modulo length = 8765.82)
define axis/t0=1-jan-0001/t=1:3:1/unit=months ($timeax)
- !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME4
+ !-> define axis/t0=1-jan-0001/t=1:3:1/unit=months TIME5
show att/all (($timeax))
- !-> show att/all (TIME4)
- attributes for dataset: ./coads_climatology.cdf
- (TIME4).units = MONTHS since 1-JAN-0001
- (TIME4).time_origin = 1-JAN-0001
- (TIME4).orig_file_axname = TIME
+ !-> show att/all (TIME5)
+ attributes for dataset: ./data/coads_climatology.cdf
+ (TIME5).units = MONTHS since 1-JAN-0001
+ (TIME5).time_origin = 1-JAN-0001
+ (TIME5).orig_file_axname = TIME
show axis ($timeax)
- !-> show axis TIME4
+ !-> show axis TIME5
name axis # pts start end
- TIME4 TIME 3 r 31-JAN-0001 10:29 02-APR-0001 07:27
+ TIME5 TIME 3 r 31-JAN-0001 10:29 02-APR-0001 07:27
T0 = 1-JAN-0001
Axis span (to cell edges) = 3
@@ -52959,7 +52960,7 @@ def sym timeax = `temp,return=taxis`
!-> def sym timeax = TIME11
show att/all (($timeax))
!-> show att/all (TIME11)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(TIME11).units = hour since 1980-01-14 14:00:00
(TIME11).time_origin = 14-JAN-1980 14:00:00
(TIME11).orig_file_axname = TIME1
@@ -52974,7 +52975,7 @@ set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days ($timeax)
!-> set ax/modulo/calendar=noleap/t0=1-jan-1900/units=days TIME11
show att/all (($timeax))
!-> show att/all (TIME11)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(TIME11).units = days since 1-JAN-1900
(TIME11).time_origin = 1-JAN-1900
(TIME11).orig_file_axname = TIME1
@@ -52999,7 +53000,7 @@ def sym zax = `temp,return=zaxis`
!-> def sym zax = PSZT
show att/all (($timeax))
!-> show att/all (TIME11)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(TIME11).units = hour since 1980-01-14 14:00:00
(TIME11).time_origin = 14-JAN-1980 14:00:00
(TIME11).orig_file_axname = TIME1
@@ -53013,7 +53014,7 @@ cancel axis/modulo ($timeax)
!-> cancel axis/modulo TIME11
show att/all (($timeax))
!-> show att/all (TIME11)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(TIME11).units = hour since 1980-01-14 14:00:00
(TIME11).time_origin = 14-JAN-1980 14:00:00
(TIME11).orig_file_axname = TIME1
@@ -53027,7 +53028,7 @@ cancel axis/depth ($zax)
!-> cancel axis/depth PSZT
show att/all (($zax))
!-> show att/all (PSZT)
- attributes for dataset: ./gt4d011.cdf
+ attributes for dataset: ./data/gt4d011.cdf
(PSZT).units = METERS
(PSZT).positive = up
(PSZT).point_spacing = uneven
@@ -53059,7 +53060,7 @@ use coads_climatology
! Note TIME1 with attribute orig_file_axname
sh dat/att
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -53076,7 +53077,7 @@ sh dat/att
orig_file_axname
CHAR 6 F COADSY
-(TIME5) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME6) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 19 T 1-JAN-0000 00:00:00
modulo CHAR 1 T
orig_file_axname
@@ -53104,7 +53105,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
@@ -53153,7 +53154,7 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
@@ -53343,7 +53344,7 @@ stat rose[d=2]
T: N/A
E: N/A
F: N/A
- DATA SET: ./ss_small.nc
+ DATA SET: ./data/ss_small.nc
Total # of data points: 2576 (46*56*1*1*1*1)
# flagged as bad data: 0
@@ -53367,7 +53368,7 @@ stat rose[j=12,d=1]
T: N/A
E: N/A
F: N/A
- DATA SET: ./ss_small.nc
+ DATA SET: ./data/ss_small.nc
Total # of data points: 46 (46*1*1*1*1*1)
# flagged as bad data: 0
@@ -53385,7 +53386,7 @@ stat rose[j=12,d=1]
! unrelated axes already defined, which get in the way of
! seeing the desired output.
-set mode ignore_error
+!set mode ignore_error
!..............1. ignore STRIDE = 1
use coads_climatology
@@ -53424,6 +53425,7 @@ show axis `sst,return=xaxis`
(AX###) LONGITUDE 90mr 23E 19E(379)
Axis span (to cell edges) = 360 (modulo length = axis span)
!can't stride it again
+set mode ignore_error
set axis/stride=2/offset=1 `sst, return=xaxis`
!-> set axis/stride=2/offset=1 (AX###)
show axis `sst,return=xaxis`
@@ -53431,6 +53433,7 @@ show axis `sst,return=xaxis`
name axis # pts start end
(AX###) LONGITUDE 90mr 23E 19E(379)
Axis span (to cell edges) = 360 (modulo length = axis span)
+set mode/last ignore
cancel data/all
!..............3. only set STRIDE
@@ -53510,15 +53513,20 @@ show axis `sst,return=xaxis`
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
Axis span (to cell edges) = 360 (modulo length = axis span)
+
+set mode ignore
cancel axis/stride `sst,return=xaxis`
!-> cancel axis/stride COADSX
+set mode/last ignore
cancel data/all
!.............5. OFFSET .LE. STRIDE
use coads_climatology
+set mode ignore
set axis/stride=2/offset=4 `sst, return=xaxis`
!-> set axis/stride=2/offset=4 COADSX
+set mode/last ignore
cancel data/all
!.............6. SHOW GRID/DYNAMIC
@@ -53534,8 +53542,11 @@ cancel data/all
!.............7. cancel stride on a non-strided axis
use coads_climatology
+set mode ignore
cancel axis/stride `sst,return=xaxis`
!-> cancel axis/stride COADSX
+set mode/last ignore
+
cancel data/all
!.............8. striding on a modulo axis
@@ -53661,7 +53672,7 @@ can data/all
use/order=yzt coads_climatology
show data/all
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE ... 1:180 1:90 1:3
@@ -53715,6 +53726,7 @@ list/x=180/l=5 sst[j=1:30]
85S / 3: ....
87S / 2: ....
89S / 1: ....
+
set axis/stride=5/offset=3 `sst,return=yaxis`
!-> set axis/stride=5/offset=3 COADSY
list/x=180/l=5 sst
@@ -53825,7 +53837,7 @@ let f_filtered = lsl_lowpass(my_temp, 40,10)
! List the output so its not just a graphical test;
! Compute based on the whole T region, but just list a portion.
LIST/L=10:20 MY_TEMP[L=1:110], F_FILTERED[L=1:110]
- DATA SET: ./gtsa056_2.cdf
+ DATA SET: ./data/gtsa056_2.cdf
TIME: 10-FEB-1982 10:30 to 15-MAR-1982 21:30
LONGITUDE: 179.5E
LATITUDE: 0.2S
@@ -54216,7 +54228,7 @@ list nomiss[gt=month_reg at MODNGD]
let var = if temp gt 29.5 then temp
list var[gt=month_reg at MODNGD], var[gt=month_reg at MODNBD], var[gt=month_reg at MODNGD]+var[gt=month_reg at MODNBD], nomiss[gt=month_reg at MODNGD]
- DATA SET: ./gtsa056_2.cdf
+ DATA SET: ./data/gtsa056_2.cdf
TIME: 01-JAN 00:45 to 31-DEC 06:34
LONGITUDE: 139.5E
LATITUDE: 0.8N
@@ -54425,7 +54437,7 @@ USE coads_climatology
SET VAR/NAME=my_sst sst
SHOW DATA
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
MY_SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -55396,7 +55408,7 @@ GO err61_new_attr_on_axis
use ocean_atlas_temp
sh dat
currently SET data sets:
- 1> ./ocean_atlas_temp.cdf (default)
+ 1> ./data/ocean_atlas_temp.cdf (default)
name title I J K L
TEMP Temperature 1:360 1:180 1:1 1:2
@@ -55437,7 +55449,7 @@ use gt4d011
use levitus_climatology
sh att temp[d=1].units
- attributes for dataset: ./ocean_atlas_temp.cdf
+ attributes for dataset: ./data/ocean_atlas_temp.cdf
TEMP.units = Deg C
@@ -55892,15 +55904,7 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLATITUDE : 9N
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 2 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASTIME : 16-JAN 06:00
- LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 3 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
- LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 4 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
- LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 5 -4.700E-01 -5.500E-01 0.080 0 SYSTEM @ASSST[Y=39N] No Valid Data
+ LAB 1 -4.700E-01 -5.500E-01 0.080 0 SYSTEM @ASSST[Y=39N] No Valid Data
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
! For plots with multi lines in one plot command, mark each if no data
@@ -55944,7 +55948,7 @@ use gtsa056_2.cdf
let var = u[x=180,y=0,k=1,t=1-jan-1982:1-jan-1983]
plot var, var[t=@med], var[t=@med:3], var[t=@med:7]
list/t=1-dec-1982:1-jan-1983 var, var[t=@med], var[t=@med:3], var[t=@med:7]
- DATA SET: ./gtsa056_2.cdf
+ DATA SET: ./data/gtsa056_2.cdf
TIME: 29-NOV-1982 10:30 to 01-JAN-1983 21:30
LONGITUDE: 180E
LATITUDE: 0
@@ -55970,7 +55974,7 @@ use coads_climatology
let var= sst[y=0,L=10]
plot var,var[x=@med:3], var[x=@med:7]
list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LONGITUDE: 80W to 50W
LATITUDE: 1S
TIME: 15-FEB-0002 04:07
@@ -55997,7 +56001,7 @@ list/x=80w:50w var,var[x=@med:3], var[x=@med:7]
let var= sst[x=180,L=10]
plot var,var[y=@med:3], var[y=@med:7]
list/y=-20:0 var,var[y=@med:3], var[y=@med:7]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 20S to 0
LONGITUDE: 179E
TIME: 15-FEB-0002 04:07
@@ -56374,11 +56378,11 @@ USE bug1421_b
SHOW DATA
currently SET data sets:
- 1> ./bug1421_a.nc
+ 1> ./data/bug1421_a.nc
name title I J K L
A zonal wind stress 1:1 1:1 ... 1:20
- 2> ./bug1421_b.nc (default)
+ 2> ./data/bug1421_b.nc (default)
name title I J K L
B T[GT=MON_IRREG_NLP] ... ... ... 1:12
@@ -56946,7 +56950,7 @@ set mode/last nodata_lab
set data proleptic_gregorian.nc
show data
currently SET data sets:
- 1> ./proleptic_gregorian.nc (default)
+ 1> ./data/proleptic_gregorian.nc (default)
name title I J K L
MY_DATA SIN(L[GT=TDAYS]) ... ... ... 1:32
@@ -57588,7 +57592,7 @@ set mode calendar
! test the automatically-defined symbol LAST_GO_FILE
show sym last_go_file
-LAST_GO_FILE = "./bn_last_go_file.jnl"
+LAST_GO_FILE = "./v6jnls/bn_last_go_file.jnl"
*** Running ferret script: bn_cancel_upcase_uservar.jnl
! bn_cancel_upcase_uservar.jnl
@@ -58135,7 +58139,7 @@ list/format=cdf/keep_axnames/append/file=test_fil0.cdf/heading="enh" ijklave
set data/format=cdf test_fil0
show data/full
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -58327,7 +58331,7 @@ list/format=cdf/keep_axnames/append/file=test_fil.cdf ijklave
set data/format=cdf test_fil
show data/full
currently SET data sets:
- 1> ./gtbc011.cdf
+ 1> ./data/gtbc011.cdf
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
@@ -58410,7 +58414,7 @@ set data reverse_axes
show data/var
currently SET data sets:
- 1> ./reverse_axes.cdf (default)
+ 1> ./data/reverse_axes.cdf (default)
name title I J K L
FCN_NORM COS(X/10)*SIN(Y/2) 1:51 1:21 ... ...
@@ -58427,7 +58431,7 @@ show data/var
list/x=180 fcn_norm,fcn_rev
WARNING: Listed variables have ambiguous coordinates on axes: Y
- DATA SET: ./reverse_axes.cdf
+ DATA SET: ./data/reverse_axes.cdf
LONGITUDE: 180E
Column 1: FCN_NORM is COS(X/10)*SIN(Y/2)
Column 2: FCN_REV is COS(X/10)*SIN(Y/2)
@@ -58483,7 +58487,7 @@ sh command list
/MLIMITS/NLIMITS/XLIMITS/YLIMITS/ZLIMITS/TLIMITS/ELIMITS/FLIMITS
/CLOBBER/QUIET/WIDTH/EDGES/BOUNDS/NOBOUNDS/NOROWLAB/KEEP_AXI/NCFORMAT
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/DEFLATE/SHUFFLE/ENDIAN
- /OUTTYPE/CURVILIN/LAYERZ
+ /OUTTYPE/CURVILIN/LAYERZ/ASGLOBAL
define axis/x=1:100:1/units=deg x100
define axis/t=1-jan-2000:31-jan-2000:1/units=days/t0=31-dec-1999 t31
let a = x[gx=x100] + t[gt=t31]
@@ -58910,7 +58914,7 @@ USE grads_bug_file.nc
! A4 has z axis with long name layer
SHOW DATA
currently SET data sets:
- 1> ./grads_bug_file.nc (default)
+ 1> ./data/grads_bug_file.nc (default)
name title I J K L
AM Z[GZ=CAXIS] + Y[GY=BAXIS] + X[G 1:10 1:5 1:5 ...
AR Z[GZ=DAXIS]+ Y[GY=BAXIS] + X[GX 1:10 1:5 1:6 ...
@@ -59220,7 +59224,7 @@ use lev_rev_up.nc
use lev_rev_up.nc
list z[gz=temp], zboxlo[gz=temp], zboxhi[gz=temp]
- DATA SET: ./lev_rev_up.nc
+ DATA SET: ./data/lev_rev_up.nc
Z (METERS): -5000 to 0
Column 1: Z is Z (axis ZAXLEVITR)
Column 2: ZBOXLO is ZBOXLO (axis ZAXLEVITR)
@@ -60033,7 +60037,7 @@ DEFINE GRID/X=XEZ1/Y=EZ ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
FILE/VAR="X1,X2"/COLUMNS=6/GRID=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 EZ.DAT
SHOW DATA/FULL
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:3 1:20480 ... ...
@@ -60059,7 +60063,7 @@ LIST X1
5 / 5: 0.4780 0.5150 0.4690
SHOW DATA
currently SET data sets:
- 1> ./EZ.DAT (default)
+ 1> ./data/EZ.DAT (default)
name title I J K L
X1 X1 1:3 1:5 ... ...
X2 X2 1:3 1:5 ... ...
@@ -60852,7 +60856,7 @@ GO err64_packed_data
! sp ncpdq fine_x_axis.nc err64_packed_data.nc
use err64_packed_data.nc
sh att/all sst
- attributes for dataset: ./err64_packed_data.nc
+ attributes for dataset: ./data/err64_packed_data.nc
SST.missing_value = 1.E+20
SST._FillValue = 1.E+20
SST.long_name = sea surface temperature [degc]
@@ -61516,7 +61520,7 @@ stat temp[x=@ave,t=@ave]
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00 (XT ave)
E: N/A
F: N/A
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 198 (1*22*9*1*1*1)
# flagged as bad data: 0
@@ -61534,7 +61538,7 @@ stat temp[x=@ave,z=@ave]
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
E: N/A
F: N/A
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 550 (1*22*1*25*1*1)
# flagged as bad data: 0
@@ -61582,7 +61586,7 @@ stat temp[z=@ave,t=@ave,y=-2:2]
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00 (ZT ave)
E: N/A
F: N/A
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 234 (18*13*1*1*1*1)
# flagged as bad data: 0
@@ -61649,11 +61653,11 @@ save/file=nc4_deflate4_defaultchunk.nc/clobber/ncformat=4/deflate/shuffle sst
sp stat nc4_nodeflate3.nc --printf="Bytes: %s\n"
Bytes: 197508
sp stat nc4_deflate4bigchunk.nc --printf="Bytes: %s\n"
-Bytes: 125621
+Bytes: 125620
sp stat nc4_deflate4_xyt.nc --printf="Bytes: %s\n"
-Bytes: 125235
+Bytes: 125234
sp stat nc4_deflate4_defaultchunk.nc --printf="Bytes: %s\n"
-Bytes: 119300
+Bytes: 119299
! Write variable as INT
CAN DAT/all; can var/all; can mem/all
@@ -61670,9 +61674,9 @@ save/clobber/shuffle=1/file=nc4_inttemp_shuffle_set_list_deflate_chunk.nc temp
sp stat nc4_inttemp_classic.nc --printf="Bytes: %s\n"
Bytes: 60548
sp stat nc4_inttemp_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 32889
+Bytes: 32888
sp stat nc4_inttemp_shuffle_set_list_deflate_chunk.nc --printf="Bytes: %s\n"
-Bytes: 33104
+Bytes: 33103
cancel list/all
set list/ncformat=classic
@@ -62328,7 +62332,7 @@ cancel grid mygrid
use bn_set_axis_regular
show data
currently SET data sets:
- 1> ./bn_set_axis_regular.nc (default)
+ 1> ./data/bn_set_axis_regular.nc (default)
name title I J K L
MYDATA 2 * X + Y 1:10 1:10 ... ...
@@ -62826,8 +62830,8 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 45 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v7.21 (beta/debug)"
- 3 / 3:" ! Linux 3.10.0-693.el7.x86_64 64-bit - MM-DD-YY"
+ 2 / 2:" ! FERRET v7.3 (beta/debug)"
+ 3 / 3:" ! Linux 3.10.0-693.5.2.el7.x86_64 64-bit - MM-DD-YY"
4 / 4:" ! DD-MON-YY HH:MM "
5 / 5:""
6 / 6:"! "
@@ -62935,7 +62939,7 @@ plot/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
! Numeric results
list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -62972,7 +62976,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med], temp[L=@smx], temp[L=@smn]
10-JAN-1983 12 / 25: 32.59 32.81 32.81 32.59
list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -63008,7 +63012,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:3], temp[L=@smx:3], temp[L=@smn:3]
04-JAN-1983 10 / 24: 32.81 32.81 32.94 32.59
10-JAN-1983 12 / 25: 32.59 32.81 32.81 32.59
list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -63044,7 +63048,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:5], temp[L=@smn:5]
04-JAN-1983 10 / 24: 32.81 32.94 32.97 32.59
10-JAN-1983 12 / 25: 32.59 32.81 32.94 32.59
list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -63081,7 +63085,7 @@ list/x=123.5w/y=2.5/k=1 temp, temp[L=@med:5], temp[L=@smx:6], temp[L=@smn:6]
10-JAN-1983 12 / 25: 32.59 32.81 32.97 32.59
list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
LONGITUDE: 139.5W to 122.5W
LATITUDE: 2.5N
DEPTH (m): 5
@@ -63110,7 +63114,7 @@ list/y=2.5/k=1/l=1/x=139.5W:122.5W temp, temp[i=@med], temp[i=@smx], temp[i=@smn
123.5W / 107: 27.15 27.15 27.17 27.13
122.5W / 108: 27.17 27.17 27.17 27.15
list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at smn]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
LATITUDE: 3.7S to 3.7N
LONGITUDE: 123.5W
DEPTH (m): 5
@@ -63144,7 +63148,7 @@ list/k=1/l=1/x=123.5w temp, temp[j=35:56 at med], temp[j=35:56 at smx], temp[j=35:56 at s
3.5N / 56: 28.06 28.06 28.06 27.70
list/l=1/x=123.5w/y=2.5/z=0:100 temp, temp[k=@med], temp[k=@smx], temp[k=@smn]
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
DEPTH (m): 0 to 100
LONGITUDE: 123.5W
LATITUDE: 2.5N
@@ -63225,7 +63229,7 @@ STAT/L=1 huge
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -63245,7 +63249,7 @@ STAT/L=1 huge
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -63489,7 +63493,7 @@ GO err664_xml_one_point_axis
USE a_cartesian_bug1179.nc
SH DAT
currently SET data sets:
- 1> ./a_cartesian_bug1179.nc (default)
+ 1> ./data/a_cartesian_bug1179.nc (default)
name title I J K L
TEMP THETA_FO(SALT_EXTRAP,TEMP_EXTRA 1:1 1:1 1:10 1:1
@@ -63499,7 +63503,7 @@ LET/D=1 a = temp
! and also the Z axis which has 10 points.
SH VAR/XML
<global>
-<var name="A[D=./a_cartesian_bug1179.nc]">
+<var name="A[D=./data/a_cartesian_bug1179.nc]">
<attribute name="definition" type="char">
<value><![CDATA[TEMP]]></value>
</attribute>
@@ -63527,7 +63531,7 @@ LET/D=1 temp_ave_t = temp[Z=37.5:112.5 at AVE]
! but not the Z axis, which has been averaged away.
SH VAR/XML
<global>
-<var name="TEMP_AVE_T[D=./a_cartesian_bug1179.nc]">
+<var name="TEMP_AVE_T[D=./data/a_cartesian_bug1179.nc]">
<attribute name="definition" type="char">
<value><![CDATA[TEMP[Z=37.5:112.5 at AVE]]]></value>
</attribute>
@@ -63943,7 +63947,7 @@ GO err667_att_too_long
use toolong.nc
sh dat/att
currently SET data sets:
- 1> ./toolong.nc (default)
+ 1> ./data/toolong.nc (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -64086,9 +64090,9 @@ GO err667_show_var_twice
use coads_climatology
sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
+ SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./data/coads_climatology.cdf
sh var sst[d=1]
- SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./coads_climatology.cdf
+ SST[D=1]: SEA SURFACE TEMPERATURE, in dataset ./data/coads_climatology.cdf
!should return nothing
sh var airt
@@ -64401,7 +64405,7 @@ GO err67_reverse_bounds
use reverse_z_bnds.nc
list lev_var, zboxlo[gz=lev_var], zboxhi[gz=lev_var]
- DATA SET: ./reverse_z_bnds.nc
+ DATA SET: ./data/reverse_z_bnds.nc
Z: 0 to 1
Column 1: LEV_VAR is a variable on the depth axis (none)
Column 2: ZBOXLO is ZBOXLO (axis LEV)
@@ -64900,11 +64904,11 @@ GO err672_axis_order
use err67_axis_order.nc
-sp cp err67_axis_order.nc err67_axis_order_copy.nc
+sp cp data/err67_axis_order.nc err67_axis_order_copy.nc
use err67_axis_order_copy.nc
sh dat
currently SET data sets:
- 1> ./err67_axis_order.nc
+ 1> ./data/err67_axis_order.nc
name title I J K L
UCOV UCOV 1:6 1:9 1:3 1:1
CONTROLE CONTROLE 1:6 ... ... ...
@@ -65242,7 +65246,7 @@ STAT IF intvar THEN 1
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 8780
@@ -65262,7 +65266,7 @@ STAT IFV intvar THEN 1
TIME: 16-JAN 06:00
E: N/A
F: N/A
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
Total # of data points: 16200 (180*90*1*1*1*1)
# flagged as bad data: 6694
@@ -65480,7 +65484,7 @@ sp ncdump -h a.nc >> all_ncdump.out
use degrees
sh att/all (`var,return=xaxis`)
!-> sh att/all (XAXIS)
- attributes for dataset: ./degrees.nc
+ attributes for dataset: ./data/degrees.nc
(XAXIS).units = degrees_east
(XAXIS).point_spacing = even
(XAXIS).axis = X
@@ -65499,7 +65503,7 @@ sp ncdump -h a.nc >> all_ncdump.out
use bn_strides
sh att/all (TTIME)
- attributes for dataset: ./bn_strides.cdf
+ attributes for dataset: ./data/bn_strides.cdf
(TTIME).units = DAYS since 1901-01-15 00:00:00
(TTIME).time_origin = 15-JAN-1901
(TTIME).point_spacing = even
@@ -65616,7 +65620,7 @@ sp cat xml_out.xml
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<data>
<datasets>
-<dataset name="./coads_climatology.cdf" default="true">
+<dataset name="./data/coads_climatology.cdf" default="true">
<title> </title>
<var name="SST">
<attribute name="units" type="char">
@@ -65806,7 +65810,7 @@ sp grep -A5 dimension xml_out_string.xml
! 7/2012
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
+! 11/2017 - still try to test old eof functions, if they are re-implemented
! Define two locations.
def axis /X=1:2:1 xaxis
@@ -65853,20 +65857,47 @@ list eofsvd_stat(spacetime)
show func eofsvd_space
EOFSVD_SPACE(A)
- Return SVD EOF spacial fields from XYT field
+ Return SVD EOF spatial fields from XYT field
A: Variable in x,y,t; may be fcn of z,e,f
! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
! but might be mixed by rotation.
! This is if the EOF functions are in units of the original data,
! thus the eigenvectors times the square-root of the eigenvalue.
! EOF vectors are always orthogonal to each other.
-list eofsvd_space(spacetime)
- VARIABLE : EOFSVD_SPACE(SPACETIME)
- SUBSET : 2 by 2 points (X-T)
- 1 2
- 1 2
- 1 / 1: 0.0000 -0.7071
- 2 / 2: -0.7071 -0.0000
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 0.5000
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ 0.0000
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ 0.0000
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 0.5000
show func eofsvd_tfunc
EOFSVD_TFUNC(A)
@@ -65874,251 +65905,40 @@ EOFSVD_TFUNC(A)
A: Variable in x,y,t; may be fcn of z,e,f
! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
! TAF vectors are always orthogonal to each other.
-list eofsvd_tfunc(spacetime)
- VARIABLE : EOFSVD_TFUNC(SPACETIME)
- SUBSET : 2 by 240 points (X-T)
- 1 2
- 1 2
- 0 / 1: -0.000 -1.414
- 0.25 / 2: -0.185 -1.402
- 0.5 / 3: -0.366 -1.366
- 0.75 / 4: -0.541 -1.307
- 1 / 5: -0.707 -1.225
- 1.25 / 6: -0.861 -1.122
- 1.5 / 7: -1.000 -1.000
- 1.75 / 8: -1.122 -0.861
- 2 / 9: -1.225 -0.707
- 2.25 / 10: -1.307 -0.541
- 2.5 / 11: -1.366 -0.366
- 2.75 / 12: -1.402 -0.185
- 3 / 13: -1.414 -0.000
- 3.25 / 14: -1.402 0.185
- 3.5 / 15: -1.366 0.366
- 3.75 / 16: -1.307 0.541
- 4 / 17: -1.225 0.707
- 4.25 / 18: -1.122 0.861
- 4.5 / 19: -1.000 1.000
- 4.75 / 20: -0.861 1.122
- 5 / 21: -0.707 1.225
- 5.25 / 22: -0.541 1.307
- 5.5 / 23: -0.366 1.366
- 5.75 / 24: -0.185 1.402
- 6 / 25: -0.000 1.414
- 6.25 / 26: 0.185 1.402
- 6.5 / 27: 0.366 1.366
- 6.75 / 28: 0.541 1.307
- 7 / 29: 0.707 1.225
- 7.25 / 30: 0.861 1.122
- 7.5 / 31: 1.000 1.000
- 7.75 / 32: 1.122 0.861
- 8 / 33: 1.225 0.707
- 8.25 / 34: 1.307 0.541
- 8.5 / 35: 1.366 0.366
- 8.75 / 36: 1.402 0.185
- 9 / 37: 1.414 0.000
- 9.25 / 38: 1.402 -0.185
- 9.5 / 39: 1.366 -0.366
- 9.75 / 40: 1.307 -0.541
- 10 / 41: 1.225 -0.707
- 10.25 / 42: 1.122 -0.861
- 10.5 / 43: 1.000 -1.000
- 10.75 / 44: 0.861 -1.122
- 11 / 45: 0.707 -1.225
- 11.25 / 46: 0.541 -1.307
- 11.5 / 47: 0.366 -1.366
- 11.75 / 48: 0.185 -1.402
- 12 / 49: 0.000 -1.414
- 12.25 / 50: -0.185 -1.402
- 12.5 / 51: -0.366 -1.366
- 12.75 / 52: -0.541 -1.307
- 13 / 53: -0.707 -1.225
- 13.25 / 54: -0.861 -1.122
- 13.5 / 55: -1.000 -1.000
- 13.75 / 56: -1.122 -0.861
- 14 / 57: -1.225 -0.707
- 14.25 / 58: -1.307 -0.541
- 14.5 / 59: -1.366 -0.366
- 14.75 / 60: -1.402 -0.185
- 15 / 61: -1.414 -0.000
- 15.25 / 62: -1.402 0.185
- 15.5 / 63: -1.366 0.366
- 15.75 / 64: -1.307 0.541
- 16 / 65: -1.225 0.707
- 16.25 / 66: -1.122 0.861
- 16.5 / 67: -1.000 1.000
- 16.75 / 68: -0.861 1.122
- 17 / 69: -0.707 1.225
- 17.25 / 70: -0.541 1.307
- 17.5 / 71: -0.366 1.366
- 17.75 / 72: -0.185 1.402
- 18 / 73: -0.000 1.414
- 18.25 / 74: 0.185 1.402
- 18.5 / 75: 0.366 1.366
- 18.75 / 76: 0.541 1.307
- 19 / 77: 0.707 1.225
- 19.25 / 78: 0.861 1.122
- 19.5 / 79: 1.000 1.000
- 19.75 / 80: 1.122 0.861
- 20 / 81: 1.225 0.707
- 20.25 / 82: 1.307 0.541
- 20.5 / 83: 1.366 0.366
- 20.75 / 84: 1.402 0.185
- 21 / 85: 1.414 0.000
- 21.25 / 86: 1.402 -0.185
- 21.5 / 87: 1.366 -0.366
- 21.75 / 88: 1.307 -0.541
- 22 / 89: 1.225 -0.707
- 22.25 / 90: 1.122 -0.861
- 22.5 / 91: 1.000 -1.000
- 22.75 / 92: 0.861 -1.122
- 23 / 93: 0.707 -1.225
- 23.25 / 94: 0.541 -1.307
- 23.5 / 95: 0.366 -1.366
- 23.75 / 96: 0.185 -1.402
- 24 / 97: 0.000 -1.414
- 24.25 / 98: -0.185 -1.402
- 24.5 / 99: -0.366 -1.366
- 24.75 / 100: -0.541 -1.307
- 25 / 101: -0.707 -1.225
- 25.25 / 102: -0.861 -1.122
- 25.5 / 103: -1.000 -1.000
- 25.75 / 104: -1.122 -0.861
- 26 / 105: -1.225 -0.707
- 26.25 / 106: -1.307 -0.541
- 26.5 / 107: -1.366 -0.366
- 26.75 / 108: -1.402 -0.185
- 27 / 109: -1.414 -0.000
- 27.25 / 110: -1.402 0.185
- 27.5 / 111: -1.366 0.366
- 27.75 / 112: -1.307 0.541
- 28 / 113: -1.225 0.707
- 28.25 / 114: -1.122 0.861
- 28.5 / 115: -1.000 1.000
- 28.75 / 116: -0.861 1.122
- 29 / 117: -0.707 1.225
- 29.25 / 118: -0.541 1.307
- 29.5 / 119: -0.366 1.366
- 29.75 / 120: -0.185 1.402
- 30 / 121: -0.000 1.414
- 30.25 / 122: 0.185 1.402
- 30.5 / 123: 0.366 1.366
- 30.75 / 124: 0.541 1.307
- 31 / 125: 0.707 1.225
- 31.25 / 126: 0.861 1.122
- 31.5 / 127: 1.000 1.000
- 31.75 / 128: 1.122 0.861
- 32 / 129: 1.225 0.707
- 32.25 / 130: 1.307 0.541
- 32.5 / 131: 1.366 0.366
- 32.75 / 132: 1.402 0.185
- 33 / 133: 1.414 -0.000
- 33.25 / 134: 1.402 -0.185
- 33.5 / 135: 1.366 -0.366
- 33.75 / 136: 1.307 -0.541
- 34 / 137: 1.225 -0.707
- 34.25 / 138: 1.122 -0.861
- 34.5 / 139: 1.000 -1.000
- 34.75 / 140: 0.861 -1.122
- 35 / 141: 0.707 -1.225
- 35.25 / 142: 0.541 -1.307
- 35.5 / 143: 0.366 -1.366
- 35.75 / 144: 0.185 -1.402
- 36 / 145: 0.000 -1.414
- 36.25 / 146: -0.185 -1.402
- 36.5 / 147: -0.366 -1.366
- 36.75 / 148: -0.541 -1.307
- 37 / 149: -0.707 -1.225
- 37.25 / 150: -0.861 -1.122
- 37.5 / 151: -1.000 -1.000
- 37.75 / 152: -1.122 -0.861
- 38 / 153: -1.225 -0.707
- 38.25 / 154: -1.307 -0.541
- 38.5 / 155: -1.366 -0.366
- 38.75 / 156: -1.402 -0.185
- 39 / 157: -1.414 -0.000
- 39.25 / 158: -1.402 0.185
- 39.5 / 159: -1.366 0.366
- 39.75 / 160: -1.307 0.541
- 40 / 161: -1.225 0.707
- 40.25 / 162: -1.122 0.861
- 40.5 / 163: -1.000 1.000
- 40.75 / 164: -0.861 1.122
- 41 / 165: -0.707 1.225
- 41.25 / 166: -0.541 1.307
- 41.5 / 167: -0.366 1.366
- 41.75 / 168: -0.185 1.402
- 42 / 169: -0.000 1.414
- 42.25 / 170: 0.185 1.402
- 42.5 / 171: 0.366 1.366
- 42.75 / 172: 0.541 1.307
- 43 / 173: 0.707 1.225
- 43.25 / 174: 0.861 1.122
- 43.5 / 175: 1.000 1.000
- 43.75 / 176: 1.122 0.861
- 44 / 177: 1.225 0.707
- 44.25 / 178: 1.307 0.541
- 44.5 / 179: 1.366 0.366
- 44.75 / 180: 1.402 0.185
- 45 / 181: 1.414 -0.000
- 45.25 / 182: 1.402 -0.185
- 45.5 / 183: 1.366 -0.366
- 45.75 / 184: 1.307 -0.541
- 46 / 185: 1.225 -0.707
- 46.25 / 186: 1.122 -0.861
- 46.5 / 187: 1.000 -1.000
- 46.75 / 188: 0.861 -1.122
- 47 / 189: 0.707 -1.225
- 47.25 / 190: 0.541 -1.307
- 47.5 / 191: 0.366 -1.366
- 47.75 / 192: 0.185 -1.402
- 48 / 193: 0.000 -1.414
- 48.25 / 194: -0.185 -1.402
- 48.5 / 195: -0.366 -1.366
- 48.75 / 196: -0.541 -1.307
- 49 / 197: -0.707 -1.225
- 49.25 / 198: -0.861 -1.122
- 49.5 / 199: -1.000 -1.000
- 49.75 / 200: -1.122 -0.861
- 50 / 201: -1.225 -0.707
- 50.25 / 202: -1.307 -0.541
- 50.5 / 203: -1.366 -0.366
- 50.75 / 204: -1.402 -0.185
- 51 / 205: -1.414 -0.000
- 51.25 / 206: -1.402 0.185
- 51.5 / 207: -1.366 0.366
- 51.75 / 208: -1.307 0.541
- 52 / 209: -1.225 0.707
- 52.25 / 210: -1.122 0.861
- 52.5 / 211: -1.000 1.000
- 52.75 / 212: -0.861 1.122
- 53 / 213: -0.707 1.225
- 53.25 / 214: -0.541 1.307
- 53.5 / 215: -0.366 1.366
- 53.75 / 216: -0.185 1.402
- 54 / 217: -0.000 1.414
- 54.25 / 218: 0.185 1.402
- 54.5 / 219: 0.366 1.366
- 54.75 / 220: 0.541 1.307
- 55 / 221: 0.707 1.225
- 55.25 / 222: 0.861 1.122
- 55.5 / 223: 1.000 1.000
- 55.75 / 224: 1.122 0.861
- 56 / 225: 1.225 0.707
- 56.25 / 226: 1.307 0.541
- 56.5 / 227: 1.366 0.366
- 56.75 / 228: 1.402 0.185
- 57 / 229: 1.414 0.000
- 57.25 / 230: 1.402 -0.185
- 57.5 / 231: 1.366 -0.366
- 57.75 / 232: 1.307 -0.541
- 58 / 233: 1.225 -0.707
- 58.25 / 234: 1.122 -0.861
- 58.5 / 235: 1.000 -1.000
- 58.75 / 236: 0.861 -1.122
- 59 / 237: 0.707 -1.225
- 59.25 / 238: 0.541 -1.307
- 59.5 / 239: 0.366 -1.366
- 59.75 / 240: 0.185 -1.402
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 240.0
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ -3.775E-15
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ -3.775E-15
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 240.0
! The sum over all significant EOFs of the outer product of
! EOF(i) and TAF(i) should return the zero-time-meaned data
@@ -66144,281 +65964,186 @@ list eofsvd_stat(space12)
1 / 1: 2.00 2.00 2.00
2 / 2: 50.00 50.00 0.00
3 / 3: 0.50 0.50 0.00
-list eofsvd_space(space12)
- VARIABLE : EOFSVD_SPACE(SPACE12)
- SUBSET : 3 by 3 points (X-T)
- 1 2 3
- 1 2 3
- 1 / 1: 0.0000 -0.7071 ....
- 2 / 2: -0.7071 -0.0000 ....
- 3 / 3: .... .... ....
-list eofsvd_tfunc(space12)
- VARIABLE : EOFSVD_TFUNC(SPACE12)
- SUBSET : 3 by 240 points (X-T)
- 1 2 3
- 1 2 3
- 0 / 1: -0.000 -1.414 ....
- 0.25 / 2: -0.185 -1.402 ....
- 0.5 / 3: -0.366 -1.366 ....
- 0.75 / 4: -0.541 -1.307 ....
- 1 / 5: -0.707 -1.225 ....
- 1.25 / 6: -0.861 -1.122 ....
- 1.5 / 7: -1.000 -1.000 ....
- 1.75 / 8: -1.122 -0.861 ....
- 2 / 9: -1.225 -0.707 ....
- 2.25 / 10: -1.307 -0.541 ....
- 2.5 / 11: -1.366 -0.366 ....
- 2.75 / 12: -1.402 -0.185 ....
- 3 / 13: -1.414 -0.000 ....
- 3.25 / 14: -1.402 0.185 ....
- 3.5 / 15: -1.366 0.366 ....
- 3.75 / 16: -1.307 0.541 ....
- 4 / 17: -1.225 0.707 ....
- 4.25 / 18: -1.122 0.861 ....
- 4.5 / 19: -1.000 1.000 ....
- 4.75 / 20: -0.861 1.122 ....
- 5 / 21: -0.707 1.225 ....
- 5.25 / 22: -0.541 1.307 ....
- 5.5 / 23: -0.366 1.366 ....
- 5.75 / 24: -0.185 1.402 ....
- 6 / 25: -0.000 1.414 ....
- 6.25 / 26: 0.185 1.402 ....
- 6.5 / 27: 0.366 1.366 ....
- 6.75 / 28: 0.541 1.307 ....
- 7 / 29: 0.707 1.225 ....
- 7.25 / 30: 0.861 1.122 ....
- 7.5 / 31: 1.000 1.000 ....
- 7.75 / 32: 1.122 0.861 ....
- 8 / 33: 1.225 0.707 ....
- 8.25 / 34: 1.307 0.541 ....
- 8.5 / 35: 1.366 0.366 ....
- 8.75 / 36: 1.402 0.185 ....
- 9 / 37: 1.414 0.000 ....
- 9.25 / 38: 1.402 -0.185 ....
- 9.5 / 39: 1.366 -0.366 ....
- 9.75 / 40: 1.307 -0.541 ....
- 10 / 41: 1.225 -0.707 ....
- 10.25 / 42: 1.122 -0.861 ....
- 10.5 / 43: 1.000 -1.000 ....
- 10.75 / 44: 0.861 -1.122 ....
- 11 / 45: 0.707 -1.225 ....
- 11.25 / 46: 0.541 -1.307 ....
- 11.5 / 47: 0.366 -1.366 ....
- 11.75 / 48: 0.185 -1.402 ....
- 12 / 49: 0.000 -1.414 ....
- 12.25 / 50: -0.185 -1.402 ....
- 12.5 / 51: -0.366 -1.366 ....
- 12.75 / 52: -0.541 -1.307 ....
- 13 / 53: -0.707 -1.225 ....
- 13.25 / 54: -0.861 -1.122 ....
- 13.5 / 55: -1.000 -1.000 ....
- 13.75 / 56: -1.122 -0.861 ....
- 14 / 57: -1.225 -0.707 ....
- 14.25 / 58: -1.307 -0.541 ....
- 14.5 / 59: -1.366 -0.366 ....
- 14.75 / 60: -1.402 -0.185 ....
- 15 / 61: -1.414 -0.000 ....
- 15.25 / 62: -1.402 0.185 ....
- 15.5 / 63: -1.366 0.366 ....
- 15.75 / 64: -1.307 0.541 ....
- 16 / 65: -1.225 0.707 ....
- 16.25 / 66: -1.122 0.861 ....
- 16.5 / 67: -1.000 1.000 ....
- 16.75 / 68: -0.861 1.122 ....
- 17 / 69: -0.707 1.225 ....
- 17.25 / 70: -0.541 1.307 ....
- 17.5 / 71: -0.366 1.366 ....
- 17.75 / 72: -0.185 1.402 ....
- 18 / 73: -0.000 1.414 ....
- 18.25 / 74: 0.185 1.402 ....
- 18.5 / 75: 0.366 1.366 ....
- 18.75 / 76: 0.541 1.307 ....
- 19 / 77: 0.707 1.225 ....
- 19.25 / 78: 0.861 1.122 ....
- 19.5 / 79: 1.000 1.000 ....
- 19.75 / 80: 1.122 0.861 ....
- 20 / 81: 1.225 0.707 ....
- 20.25 / 82: 1.307 0.541 ....
- 20.5 / 83: 1.366 0.366 ....
- 20.75 / 84: 1.402 0.185 ....
- 21 / 85: 1.414 0.000 ....
- 21.25 / 86: 1.402 -0.185 ....
- 21.5 / 87: 1.366 -0.366 ....
- 21.75 / 88: 1.307 -0.541 ....
- 22 / 89: 1.225 -0.707 ....
- 22.25 / 90: 1.122 -0.861 ....
- 22.5 / 91: 1.000 -1.000 ....
- 22.75 / 92: 0.861 -1.122 ....
- 23 / 93: 0.707 -1.225 ....
- 23.25 / 94: 0.541 -1.307 ....
- 23.5 / 95: 0.366 -1.366 ....
- 23.75 / 96: 0.185 -1.402 ....
- 24 / 97: 0.000 -1.414 ....
- 24.25 / 98: -0.185 -1.402 ....
- 24.5 / 99: -0.366 -1.366 ....
- 24.75 / 100: -0.541 -1.307 ....
- 25 / 101: -0.707 -1.225 ....
- 25.25 / 102: -0.861 -1.122 ....
- 25.5 / 103: -1.000 -1.000 ....
- 25.75 / 104: -1.122 -0.861 ....
- 26 / 105: -1.225 -0.707 ....
- 26.25 / 106: -1.307 -0.541 ....
- 26.5 / 107: -1.366 -0.366 ....
- 26.75 / 108: -1.402 -0.185 ....
- 27 / 109: -1.414 -0.000 ....
- 27.25 / 110: -1.402 0.185 ....
- 27.5 / 111: -1.366 0.366 ....
- 27.75 / 112: -1.307 0.541 ....
- 28 / 113: -1.225 0.707 ....
- 28.25 / 114: -1.122 0.861 ....
- 28.5 / 115: -1.000 1.000 ....
- 28.75 / 116: -0.861 1.122 ....
- 29 / 117: -0.707 1.225 ....
- 29.25 / 118: -0.541 1.307 ....
- 29.5 / 119: -0.366 1.366 ....
- 29.75 / 120: -0.185 1.402 ....
- 30 / 121: -0.000 1.414 ....
- 30.25 / 122: 0.185 1.402 ....
- 30.5 / 123: 0.366 1.366 ....
- 30.75 / 124: 0.541 1.307 ....
- 31 / 125: 0.707 1.225 ....
- 31.25 / 126: 0.861 1.122 ....
- 31.5 / 127: 1.000 1.000 ....
- 31.75 / 128: 1.122 0.861 ....
- 32 / 129: 1.225 0.707 ....
- 32.25 / 130: 1.307 0.541 ....
- 32.5 / 131: 1.366 0.366 ....
- 32.75 / 132: 1.402 0.185 ....
- 33 / 133: 1.414 -0.000 ....
- 33.25 / 134: 1.402 -0.185 ....
- 33.5 / 135: 1.366 -0.366 ....
- 33.75 / 136: 1.307 -0.541 ....
- 34 / 137: 1.225 -0.707 ....
- 34.25 / 138: 1.122 -0.861 ....
- 34.5 / 139: 1.000 -1.000 ....
- 34.75 / 140: 0.861 -1.122 ....
- 35 / 141: 0.707 -1.225 ....
- 35.25 / 142: 0.541 -1.307 ....
- 35.5 / 143: 0.366 -1.366 ....
- 35.75 / 144: 0.185 -1.402 ....
- 36 / 145: 0.000 -1.414 ....
- 36.25 / 146: -0.185 -1.402 ....
- 36.5 / 147: -0.366 -1.366 ....
- 36.75 / 148: -0.541 -1.307 ....
- 37 / 149: -0.707 -1.225 ....
- 37.25 / 150: -0.861 -1.122 ....
- 37.5 / 151: -1.000 -1.000 ....
- 37.75 / 152: -1.122 -0.861 ....
- 38 / 153: -1.225 -0.707 ....
- 38.25 / 154: -1.307 -0.541 ....
- 38.5 / 155: -1.366 -0.366 ....
- 38.75 / 156: -1.402 -0.185 ....
- 39 / 157: -1.414 -0.000 ....
- 39.25 / 158: -1.402 0.185 ....
- 39.5 / 159: -1.366 0.366 ....
- 39.75 / 160: -1.307 0.541 ....
- 40 / 161: -1.225 0.707 ....
- 40.25 / 162: -1.122 0.861 ....
- 40.5 / 163: -1.000 1.000 ....
- 40.75 / 164: -0.861 1.122 ....
- 41 / 165: -0.707 1.225 ....
- 41.25 / 166: -0.541 1.307 ....
- 41.5 / 167: -0.366 1.366 ....
- 41.75 / 168: -0.185 1.402 ....
- 42 / 169: -0.000 1.414 ....
- 42.25 / 170: 0.185 1.402 ....
- 42.5 / 171: 0.366 1.366 ....
- 42.75 / 172: 0.541 1.307 ....
- 43 / 173: 0.707 1.225 ....
- 43.25 / 174: 0.861 1.122 ....
- 43.5 / 175: 1.000 1.000 ....
- 43.75 / 176: 1.122 0.861 ....
- 44 / 177: 1.225 0.707 ....
- 44.25 / 178: 1.307 0.541 ....
- 44.5 / 179: 1.366 0.366 ....
- 44.75 / 180: 1.402 0.185 ....
- 45 / 181: 1.414 -0.000 ....
- 45.25 / 182: 1.402 -0.185 ....
- 45.5 / 183: 1.366 -0.366 ....
- 45.75 / 184: 1.307 -0.541 ....
- 46 / 185: 1.225 -0.707 ....
- 46.25 / 186: 1.122 -0.861 ....
- 46.5 / 187: 1.000 -1.000 ....
- 46.75 / 188: 0.861 -1.122 ....
- 47 / 189: 0.707 -1.225 ....
- 47.25 / 190: 0.541 -1.307 ....
- 47.5 / 191: 0.366 -1.366 ....
- 47.75 / 192: 0.185 -1.402 ....
- 48 / 193: 0.000 -1.414 ....
- 48.25 / 194: -0.185 -1.402 ....
- 48.5 / 195: -0.366 -1.366 ....
- 48.75 / 196: -0.541 -1.307 ....
- 49 / 197: -0.707 -1.225 ....
- 49.25 / 198: -0.861 -1.122 ....
- 49.5 / 199: -1.000 -1.000 ....
- 49.75 / 200: -1.122 -0.861 ....
- 50 / 201: -1.225 -0.707 ....
- 50.25 / 202: -1.307 -0.541 ....
- 50.5 / 203: -1.366 -0.366 ....
- 50.75 / 204: -1.402 -0.185 ....
- 51 / 205: -1.414 -0.000 ....
- 51.25 / 206: -1.402 0.185 ....
- 51.5 / 207: -1.366 0.366 ....
- 51.75 / 208: -1.307 0.541 ....
- 52 / 209: -1.225 0.707 ....
- 52.25 / 210: -1.122 0.861 ....
- 52.5 / 211: -1.000 1.000 ....
- 52.75 / 212: -0.861 1.122 ....
- 53 / 213: -0.707 1.225 ....
- 53.25 / 214: -0.541 1.307 ....
- 53.5 / 215: -0.366 1.366 ....
- 53.75 / 216: -0.185 1.402 ....
- 54 / 217: -0.000 1.414 ....
- 54.25 / 218: 0.185 1.402 ....
- 54.5 / 219: 0.366 1.366 ....
- 54.75 / 220: 0.541 1.307 ....
- 55 / 221: 0.707 1.225 ....
- 55.25 / 222: 0.861 1.122 ....
- 55.5 / 223: 1.000 1.000 ....
- 55.75 / 224: 1.122 0.861 ....
- 56 / 225: 1.225 0.707 ....
- 56.25 / 226: 1.307 0.541 ....
- 56.5 / 227: 1.366 0.366 ....
- 56.75 / 228: 1.402 0.185 ....
- 57 / 229: 1.414 0.000 ....
- 57.25 / 230: 1.402 -0.185 ....
- 57.5 / 231: 1.366 -0.366 ....
- 57.75 / 232: 1.307 -0.541 ....
- 58 / 233: 1.225 -0.707 ....
- 58.25 / 234: 1.122 -0.861 ....
- 58.5 / 235: 1.000 -1.000 ....
- 58.75 / 236: 0.861 -1.122 ....
- 59 / 237: 0.707 -1.225 ....
- 59.25 / 238: 0.541 -1.307 ....
- 59.5 / 239: 0.366 -1.366 ....
- 59.75 / 240: 0.185 -1.402 ....
+let eofs = eofsvd_space(space12[I=1:3])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 3 r 1 3 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 3 r 1 3 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 0.5000
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ 0.0000
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ 0.0000
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 0.5000
+
+let tafs = eofsvd_tfunc(space12[I=1:3])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 240.0
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ -3.775E-15
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ -3.775E-15
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 240.0
! If there are no complete time series, the functions should bail with an error
let spacegap = if L ne 2 then spacetime
set mode ignore
+
list eofsvd_stat(spacegap)
list eofsvd_space(spacegap)
list eofsvd_tfunc(spacegap)
-! clean-up
set mode/last ignore
-can var spacetime
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
+! -----------------------------------------------
+! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
-exit/script
+set mode ignore
+
+def axis /X=1:2:1 xaxis
+let spacetime = if (i eq 1) then cosT else sinT + 1
+
+show func eof_stat
+EOF_STAT(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data.
+! Run each of the eof functions and show the results.
+! Both are equally significant. Eigenvalues should be 0.5.
+! Other EOF descriptions do not divide the covariance
+! matrix by the number of time values, in which case the
+! the eigenvalues will be much larger, but still equal
+! to each other.
+list eof_stat(spacetime, 1.0)
+
+show func eof_space
+EOF_SPACE(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data
+! Ideally the vectors (0.0, sqrt(0.5)) and (sqrt(0.5), 0.0),
+! but might be mixed by rotation.
+! This is if the EOF functions are in units of the original data,
+! thus the eigenvectors times the square-root of the eigenvalue.
+! EOF vectors are always orthogonal to each other.
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 1 r 1 1 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+show func eof_tfunc
+EOF_TFUNC(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data
+! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
+! TAF vectors are always orthogonal to each other.
+let tafs = eof_tfunc(spacetime[I=1:2], 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 59.75 full
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+set mode/last ignore
+
+! The sum over all significant EOFs of the outer product of
+! EOF(i) and TAF(i) should return the zero-time-meaned data
+! (original data with the time-series mean subtracted to give
+! a zero mean for each time series).
+! In this case, EOF(1) o TAF(1) + EOF(2) o TAF(2) = (cosT, sinT)
+
+! clean-up
+set grid abstract
+can var /all
+can grid xytgrid
*** Running ferret script: bn_eof_simple2.jnl
! bn_eof_simple2
! Define a simple function with four known functions, two of which are degenerate.
@@ -66426,6 +66151,7 @@ exit/script
! 7/2012
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
+! 11/2017 - still try to test old eof functions, if they are re-implemented
! Define four locations.
def axis /X=1:2:1 xaxis
@@ -66469,7 +66195,7 @@ list eofsvd_stat(spacetime)
show func eofsvd_space
EOFSVD_SPACE(A)
- Return SVD EOF spacial fields from XYT field
+ Return SVD EOF spatial fields from XYT field
A: Variable in x,y,t; may be fcn of z,e,f
! Ideally:
! +- [ 0.35355, 0.0,
@@ -66484,19 +66210,56 @@ EOFSVD_SPACE(A)
! The norm^2 of an EOF should be the eigenvalue.
! The two EOFs should be orthogonal to each other.
! Rotation (mixing) of these two may occur.
-let eofs = eofsvd_space(spacetime)
-! T axis of eofsvd_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
- VARIABLE : EOFSVD_SPACE(SPACETIME)
- SUBSET : 2 by 2 by 2 points (X-Y-T)
- 1 2
- 1 2
- ---- L:1 T: 1
- 1 / 1: 0.0635 -0.3478
- 2 / 2: -0.3478 -0.0635
- ---- L:2 T: 2
- 1 / 1: 0.3478 0.0635
- 2 / 2: 0.0635 -0.3478
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 2 r 1 2 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 2 r 1 2 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ SUBSET : 2 points (Y)
+ X : 1
+ 1
+ 1
+ 1 / 1: 0.1250
+ 2 / 2: 0.1250
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ SUBSET : 2 points (Y)
+ X : 1
+ 1
+ 1
+ 1 / 1: -3.123E-17
+ 2 / 2: 2.082E-17
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ SUBSET : 2 points (Y)
+ X : 2
+ 2
+ 2
+ 1 / 1: -3.123E-17
+ 2 / 2: 2.082E-17
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ SUBSET : 2 points (Y)
+ X : 2
+ 2
+ 2
+ 1 / 1: 0.1250
+ 2 / 2: 0.1250
show func eofsvd_tfunc
EOFSVD_TFUNC(A)
@@ -66508,253 +66271,40 @@ EOFSVD_TFUNC(A)
! The norm^2 of a TAF should be the number of time values.
! The two TAFs should be orthogonal to each other.
! Rotation (mixing) of these two may occur.
-let tafs = eofsvd_tfunc(spacetime)
-! X axis of eofsvd_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
- VARIABLE : EOFSVD_TFUNC(SPACETIME)
- SUBSET : 2 by 240 points (X-T)
- 1 2
- 1 2
- 0 / 1: 0.254 1.391
- 0.1 / 2: 0.107 1.410
- 0.2 / 3: -0.041 1.414
- 0.3 / 4: -0.188 1.402
- 0.4 / 5: -0.334 1.374
- 0.5 / 6: -0.476 1.332
- 0.6 / 7: -0.612 1.275
- 0.7 / 8: -0.742 1.204
- 0.8 / 9: -0.864 1.120
- 0.9 / 10: -0.976 1.023
- 1 / 11: -1.078 0.916
- 1.1 / 12: -1.168 0.798
- 1.2 / 13: -1.245 0.672
- 1.3 / 14: -1.308 0.538
- 1.4 / 15: -1.357 0.398
- 1.5 / 16: -1.391 0.254
- 1.6 / 17: -1.410 0.107
- 1.7 / 18: -1.414 -0.041
- 1.8 / 19: -1.402 -0.188
- 1.9 / 20: -1.374 -0.334
- 2 / 21: -1.332 -0.476
- 2.1 / 22: -1.275 -0.612
- 2.2 / 23: -1.204 -0.742
- 2.3 / 24: -1.120 -0.864
- 2.4 / 25: -1.023 -0.976
- 2.5 / 26: -0.916 -1.078
- 2.6 / 27: -0.798 -1.168
- 2.7 / 28: -0.672 -1.245
- 2.8 / 29: -0.538 -1.308
- 2.9 / 30: -0.398 -1.357
- 3 / 31: -0.254 -1.391
- 3.1 / 32: -0.107 -1.410
- 3.2 / 33: 0.041 -1.414
- 3.3 / 34: 0.188 -1.402
- 3.4 / 35: 0.334 -1.374
- 3.5 / 36: 0.476 -1.332
- 3.6 / 37: 0.612 -1.275
- 3.7 / 38: 0.742 -1.204
- 3.8 / 39: 0.864 -1.120
- 3.9 / 40: 0.976 -1.023
- 4 / 41: 1.078 -0.916
- 4.1 / 42: 1.168 -0.798
- 4.2 / 43: 1.245 -0.672
- 4.3 / 44: 1.308 -0.538
- 4.4 / 45: 1.357 -0.398
- 4.5 / 46: 1.391 -0.254
- 4.6 / 47: 1.410 -0.107
- 4.7 / 48: 1.414 0.041
- 4.8 / 49: 1.402 0.188
- 4.9 / 50: 1.374 0.334
- 5 / 51: 1.332 0.476
- 5.1 / 52: 1.275 0.612
- 5.2 / 53: 1.204 0.742
- 5.3 / 54: 1.120 0.864
- 5.4 / 55: 1.023 0.976
- 5.5 / 56: 0.916 1.078
- 5.6 / 57: 0.798 1.168
- 5.7 / 58: 0.672 1.245
- 5.8 / 59: 0.538 1.308
- 5.9 / 60: 0.398 1.357
- 6 / 61: 0.254 1.391
- 6.1 / 62: 0.107 1.410
- 6.2 / 63: -0.041 1.414
- 6.3 / 64: -0.188 1.402
- 6.4 / 65: -0.334 1.374
- 6.5 / 66: -0.476 1.332
- 6.6 / 67: -0.612 1.275
- 6.7 / 68: -0.742 1.204
- 6.8 / 69: -0.864 1.120
- 6.9 / 70: -0.976 1.023
- 7 / 71: -1.078 0.916
- 7.1 / 72: -1.168 0.798
- 7.2 / 73: -1.245 0.672
- 7.3 / 74: -1.308 0.538
- 7.4 / 75: -1.357 0.398
- 7.5 / 76: -1.391 0.254
- 7.6 / 77: -1.410 0.107
- 7.7 / 78: -1.414 -0.041
- 7.8 / 79: -1.402 -0.188
- 7.9 / 80: -1.374 -0.334
- 8 / 81: -1.332 -0.476
- 8.1 / 82: -1.275 -0.612
- 8.2 / 83: -1.204 -0.742
- 8.3 / 84: -1.120 -0.864
- 8.4 / 85: -1.023 -0.976
- 8.5 / 86: -0.916 -1.078
- 8.6 / 87: -0.798 -1.168
- 8.7 / 88: -0.672 -1.245
- 8.8 / 89: -0.538 -1.308
- 8.9 / 90: -0.398 -1.357
- 9 / 91: -0.254 -1.391
- 9.1 / 92: -0.107 -1.410
- 9.2 / 93: 0.041 -1.414
- 9.3 / 94: 0.188 -1.402
- 9.4 / 95: 0.334 -1.374
- 9.5 / 96: 0.476 -1.332
- 9.6 / 97: 0.612 -1.275
- 9.7 / 98: 0.742 -1.204
- 9.8 / 99: 0.864 -1.120
- 9.9 / 100: 0.976 -1.023
- 10 / 101: 1.078 -0.916
- 10.1 / 102: 1.168 -0.798
- 10.2 / 103: 1.245 -0.672
- 10.3 / 104: 1.308 -0.538
- 10.4 / 105: 1.357 -0.398
- 10.5 / 106: 1.391 -0.254
- 10.6 / 107: 1.410 -0.107
- 10.7 / 108: 1.414 0.041
- 10.8 / 109: 1.402 0.188
- 10.9 / 110: 1.374 0.334
- 11 / 111: 1.332 0.476
- 11.1 / 112: 1.275 0.612
- 11.2 / 113: 1.204 0.742
- 11.3 / 114: 1.120 0.864
- 11.4 / 115: 1.023 0.976
- 11.5 / 116: 0.916 1.078
- 11.6 / 117: 0.798 1.168
- 11.7 / 118: 0.672 1.245
- 11.8 / 119: 0.538 1.308
- 11.9 / 120: 0.398 1.357
- 12 / 121: 0.254 1.391
- 12.1 / 122: 0.107 1.410
- 12.2 / 123: -0.041 1.414
- 12.3 / 124: -0.188 1.402
- 12.4 / 125: -0.334 1.374
- 12.5 / 126: -0.476 1.332
- 12.6 / 127: -0.612 1.275
- 12.7 / 128: -0.742 1.204
- 12.8 / 129: -0.864 1.120
- 12.9 / 130: -0.976 1.023
- 13 / 131: -1.078 0.916
- 13.1 / 132: -1.168 0.798
- 13.2 / 133: -1.245 0.672
- 13.3 / 134: -1.308 0.538
- 13.4 / 135: -1.357 0.398
- 13.5 / 136: -1.391 0.254
- 13.6 / 137: -1.410 0.107
- 13.7 / 138: -1.414 -0.041
- 13.8 / 139: -1.402 -0.188
- 13.9 / 140: -1.374 -0.334
- 14 / 141: -1.332 -0.476
- 14.1 / 142: -1.275 -0.612
- 14.2 / 143: -1.204 -0.742
- 14.3 / 144: -1.120 -0.864
- 14.4 / 145: -1.023 -0.976
- 14.5 / 146: -0.916 -1.078
- 14.6 / 147: -0.798 -1.168
- 14.7 / 148: -0.672 -1.245
- 14.8 / 149: -0.538 -1.308
- 14.9 / 150: -0.398 -1.357
- 15 / 151: -0.254 -1.391
- 15.1 / 152: -0.107 -1.410
- 15.2 / 153: 0.041 -1.414
- 15.3 / 154: 0.188 -1.402
- 15.4 / 155: 0.334 -1.374
- 15.5 / 156: 0.476 -1.332
- 15.6 / 157: 0.612 -1.275
- 15.7 / 158: 0.742 -1.204
- 15.8 / 159: 0.864 -1.120
- 15.9 / 160: 0.976 -1.023
- 16 / 161: 1.078 -0.916
- 16.1 / 162: 1.168 -0.798
- 16.2 / 163: 1.245 -0.672
- 16.3 / 164: 1.308 -0.538
- 16.4 / 165: 1.357 -0.398
- 16.5 / 166: 1.391 -0.254
- 16.6 / 167: 1.410 -0.107
- 16.7 / 168: 1.414 0.041
- 16.8 / 169: 1.402 0.188
- 16.9 / 170: 1.374 0.334
- 17 / 171: 1.332 0.476
- 17.1 / 172: 1.275 0.612
- 17.2 / 173: 1.204 0.742
- 17.3 / 174: 1.120 0.864
- 17.4 / 175: 1.023 0.976
- 17.5 / 176: 0.916 1.078
- 17.6 / 177: 0.798 1.168
- 17.7 / 178: 0.672 1.245
- 17.8 / 179: 0.538 1.308
- 17.9 / 180: 0.398 1.357
- 18 / 181: 0.254 1.391
- 18.1 / 182: 0.107 1.410
- 18.2 / 183: -0.041 1.414
- 18.3 / 184: -0.188 1.402
- 18.4 / 185: -0.334 1.374
- 18.5 / 186: -0.476 1.332
- 18.6 / 187: -0.612 1.275
- 18.7 / 188: -0.742 1.204
- 18.8 / 189: -0.864 1.120
- 18.9 / 190: -0.976 1.023
- 19 / 191: -1.078 0.916
- 19.1 / 192: -1.168 0.798
- 19.2 / 193: -1.245 0.672
- 19.3 / 194: -1.308 0.538
- 19.4 / 195: -1.357 0.398
- 19.5 / 196: -1.391 0.254
- 19.6 / 197: -1.410 0.107
- 19.7 / 198: -1.414 -0.041
- 19.8 / 199: -1.402 -0.188
- 19.9 / 200: -1.374 -0.334
- 20 / 201: -1.332 -0.476
- 20.1 / 202: -1.275 -0.612
- 20.2 / 203: -1.204 -0.742
- 20.3 / 204: -1.120 -0.864
- 20.4 / 205: -1.023 -0.976
- 20.5 / 206: -0.916 -1.078
- 20.6 / 207: -0.798 -1.168
- 20.7 / 208: -0.672 -1.245
- 20.8 / 209: -0.538 -1.308
- 20.9 / 210: -0.398 -1.357
- 21 / 211: -0.254 -1.391
- 21.1 / 212: -0.107 -1.410
- 21.2 / 213: 0.041 -1.414
- 21.3 / 214: 0.188 -1.402
- 21.4 / 215: 0.334 -1.374
- 21.5 / 216: 0.476 -1.332
- 21.6 / 217: 0.612 -1.275
- 21.7 / 218: 0.742 -1.204
- 21.8 / 219: 0.864 -1.120
- 21.9 / 220: 0.976 -1.023
- 22 / 221: 1.078 -0.916
- 22.1 / 222: 1.168 -0.798
- 22.2 / 223: 1.245 -0.672
- 22.3 / 224: 1.308 -0.538
- 22.4 / 225: 1.357 -0.398
- 22.5 / 226: 1.391 -0.254
- 22.6 / 227: 1.410 -0.107
- 22.7 / 228: 1.414 0.041
- 22.8 / 229: 1.402 0.188
- 22.9 / 230: 1.374 0.334
- 23 / 231: 1.332 0.476
- 23.1 / 232: 1.275 0.612
- 23.2 / 233: 1.204 0.742
- 23.3 / 234: 1.120 0.864
- 23.4 / 235: 1.023 0.976
- 23.5 / 236: 0.916 1.078
- 23.6 / 237: 0.798 1.168
- 23.7 / 238: 0.672 1.245
- 23.8 / 239: 0.538 1.308
- 23.9 / 240: 0.398 1.357
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 23.9 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 23.9 full
+list dot_t(v1, v1)
+ VARIABLE : DOT_T(V1, V1)
+ X : 1
+ 240.0
+list dot_t(v1, v2)
+ VARIABLE : DOT_T(V1, V2)
+ X : 1
+ -5.285E-14
+list dot_t(v2, v1)
+ VARIABLE : DOT_T(V2, V1)
+ X : 2
+ -5.285E-14
+list dot_t(v2, v2)
+ VARIABLE : DOT_T(V2, V2)
+ X : 2
+ 240.0
! Explanation:
! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
@@ -66764,19 +66314,110 @@ list tafs[I=1:2]
! = (0.0, cosT * sinT, cosT * sinT, 0.0)
! Adding these three gives the original data
+! -----------------------------------------------
+! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
+
+set mode ignore
+
+show func eof_stat
+EOF_STAT(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data.
+! Two are of equal significance with eigenvalues of 0.25.
+! Two are negligable (eigenvalues of zero or close to it).
+list eof_stat(spacetime, 1.0)
+
+show func eof_space
+EOF_SPACE(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data
+! Ideally:
+! +- [ 0.35355, 0.0,
+! 0.0, -0.35355 ] (norm^2 = 0.25)
+! corresponding to 0.25 * sqrt(2.0) * (cosT^2 - sinT^2)
+! = 0.25 * sqrt(2.0) * cos2T
+! and
+! +- [ 0.0, 0.35355,
+! 0.35355, 0.0 ] (norm^2 = 0.25)
+! corresponding to 0.25 * sqrt(2.0) * 2 * cosT * sinT
+! = 0.25 * sqrt(2.0) * sin2T
+! The norm^2 of an EOF should be the eigenvalue.
+! The two EOFs should be orthogonal to each other.
+! Rotation (mixing) of these two may occur.
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 2 r 1 2 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+let v2 = eofs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 2 r 1 2 1 pt
+ YAXIS Y 2 r 1 2 full
+ normal Z
+ ABSTRACT T 99999999 r 1 1.E+08 (axis from grid-changing func)
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+show func eof_tfunc
+EOF_TFUNC(A,frac_timeser)
+ Function NOT AVAILABLE in this Ferret version
+ A: Variable in x,y,t; may be fcn of z,e,f
+ frac_timeser: Use only those time series with this fraction valid data
+! Ideally:
+! +- sqrt(2.0) * cos2T (norm^2 = 240)
+! +- sqrt(2.0) * sin2T (norm^2 = 240)
+! The norm^2 of a TAF should be the number of time values.
+! The two TAFs should be orthogonal to each other.
+! Rotation (mixing) of these two may occur.
+let tafs = eof_tfunc(spacetime, 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 23.9 full
+let v2 = tafs[I=2]
+show grid v2
+ GRID (G###)
+ name axis # pts start end subset
+ ABSTRACT X 99999999 r 1 1.E+08 (axis from grid-changing func)
+ normal Y
+ normal Z
+ TAXIS T 240 r 0 23.9 full
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+! Explanation:
+! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
+! EOF1 * TAF1 = (0.5 * cos2T, 0.0, 0.0, -0.5 * cos2T)
+! = (cosT^2 - 0.5, 0.0, 0.0, sinT^2 - 0.5)
+ ! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
+! = (0.0, cosT * sinT, cosT * sinT, 0.0)
+! Adding these three gives the original data
+
+set mode/last ignore
+
! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
set grid abstract
+can var /all
can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
-exit/script
*** Running ferret script: bn_interpolate_6d.jnl
! bn_interpolate_6d.JNL
! benchmark interpolation along various axes
@@ -68637,7 +68278,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1]
TIME: 15-MAR-1983 10:00
E: 3
F: 7
- DATA SET: ./6dfile.nc
+ DATA SET: ./data/6dfile.nc
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 0
@@ -68654,7 +68295,7 @@ stat/k=1/l=1/j=40/i=3/M=3/N=4/d=2 temp[d=1,g=u]
TIME: 15-MAR-1983 10:00
E: 3
F: 7
- DATA SET: ./6dfile.nc
+ DATA SET: ./data/6dfile.nc
Total # of data points: 1 (1*1*1*1*1*1)
# flagged as bad data: 0
@@ -69223,7 +68864,7 @@ use 6dfile
list/i=1/j=15/k=1/l=1/n=1 temp, ereverse(temp)
WARNING: Listed variables have ambiguous coordinates on axes: E
- DATA SET: ./6dfile.nc
+ DATA SET: ./data/6dfile.nc
LONGITUDE: 160.5W
LATITUDE: 5.5S
DEPTH (m): 5
@@ -69239,7 +68880,7 @@ M / 4: 33.75 31.75
M / 5: 34.75 30.75
list/i=1/j=15/k=1/l=1/m=1 temp, freverse(temp)
WARNING: Listed variables have ambiguous coordinates on axes: F
- DATA SET: ./6dfile.nc
+ DATA SET: ./data/6dfile.nc
LONGITUDE: 160.5W
LATITUDE: 5.5S
DEPTH (m): 5
@@ -69413,7 +69054,7 @@ stat temp[g=g5day] - temp[g=g5day at ave]
TIME: 1982
E: 1 to 2
FORECAST: 1982 to 1982
- DATA SET: ./gtsa056_1_ef.nc
+ DATA SET: ./data/gtsa056_1_ef.nc
Total # of data points: 120 (5*6*1*1*2*2)
# flagged as bad data: 0
@@ -70224,17 +69865,17 @@ all data in memory:
! 12/15 now do again adding COADS to de-align toe dset #s from the sequence #s
cancel data/all
- canceling dset ./ens1.nc
- canceling dset ./ens2.nc
- canceling dset ./ens3.nc
- canceling dset ./ens4.nc
+ canceling dset ./data/ens1.nc
+ canceling dset ./data/ens2.nc
+ canceling dset ./data/ens3.nc
+ canceling dset ./data/ens4.nc
use coads_climatology
use ens1, ens2, ens3, ens4
define data/agg/E/hide fourfiles = ens1, ens3, ens2, ens4
! confirm that it isn't COADS that got hidden
show data
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -70243,14 +69884,14 @@ show data
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
cancel data fourfiles
- canceling dset ./ens1.nc
- canceling dset ./ens3.nc
- canceling dset ./ens2.nc
- canceling dset ./ens4.nc
+ canceling dset ./data/ens1.nc
+ canceling dset ./data/ens3.nc
+ canceling dset ./data/ens2.nc
+ canceling dset ./data/ens4.nc
canceling dset fourfiles
show data/brief/all/hidden
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
! Create airt in the other datasets by LET/D definitions.
use ens1, ens2, ens3, ens4
@@ -70330,10 +69971,10 @@ show data/files fourfiles_gap
AIRT AIR TEMPERATURE 1:10 1:9 ... 1:12 1:4 ...
Member datasets:
- 7.1: ./ens1.nc
+ 7.1: ./data/ens1.nc
7.2: (dummy)
- 7.3: ./ens3.nc
- 7.4: ./ens4.nc
+ 7.3: ./data/ens3.nc
+ 7.4: ./data/ens4.nc
list/i=3 airt[T=@ave]
getgrid EX#1 C: 5 dset: 7 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G###) COADSX116_COADSY52_6NORMAL TIME1 ENSEMBLE NORMAL
@@ -70415,13 +70056,13 @@ let/d=2/units="`vin,return=units`"/title="`vin,return=title`" \
show data
currently SET data sets:
- 1> ./coads_uw.nc
+ 1> ./data/coads_uw.nc
name title I J K L
UWND ZONAL WIND 1:30 1:30 ... 1:12
VWND MERIDIONAL WIND 1:30 1:30 ... 1:12
SPEH SPECIFIC HUMIDITY 1:30 1:30 ... 1:12
- 2> ./navy_uw.nc (default)
+ 2> ./data/navy_uw.nc (default)
name title I J K L
UIN ZONAL WIND 1:30 1:30 ... 1:30
VIN MERIDIONAL WIND 1:30 1:30 ... 1:30
@@ -70462,14 +70103,14 @@ list/l=3/y=30/x=-59:-51 uwnd[d=1], uwnd[d=2], uwnd[d=3,e=1], uwnd[d=3,e=2], uwnd
! Use the other order. As long as we have a file variable, we're ok
show data/brief ! see what is *not* hidden
currently SET data sets:
- 1> ./coads_uw.nc
- 2> ./navy_uw.nc
+ 1> ./data/coads_uw.nc
+ 2> ./data/navy_uw.nc
3> windy (default) Ensemble aggregation
cancel data 3
show data/brief ! see what is *not* hidden
currently SET data sets:
- 1> ./coads_uw.nc
- 2> ./navy_uw.nc
+ 1> ./data/coads_uw.nc
+ 2> ./data/navy_uw.nc
! Define the ensemble dataset
ensemble windy = 2,1
@@ -70559,32 +70200,32 @@ ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3,
! should just show the ensemble set. Members are hidden.
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
6> fourfiles (default) Ensemble aggregation
! If ask for a member set by name or number, do show it
show data/brief 2
currently SET data sets:
- 2> ./ens1.nc
+ 2> ./data/ens1.nc
show data/brief ens3
currently SET data sets:
- 4> ./ens3.nc
+ 4> ./data/ens3.nc
! should show all members plus ensemble
show data/brief/hidden
currently SET data sets:
- 1> ./coads_climatology.cdf
- 2> ./ens1.nc
- 3> ./ens2.nc
- 4> ./ens3.nc
- 5> ./ens4.nc
+ 1> ./data/coads_climatology.cdf
+ 2> ./data/ens1.nc
+ 3> ./data/ens2.nc
+ 4> ./data/ens3.nc
+ 5> ./data/ens4.nc
6> fourfiles (default) Ensemble aggregation
! Since the members were hidden, they get deleted with the aggregation
cancel data fourfiles
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
cancel data/all
! Cancel a member, then the ensemble gets canceled.
@@ -70594,16 +70235,16 @@ use ens1, ens2, ens3, ens4
ensemble/HIDE/title="uvars in dset 2" my_ens = 2,3
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf
- 4> ./ens3.nc
- 5> ./ens4.nc
+ 1> ./data/coads_climatology.cdf
+ 4> ./data/ens3.nc
+ 5> ./data/ens4.nc
6> my_ens (default) Ensemble aggregation
cancel data ens2
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf
- 4> ./ens3.nc
- 5> ./ens4.nc
+ 1> ./data/coads_climatology.cdf
+ 4> ./data/ens3.nc
+ 5> ./data/ens4.nc
! Cancel the ensemble, then hidden members get canceled too
@@ -70613,14 +70254,14 @@ ensemble/HIDE/title="uvars in dset 2" my_ens = 2,3,4,5
! members hidden, showing only ensemble.
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
6> my_ens (default) Ensemble aggregation
cancel data my_ens
! Cancel ensemble dataset: hidden members deleted
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
! Define several ensembles with /HIDE
ensemble/HIDE/title="ensemble with hidden members" fourfiles = ens1, ens2, ens3, ens4
@@ -70630,28 +70271,28 @@ ensemble/HIDE/title="ensemble with hidden members" more = ens2, ens3, ens4
! Shows all the ensembles
show data/brief/files
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
6> fourfiles Ensemble aggregation
Member datasets:
- 6.1: ./ens1.nc
- 6.2: ./ens2.nc
- 6.3: ./ens3.nc
- 6.4: ./ens4.nc
+ 6.1: ./data/ens1.nc
+ 6.2: ./data/ens2.nc
+ 6.3: ./data/ens3.nc
+ 6.4: ./data/ens4.nc
7> some Ensemble aggregation
Member datasets:
- 7.1: ./ens1.nc
- 7.2: ./ens2.nc
+ 7.1: ./data/ens1.nc
+ 7.2: ./data/ens2.nc
8> more (default) Ensemble aggregation
Member datasets:
- 8.1: ./ens2.nc
- 8.2: ./ens3.nc
- 8.3: ./ens4.nc
+ 8.1: ./data/ens2.nc
+ 8.2: ./data/ens3.nc
+ 8.3: ./data/ens4.nc
! Cancel a member of all the ensembles. All the ensembles get deleted.
cancel data ens2
show data/brief
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
*** Running ferret script: bn_6d_lab_mode.jnl
! bn_6d_lab_mode.jnl
@@ -70665,7 +70306,7 @@ use gt4d011
set mode 6d_lab ! this is the default setting
show data
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -70679,7 +70320,7 @@ show data
cancel mode 6d_lab
show data
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -70722,7 +70363,7 @@ stat temp
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
E: N/A
F: N/A
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 99000 (18*22*10*25*1*1)
# flagged as bad data: 0
@@ -70738,7 +70379,7 @@ stat temp
LATITUDE: 3.7S to 3.7N
DEPTH (m): 0 to 100
TIME: 14-AUG-1982 11:00 to 13-JAN-1983 13:00
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
Total # of data points: 99000 (18*22*10*25)
# flagged as bad data: 0
@@ -70835,7 +70476,7 @@ GO err681_dims_direction
use dims_not_coord
sh dat
currently SET data sets:
- 1> ./dims_not_coord.nc (default)
+ 1> ./data/dims_not_coord.nc (default)
name title I J K L
U zonal current 1:4 1:7 1:1 ...
LON_C uv longitude 1:4 1:7 ... ...
@@ -71017,7 +70658,7 @@ GO err682_axis_no_clue
use xsz.nc
sh dat
currently SET data sets:
- 1> ./xsz.nc (default)
+ 1> ./data/xsz.nc (default)
name title I J K L
TEMP TEMPERATURE 1:5 1:7 1:3 ...
@@ -71180,7 +70821,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71238,7 +70879,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71286,7 +70927,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71334,7 +70975,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71374,7 +71015,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71415,7 +71056,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71485,7 +71126,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71538,7 +71179,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71602,7 +71243,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71646,7 +71287,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71690,7 +71331,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71734,7 +71375,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71775,7 +71416,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -71965,7 +71606,7 @@ ppl ribbon/over
use coads_clim_4digit.des
sh dat
currently SET data sets:
- 1> ./coads_clim_4digit.des (default)
+ 1> ./data/coads_clim_4digit.des (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:4 1:4 ... 1:6
@@ -72006,7 +71647,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
@@ -72047,7 +71688,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
@@ -72098,7 +71739,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
@@ -72146,7 +71787,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -72172,7 +71813,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -72198,7 +71839,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
@@ -72474,7 +72115,7 @@ GO err684_delimited_precision
! Data has numeric, longitude, and latitude values needing double precision.
! The seconds portion of time is also now read with double precision
-sp cat delim_prec.dat
+sp cat data/delim_prec.dat
734654.0000 330.1234500E 42.00001000N 00:00:1.00000001
734654.0104 330.1234600E 42.00004000N 00:00:1.00000003
734654.0208 330.1234700E 42.00006000N 00:00:1.00000007
@@ -72483,7 +72124,7 @@ sp cat delim_prec.dat
! Delimited read, automatically detect data types
set data/ez/format=delim/del=" " delim_prec.dat
list/i=1:5/prec=10 v1,v2,v3,v4
- DATA SET: ./delim_prec.dat
+ DATA SET: ./data/delim_prec.dat
X: 0.5 to 4.5
Column 1: V1
Column 2: V2 is V2 (degrees_east)(Longitude)
@@ -72499,7 +72140,7 @@ list/i=1:5/prec=10 v1,v2,v3,v4
can dat/all
set data/ez/format=delim/del=" "/var="day,lon,lat,tim"/type="numeric,longitude,latitude,time" delim_prec.dat
list/prec=10 day, lon, lat, tim
- DATA SET: ./delim_prec.dat
+ DATA SET: ./data/delim_prec.dat
X: 0.5 to 4.5
Column 1: DAY is day
Column 2: LON is lon (degrees_east)(Longitude)
@@ -72638,7 +72279,7 @@ variables:
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -72667,7 +72308,7 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -72718,7 +72359,7 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -72812,7 +72453,7 @@ GO err684_FillValue_xml
use fill_value_int.nc
sh dat/var/xml
<datasets>
-<dataset name="./fill_value_int.nc" default="true">
+<dataset name="./data/fill_value_int.nc" default="true">
<title>INT variable with _FillValue -2147483647</title>
<var name="A_dd">
<attribute name="units" type="char">
@@ -73164,7 +72805,7 @@ define grid/x=lon_ax/y=lat_ax/z=zax three_d_grd
use dsg.nc
sh dat
currently SET data sets:
- 1> ./dsg.nc (default)
+ 1> ./data/dsg.nc (default)
name title I J K L
ROWSIZE number of obs for this profile ... ... ... ... 1:3 ...
PROFILE profile ID: Cruise and Station ... ... ... ... 1:3 ...
@@ -73177,7 +72818,7 @@ sh dat
SAL sal 1:34 ... ... ...
sh att profile
- attributes for dataset: ./dsg.nc
+ attributes for dataset: ./data/dsg.nc
profile.missing_value = -1.E+34
profile._FillValue = -1.E+34
profile.long_name = profile ID: Cruise and Station
@@ -73209,7 +72850,7 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
sh dat 2
currently SET data sets:
- 2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ 2> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
name title I J K L
PROF Prof ... ... ... ... 1:21 ...
TIME Time ... ... ... ... 1:21 ...
@@ -73221,7 +72862,7 @@ sh dat 2
PCO2 PCO2 1:373 ... ... ...
sh att (profile)
- attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ attributes for dataset: ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
(profile)._FillValue = -1.E+34
(profile).actual_range = 70, 90
(profile).cf_role = profile_id
@@ -73295,7 +72936,7 @@ variables:
// global attributes:
:history = "WKD MON DD HH:MM:SS YYYY: ncks -h -A -h z1.nc append_to_this.nc\n",
- "FERRET V7.21 DD-MON-YY" ;
+ "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
:NCO = "4.4.4" ;
}
@@ -73326,7 +72967,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -73357,7 +72998,7 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -73371,7 +73012,7 @@ data:
use gappy_bounds.nc
sh dat
currently SET data sets:
- 1> ./gappy_bounds.nc (default)
+ 1> ./data/gappy_bounds.nc (default)
name title I J K L
A SST[X=150:180 at AVE,Y=-10:0 at AVE] ... ... ... 1:6
@@ -73379,7 +73020,7 @@ sh dat
! See the bounds attribute on the t axis
sh dat/att
currently SET data sets:
- 1> ./gappy_bounds.nc (default)
+ 1> ./data/gappy_bounds.nc (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -73420,7 +73061,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -73448,7 +73089,7 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -73464,7 +73105,7 @@ variables:
use write_int_att.nc
sh att mhchla
- attributes for dataset: ./write_int_att.nc
+ attributes for dataset: ./data/write_int_att.nc
MHCHLA.missing_value = -9999999
MHCHLA._FillValue = -9999999
MHCHLA.actual_range = 0.00049, 91.76669
@@ -74887,7 +74528,7 @@ GO err685_lowercaseAxis
use lowercaseTime.nc
sh dat
currently SET data sets:
- 1> ./lowercaseTime.nc (default)
+ 1> ./data/lowercaseTime.nc (default)
name title I J K L
AA ... ... ... 1:15
BB ... ... ... 1:8
@@ -74962,16 +74603,16 @@ GO err685_use_no_extension
! but .des was not being tried.
! The directory contains files with all three extensions
-sp ls duplicate.*
-duplicate.cdf
-duplicate.des
-duplicate.nc
+sp ls data/duplicate.*
+data/duplicate.cdf
+data/duplicate.des
+data/duplicate.nc
! The one that's used is .nc
use duplicate
sh dat
currently SET data sets:
- 1> ./duplicate.nc (default)
+ 1> ./data/duplicate.nc (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:1 1:10 ... 1:3
@@ -75155,7 +74796,7 @@ variables:
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -75178,7 +74819,7 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -75397,7 +75038,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -75427,7 +75068,7 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -75448,7 +75089,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -75469,7 +75110,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -75491,7 +75132,7 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -75537,14 +75178,14 @@ GO err686_redef_ascii_att
columns/delim=" " EZ.DAT
sh att v1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
V1.long_name = V1
V1.missing_value = -1.E+34
! A new attribuge causes no problems
define att/output v1.comment = "First var from EZ.DAT"
sh att v1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
V1.long_name = V1
V1.missing_value = -1.E+34
V1.comment = First var from EZ.DAT
@@ -75559,7 +75200,7 @@ define att/output v1.units="km"
define att/output v1.units="meters"
sh att v1
- attributes for dataset: ./EZ.DAT
+ attributes for dataset: ./data/EZ.DAT
V1.long_name = vee one
V1.missing_value = -1.E+34
V1.comment = First var from EZ.DAT
@@ -75618,7 +75259,7 @@ set var/name=b a
set var/name=temp salt
show dat
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -75633,7 +75274,7 @@ show dat
set var/name=salinity salt
show dat
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALINITY (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -75653,7 +75294,7 @@ set var/name=psi myvar
set var/name=diff myvar
show dat
currently SET data sets:
- 1> ./gt4d011.cdf (default)
+ 1> ./data/gt4d011.cdf (default)
name title I J K L
TEMP TEMPERATURE 91:108 35:56 1:10 1:25
SALINITY (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25
@@ -75679,7 +75320,7 @@ SET MODE/LAST ignore
use badbounds.nc
show data
currently SET data sets:
- 1> ./badbounds.nc (default)
+ 1> ./data/badbounds.nc (default)
name title I J K L
MONTH_IRREG_BNDS
1:2 ... ... 1:12
@@ -75723,8 +75364,8 @@ LIST/nohead/norow $1[t=-5:9@$2] ! neg/pos t endpoints
!-> LIST/nohead/norow tvar[t=-5:9 at ave]
2.000
-! Exit_GO
-! Exit_GO
+! Exit_GO
+! Exit_GO
! Inside a REPEAT
define symbol ok = 0
@@ -75740,7 +75381,7 @@ repeat/L=1:3 (if ($ok) then go bn_shortgo; def sym ok = `($ok)+1`)
! short script for bn_enter_exit_GO
plot/i=1:15/color=red/thick i
-! Exit_GO
+! Exit_GO
!-> def sym ok = 2
!-> REPEAT: L=3
!-> if 2 then go bn_shortgo
@@ -75749,7 +75390,7 @@ plot/i=1:15/color=red/thick i
! short script for bn_enter_exit_GO
plot/i=1:15/color=red/thick i
-! Exit_GO
+! Exit_GO
!-> def sym ok = 3
cancel redirect
@@ -75904,7 +75545,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -75921,7 +75562,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -75938,7 +75579,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
@@ -76247,7 +75888,7 @@ set mode ignore
! caused Ferret to mis-read the time axis
use badbounds_even.nc
list var, tbox[gt=var]
- DATA SET: ./badbounds_even.nc
+ DATA SET: ./data/badbounds_even.nc
TIME: 03-JAN-2000 12:00 to 02-FEB-2000 12:00
Column 1: VAR is T (My Variable)
Column 2: TBOX is TBOX (axis TAX_BB_PTSPAC)
@@ -76264,7 +75905,7 @@ list var, tbox[gt=var]
! caused Ferret to mis-read the time axis
use badbounds_non_enclose
list var, tbox[gt=var]
- DATA SET: ./badbounds_non_enclose.nc
+ DATA SET: ./data/badbounds_non_enclose.nc
TIME: 03-JAN-2000 12:00 to 02-FEB-2000 12:00
Column 1: VAR is T (My Variable)
Column 2: TBOX is TBOX (axis TAX_BB_EVEN_NOENC)
@@ -76280,7 +75921,7 @@ list var, tbox[gt=var]
! spaced, no point-spacing attribute.
use badbounds_uneven
list var, tbox[gt=var]
- DATA SET: ./badbounds_uneven.nc
+ DATA SET: ./data/badbounds_uneven.nc
TIME: 02-JAN-2000 12:00 to 02-FEB-2000 12:00
Column 1: VAR is T (My Variable)
Column 2: TBOX is TBOX (axis TAX_BB_IRR)
@@ -76390,7 +76031,7 @@ use maize_1.nc, maize_2.nc, maize_3.nc
! Note the _FillValue, flag
sho att maize_yield
- attributes for dataset: ./maize_3.nc
+ attributes for dataset: ./data/maize_3.nc
MAIZE_YIELD._FillValue = 9.96921E+36
MAIZE_YIELD.long_name = Maize harvest
MAIZE_YIELD.units = kgC.m-2.yr-1
@@ -76586,7 +76227,7 @@ let/d=`sst,r=dsetnum` a = 1
!-> DEFINE VARIABLE/d=1 a = 1
sh dat
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
------------------------------
@@ -77118,7 +76759,7 @@ set mode/last ignore
! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
sp rm test_save_dsg.nc
-sp cp test_save_dsg_in.nc test_save_dsg.nc
+sp cp data/test_save_dsg_in.nc test_save_dsg.nc
use test_save_dsg.nc
@@ -77179,7 +76820,7 @@ variables:
:geospatial_lat_max = 29.07 ;
:time_coverage_start = "2006-06-10T23:48:00Z" ;
:time_converage_end = "2006-06-11T00:12:00Z" ;
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
}
set mode/last upcase
@@ -77190,7 +76831,7 @@ set mode/last upcase
cancel mode upcase
-sp cp global.nc global_copy.nc
+sp cp data/global.nc global_copy.nc
use global_copy.nc
! Lon in 0-360
let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
@@ -77198,7 +76839,7 @@ define attribute/output lon360.ioos_category = "Location"
define attribute/output lon360.standard_name = "Longitude"
define attribute/output lon360.history = "added to test_save_dsg.nc"
save/quiet/append/file=global_copy.nc lon360
-sp ncdump -h global.nc
+sp ncdump -h data/global.nc
netcdf global {
dimensions:
trajectory = 1 ;
@@ -77272,7 +76913,7 @@ variables:
lon360:history = "added to test_save_dsg.nc" ;
// global attributes:
- :history = "CruiseDsgNcFile 1.0FERRET V7.21 DD-MON-YY" ;
+ :history = "CruiseDsgNcFile 1.0FERRET V7.3 DD-MON-YY" ;
:featureType = "Trajectory" ;
:Conventions = "Some other conventionsCF-1.6" ;
:geospatial_lon_min = -92.77 ;
@@ -77286,7 +76927,7 @@ variables:
! This dataset has global attributes history and Conventions that include
! a Ferret version and CF version that Ferret will replace.
-sp ncgen -o anew_global.nc anew_global.cdl
+sp ncgen -o anew_global.nc data/anew_global.cdl
use anew_global.nc
sh att .
attributes for dataset: ./anew_global.nc
@@ -77299,7 +76940,7 @@ can dat/all; use anew_global.nc
sh att .
attributes for dataset: ./anew_global.nc
..history = Subset of etopo20,
- FERRET V7.21 DD-MON-YY
+ FERRET V7.3 DD-MON-YY
..Conventions = Existing conventions note, , CF-1.6
@@ -77312,7 +76953,7 @@ set mode/last upcase
! When appending to the Conventions and history
! attribute, add the new stuff with a comma and newline.
-sp cp conventions_history_in.nc conventions_history.nc
+sp cp data/conventions_history_in.nc conventions_history.nc
use conventions_history
!
! The existing global attributes
@@ -77329,7 +76970,7 @@ can dat/all; use conventions_history
! The new attibutes
sh att .
attributes for dataset: ./conventions_history.nc
- ..history = The history of the fileFERRET V7.21 DD-MON-YY
+ ..history = The history of the fileFERRET V7.3 DD-MON-YY
..Conventions = Conventions for variables named V2CF-1.6
*** Running ferret script: bn_center_key_labels.jnl
! bn_center_key_labels
@@ -77561,7 +77202,7 @@ sp cat a.txt
MYVAR = SST*2
TWO = 2
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -77575,7 +77216,7 @@ SAY ---------------- Just show data, two show data/clobber commands in a row
---------------- Just show data, two show data/clobber commands in a row
sp cat a.txt
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -77601,7 +77242,7 @@ SAY ---------------- Just dataset 1
---------------- Just dataset 1
sp cat a.txt
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -77612,12 +77253,12 @@ SAY ---------------- appending datset 2 by name
---------------- appending datset 2 by name
sp cat a.txt
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
currently SET data sets:
- 2> ./levitus_climatology.cdf (default)
+ 2> ./data/levitus_climatology.cdf (default)
name title I J K L
TEMP TEMPERATURE 1:160 1:90 1:1 ...
@@ -79487,7 +79128,7 @@ def grid/x=x4ax/t=t12 txgrid
FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L
TM Tm 1:4 ... ... 1:12
@@ -79517,7 +79158,7 @@ def grid/x=x4ax/t=t12 txgrid
FILE/SKIP=4/VAR="Tm"/COL=12/order=tx/GRID=txgrid fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L
TM Tm 1:4 ... ... 1:12
@@ -79549,7 +79190,7 @@ def grid/x=x4ax/f=f12 fxgrid
FILE/SKIP=4/VAR="Tm"/COL=12/order=fx/GRID=fxgrid fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L M N
TM Tm 1:4 ... ... ... ... 1:12
@@ -79582,7 +79223,7 @@ def grid/y=y2ax/z=z4ax/t=t6ax grid3d
FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L
TM Tm ... 1:2 1:4 1:6
@@ -79634,7 +79275,7 @@ def grid/y=y2ax/z=z4ax/t=t6ax grid3d
FILE/SKIP=4/VAR="Tm"/COL=12/order=tyz/GRID=grid3d fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L
TM Tm ... 1:2 1:4 1:6
@@ -79686,7 +79327,7 @@ def grid/y=y2ax/z=z4ax/e=e6ax grid3d
FILE/SKIP=4/VAR="Tm"/COL=12/GRID=grid3d fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L M N
TM Tm ... 1:2 1:4 ... 1:6 ...
@@ -79736,7 +79377,7 @@ def grid/y=y2ax/z=z4ax/e=e6ax grid3d
FILE/SKIP=4/VAR="Tm"/COL=12/order=eyz/GRID=grid3d fxdata.dat
sh dat
currently SET data sets:
- 1> ./fxdata.dat (default)
+ 1> ./data/fxdata.dat (default)
name title I J K L M N
TM Tm ... 1:2 1:4 ... 1:6 ...
@@ -79821,7 +79462,7 @@ list lon_lat_time_string(lon, lat, time, tt, "my_string")
use twodtime.nc
sh dat
currently SET data sets:
- 1> ./twodtime.nc (default)
+ 1> ./data/twodtime.nc (default)
name title I J K L M N
TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
@@ -79849,12 +79490,12 @@ SET MODE/LAST upcase_output
use twodtime.nc
sh dat
currently SET data sets:
- 1> ./twodtime.nc (default)
+ 1> ./data/twodtime.nc (default)
name title I J K L M N
TIME GRIB forecast or observation ti ... ... ... 1:8 ... 1:3
sh att time
- attributes for dataset: ./twodtime.nc
+ attributes for dataset: ./data/twodtime.nc
time.units = calendar Month since 2014-11-01T00:00:00Z
time.long_name = GRIB forecast or observation time
time.calendar = proleptic_gregorian
@@ -80055,41 +79696,41 @@ list a
2 / 2:""foobar""
! ======
-list {SPAWN:"ls weird_name1.cdf","foobar"}
- VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+list {SPAWN:"ls data/weird_name1.cdf","foobar"}
+ VARIABLE : {SPAWN:"ls data/weird_name1.cdf","foobar"}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
-let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:"ls data/weird_name1.cdf","foobar"}
list a
- VARIABLE : {SPAWN:"ls weird_name1.cdf","foobar"}
+ VARIABLE : {SPAWN:"ls data/weird_name1.cdf","foobar"}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
-list {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
- VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
-let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
list a
- VARIABLE : {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
-list {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
- VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+ VARIABLE : {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
-let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
+let a = {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
list a
- VARIABLE : {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+ VARIABLE : {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
SUBSET : 2 points (X)
- 1 / 1:"weird_name1.cdf"
- 2 / 2:"foobar"
+ 1 / 1:"data/weird_name1.cdf"
+ 2 / 2:"foobar"
! ======
! in repl_exprns:
@@ -80275,33 +79916,33 @@ SHOW ATTRIBUTE/ALL foobar
foobar.some_text = "quoted attribute"
! ======
-SPAWN "ls weird_name1.*"
-weird_name1.cdf
-SPAWN _DQ_ls weird_name1.*_DQ_
-weird_name1.cdf
+SPAWN "ls data/weird_name1.*"
+data/weird_name1.cdf
+SPAWN _DQ_ls data/weird_name1.*_DQ_
+data/weird_name1.cdf
! ======
-LET a = {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+LET a = {"first.nc", SPAWN: "ls data/weird_name1.*" ,"last.nc"}
LIST a
- VARIABLE : {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+ VARIABLE : {"first.nc", SPAWN: "ls data/weird_name1.*" ,"last.nc"}
SUBSET : 3 points (X)
- 1 / 1:"first.nc"
- 2 / 2:"weird_name1.cdf"
- 3 / 3:"last.nc"
-LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ 1 / 1:"first.nc"
+ 2 / 2:"data/weird_name1.cdf"
+ 3 / 3:"last.nc"
+LET a = {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
LIST a
- VARIABLE : {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+ VARIABLE : {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
SUBSET : 3 points (X)
- 1 / 1:"first.nc"
- 2 / 2:"weird_name1.cdf"
- 3 / 3:"last.nc"
+ 1 / 1:"first.nc"
+ 2 / 2:"data/weird_name1.cdf"
+ 3 / 3:"last.nc"
! =========================
! !!!!!! TEMPORARY LINE
! !!!!!! see bug report err693_xeq_show.jnl
show data ! to side step dset=-1 left behind by SHOW ATTRIBUTE previously
currently SET data sets:
- 1> ./weird_name1.cdf (default)
+ 1> ./data/weird_name1.cdf (default)
name title I J K L
v1 lower case v1 1:20 ... ... ...
v2-and-minus
@@ -80461,7 +80102,7 @@ GO err694_longname_showdat
!
! Make a file whose name starts the same as file with long name.
sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
-sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
@@ -80469,7 +80110,7 @@ use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
! this previously returned an unknown dataset error
sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
currently SET data sets:
- 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ 1> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
name title I J K L
PROF Prof ... ... ... ... 1:21 ...
TIME Time ... ... ... ... 1:21 ...
@@ -80487,7 +80128,7 @@ sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
use WestCoastCarbon_9d9c_f562_77b5_5
sh dat WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d
currently SET data sets:
- 1> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ 1> ./data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
name title I J K L
PROF Prof ... ... ... ... 1:21 ...
TIME Time ... ... ... ... 1:21 ...
@@ -81307,20 +80948,20 @@ SET VAR/layerz=depth temp[d=levitus_3d_subset]
SHOW VAR/LAYERZ/d=levitus_3d_subset temp
DEPTH holds the designated vertical (layerz) coordinates of TEMP
SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
- attributes for dataset: ./levitus_3d_subset.nc
+ attributes for dataset: ./data/levitus_3d_subset.nc
TEMP.__LayerzRef_ = DEPTH
! modify the layerz link
SET VAR/layerz=newdepth temp[d=levitus_3d_subset]
SHOW VAR/LAYERZ/d=levitus_3d_subset temp
NEWDEPTH holds the designated vertical (layerz) coordinates of TEMP
SHOW ATT temp.__LayerzRef_[d=levitus_3d_subset]
- attributes for dataset: ./levitus_3d_subset.nc
+ attributes for dataset: ./data/levitus_3d_subset.nc
TEMP.__LayerzRef_ = NEWDEPTH
cancel var/layerz temp[d=levitus_3d_subset]
SHOW VAR/LAYERZ/d=levitus_3d_subset temp
No variable holds vertical (layerz) coordinates of TEMP
SHOW ATT temp[d=levitus_3d_subset] ! __LayerzRef_ has been deleted
- attributes for dataset: ./levitus_3d_subset.nc
+ attributes for dataset: ./data/levitus_3d_subset.nc
TEMP.missing_value = -1.E+10
TEMP._FillValue = -1.E+10
TEMP.long_name = TEMPERATURE
@@ -81713,7 +81354,7 @@ stat/z=100 temp6d-tempz6d
T: 0.5 to 2.5
E: 0.5 to 2.5
F: 0.5 to 2.5
- DATA SET: ./levitus_3d_subset.nc
+ DATA SET: ./data/levitus_3d_subset.nc
Total # of data points: 32 (2*2*1*2*2*2)
# flagged as bad data: 0
@@ -81730,7 +81371,7 @@ stat/z=400 temp6d-tempz6d
T: 0.5 to 2.5
E: 0.5 to 2.5
F: 0.5 to 2.5
- DATA SET: ./levitus_3d_subset.nc
+ DATA SET: ./data/levitus_3d_subset.nc
Total # of data points: 32 (2*2*1*2*2*2)
# flagged as bad data: 0
@@ -81886,7 +81527,7 @@ LIST/PREC=7 tempz6d_tDep
48.5S / 2: 6.347000 6.533000
49.5S / 1: 5.341800 5.563000
LIST/PREC=7/k=7:8 temp6d_const, depth6d ! reference values at Z=100, 200, 300 for visual comparison
- DATA SET: ./levitus_3d_subset.nc
+ DATA SET: ./data/levitus_3d_subset.nc
LONGITUDE: 120E to 122E
LATITUDE: 50S to 48S
DEPTH (m): 87.5 to 175
@@ -85172,7 +84813,7 @@ LET var1 = FLOATSTR(sst-10,"(i5.5)")
LET var2 = FLOATSTR(sst-10,"(i05)")
LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 91S to 11S
LONGITUDE: 165W
TIME: 16-JAN 06:00
@@ -85228,7 +84869,7 @@ list floatstr(a, "(f04.1)")
LET var1 = FLOATSTR(sst-20,"(f5.1)")
LET var2 = FLOATSTR(sst-20,"(f05.1)")
LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 91S to 11S
LONGITUDE: 165W
TIME: 16-JAN 06:00
@@ -85264,7 +84905,7 @@ LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
LET var1 = FLOATSTR(sst-20,"(f0.0)")
LET var2 = FLOATSTR(sst-20,"(I0)")
LIST/X=165W/L=1 var1[j=1:40:2], var2[j=1:40:2]
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
LATITUDE: 91S to 11S
LONGITUDE: 165W
TIME: 16-JAN 06:00
@@ -85338,13 +84979,13 @@ USE coads_climatology
SHOW DATA 1
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
SHOW DATA coads_climatology
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -85898,7 +85539,7 @@ GO err696_ft_calendars
use ft_cal_one.nc
sh dat
currently SET data sets:
- 1> ./ft_cal_one.nc (default)
+ 1> ./data/ft_cal_one.nc (default)
name title I J K L M N
TIMEVAR GRIB forecast or observation ti ... ... ... 1:2 ... 1:3
@@ -86053,7 +85694,7 @@ variables:
var:long_name = "0*TT + X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -86141,10 +85782,10 @@ define data/agg/E fourfiles = ens1, ens3, ens2, ens4
show data/brief
currently SET data sets:
- 1> ./ens1.nc
- 2> ./ens2.nc
- 3> ./ens3.nc
- 4> ./ens4.nc
+ 1> ./data/ens1.nc
+ 2> ./data/ens2.nc
+ 3> ./data/ens3.nc
+ 4> ./data/ens4.nc
5> fourfiles (default) Ensemble aggregation
list/i=3 sst[T=@ave]
@@ -86296,7 +85937,7 @@ IF `test_opendap("http://ferret.pmel.noaa.gov/pmel/thredds/dodsC/data/PMEL/COADS
let//d=coads_sst myvar = 1
sh dat
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
@@ -86918,7 +86559,7 @@ go err696_write_no_dim
use nodim
sh dat
currently SET data sets:
- 1> ./nodim.nc (default)
+ 1> ./data/nodim.nc (default)
name title I J K L
EXPOCODE expocode ... ... ... ... 1:1 ...
NUM_OBS Number of observations ... ... ... ... 1:1 ...
@@ -86955,7 +86596,7 @@ variables:
TEMP:history = "From /home/data/socat/socatV3/11SS/11SS20140225.nc" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -88056,7 +87697,7 @@ let/d=1 w2 = w[d=2]
let/d=1 salt2 = salt[d=2]
sh dat 1
currently SET data sets:
- 1> ./coads_climatology.cdf
+ 1> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
------------------------------
@@ -88347,7 +87988,7 @@ show data/brief
2> myagg1
3> myagg2
4> myAgg2
- 5> ./bn_aggregate_t.jnl (default)
+ 5> ./v6jnls/bn_aggregate_t.jnl (default)
! define a long aggregation
define data/agg/t myagg8 = tmp/tagg_reg_1.nc, tmp/tagg_reg_2.nc,tmp/tagg_reg_3.nc, tmp/tagg_reg_4.nc,tmp/tagg_reg_5.nc, tmp/tagg_reg_6.nc,tmp/tagg_reg_7.nc, tmp/tagg_reg_8.nc
@@ -88415,7 +88056,7 @@ show data/full ! all 4 datasets
01-JAN-1980 00:00 -> 10-JAN-1980 00:00 tmp/tagg_reg_1.nc
11-JAN-1980 00:00 -> 20-JAN-1980 00:00 tmp/tagg_reg_2.nc
- 5> ./bn_aggregate_t.jnl
+ 5> ./v6jnls/bn_aggregate_t.jnl
T-aggregation of 2 netCDF files
name title I J K L
@@ -90927,13 +90568,13 @@ cancel data my_fmrc
fmrc/hide tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
show data/brief
currently SET data sets:
- 6> ./bn_aggregate_f.jnl (default) Forecast aggregation
+ 6> ./v6jnls/bn_aggregate_f.jnl (default) Forecast aggregation
! the same agg using the very same files under a different name
fmrc/hide my_fmrc = tmp/fcst_7.nc, tmp/fcst_4.nc, tmp/fcst_5.nc, tmp/one_var_fcst_6.nc, tmp/fcst_3.nc
show data/full
currently SET data sets:
- 6> ./bn_aggregate_f.jnl Forecast aggregation
+ 6> ./v6jnls/bn_aggregate_f.jnl Forecast aggregation
Forecast series of 5 datasets patterned on fcst_3.nc
name title I J K L M N
FCST FIELD + FCST_ERROR 1:21 1:21 ... 1:24 ... 1:5
@@ -90989,7 +90630,7 @@ show data/br/hidden
3> tmp/fcst_5.nc
4> tmp/one_var_fcst_6.nc
5> tmp/fcst_3.nc
- 6> ./bn_aggregate_f.jnl Forecast aggregation
+ 6> ./v6jnls/bn_aggregate_f.jnl Forecast aggregation
cancel data bn_aggregate_f.jnl ! 3/16 bug fix (was "...sub")
show data
currently SET data sets:
@@ -91749,7 +91390,7 @@ SHOW DATA/ATT t_f04_e3_1v ! note atts im_everwhere vs im_not_everwhere
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(XAX) DOUBLE units CHAR 12 T degrees_east
@@ -92183,7 +91824,7 @@ let nv = ..nvars
let nd = ..ndims
let vnames = ..varnames
list/DAT=1 nv, nd
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
@@ -92207,14 +91848,14 @@ list/DAT=1 vnames
12 / 12:"PSI"
list/DAT=coads_climatology nv,nd
- DATA SET: ./coads_climatology.cdf
+ DATA SET: ./data/coads_climatology.cdf
X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
NV ND
I / *: 1.000 3.000
list/DAT=gt4d011 nv,nd
- DATA SET: ./gt4d011.cdf
+ DATA SET: ./data/gt4d011.cdf
X: 1
Column 1: NV is ..NVARS
Column 2: ND is ..NDIMS
@@ -92233,7 +91874,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
use a.nc
sh att .
attributes for dataset: ./a.nc
- ..history = FERRET V7.21 DD-MON-YY
+ ..history = FERRET V7.3 DD-MON-YY
..Conventions = CF-1.6
..dt_internal = 15
sh att elev
@@ -92254,7 +91895,7 @@ save/clobber/file=a.nc/outtype=float elev[d=1]
use a.nc
sh att .
attributes for dataset: ./a.nc
- ..history = FERRET V7.21 DD-MON-YY
+ ..history = FERRET V7.3 DD-MON-YY
..Conventions = CF-1.6
sh att elev
attributes for dataset: ./a.nc
@@ -92307,7 +91948,7 @@ list/DAT=3 temp.history
let/DAT=2 temp = sst + 0*z[z=1:5:1]
sh dat 2
currently SET data sets:
- 2> ./coads_climatology.cdf
+ 2> ./data/coads_climatology.cdf
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
------------------------------
@@ -92329,7 +91970,7 @@ stat/DATASET=1 elev
T (day): 1.7837
E: N/A
F: N/A
- DATA SET: ./err491_attval.cdf
+ DATA SET: ./data/err491_attval.cdf
Total # of data points: 4445 (35*127*1*1*1*1)
# flagged as bad data: 3065
@@ -92413,13 +92054,13 @@ USE a1478.nc
USE a_cartesian_bug1179.nc
show data
currently SET data sets:
- 1> ./a1478.nc
+ 1> ./data/a1478.nc
name title I J K L
lat1_5_bnds
1:2 1:5 ... ...
olr outgoing longwave radiation 1:5 1:5 ... 1:3
- 2> ./a_cartesian_bug1179.nc (default)
+ 2> ./data/a_cartesian_bug1179.nc (default)
name title I J K L
temp THETA_FO(SALT_EXTRAP,TEMP_EXTRA 1:1 1:1 1:10 1:1
@@ -92454,7 +92095,7 @@ LET/D=2 newvar = 0*zvar[d=2] + olr[d=1]
show data
currently SET data sets:
- 1> ./a1478.nc
+ 1> ./data/a1478.nc
name title I J K L
lat1_5_bnds
1:2 1:5 ... ...
@@ -92462,7 +92103,7 @@ show data
------------------------------
zvar[D=a1478] = 2*TEMP[D=2]
- 2> ./a_cartesian_bug1179.nc (default)
+ 2> ./data/a_cartesian_bug1179.nc (default)
name title I J K L
temp THETA_FO(SALT_EXTRAP,TEMP_EXTRA 1:1 1:1 1:10 1:1
------------------------------
@@ -92485,7 +92126,7 @@ say/quiet <data>
show var/xml
show data/var/xml
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
<title> </title>
<var name="temp">
<attribute name="units" type="char">
@@ -92669,7 +92310,7 @@ USE a_cartesian_bug1179.nc
SHO DATA/XML
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
<title> </title>
<var name="temp" />
</dataset>
@@ -92677,7 +92318,7 @@ SHO DATA/XML
SHO DATA/VAR/XML
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
<title> </title>
<var name="temp">
<attribute name="units" type="char">
@@ -93034,7 +92675,7 @@ LET/D=a_cartesian_bug1179 temp_180 = temp[X=79E:79E at AVE]
SHOW DATA/XML
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="true">
+<dataset name="./data/a_cartesian_bug1179.nc" default="true">
<title> </title>
<var name="temp" />
<var name="temp_180" />
@@ -93044,12 +92685,12 @@ SHOW DATA/XML
USE a1478.nc
SHOW DATA/XML
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="false">
+<dataset name="./data/a_cartesian_bug1179.nc" default="false">
<title> </title>
<var name="temp" />
<var name="temp_180" />
</dataset>
-<dataset name="./a1478.nc" default="true">
+<dataset name="./data/a1478.nc" default="true">
<title> </title>
<var name="lat1_5_bnds" />
<var name="olr" />
@@ -93057,7 +92698,7 @@ SHOW DATA/XML
</datasets>
SHO DATA/VAR/XML
<datasets>
-<dataset name="./a_cartesian_bug1179.nc" default="false">
+<dataset name="./data/a_cartesian_bug1179.nc" default="false">
<title> </title>
<var name="temp">
<attribute name="units" type="char">
@@ -93258,7 +92899,7 @@ SHO DATA/VAR/XML
</attribute>
</axis>
</axes>
-<dataset name="./a1478.nc" default="true">
+<dataset name="./data/a1478.nc" default="true">
<title> </title>
<var name="lat1_5_bnds">
<attribute name="ferret_datatype" type="char">
@@ -93470,7 +93111,7 @@ let/d=1/title="coads myvar" myvar = 1
! Now SHOW DATA/ATT lists the LET/D variables, as SHOW DATA does
show dat 1
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
------------------------------
@@ -93479,7 +93120,7 @@ show dat 1
show dat/att 1
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -93514,7 +93155,7 @@ show dat/att 1
show att myvar
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
myvar.long_name = coads myvar
myvar.missing_value = -1.E+34
@@ -93534,7 +93175,7 @@ use levitus_climatology
let/d=2/title="Levitus myvar" myvar = 2
show dat 2
currently SET data sets:
- 2> ./levitus_climatology.cdf (default)
+ 2> ./data/levitus_climatology.cdf (default)
name title I J K L
TEMP TEMPERATURE 1:160 1:90 1:1 ...
------------------------------
@@ -93542,7 +93183,7 @@ show dat 2
show dat/att 2
currently SET data sets:
- 2> ./levitus_climatology.cdf (default)
+ 2> ./data/levitus_climatology.cdf (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -93580,7 +93221,7 @@ show att myvar
myvar.missing_value = -1.E+34
show att/d=1 myvar
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
myvar.long_name = coads myvar
myvar.missing_value = -1.E+34
@@ -93608,18 +93249,18 @@ list vnames
cancel var/all
show dat
currently SET data sets:
- 1> ./coads_climatology.cdf (default)
+ 1> ./data/coads_climatology.cdf (default)
name title I J K L
SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3
- 2> ./levitus_climatology.cdf
+ 2> ./data/levitus_climatology.cdf
name title I J K L
TEMP TEMPERATURE 1:160 1:90 1:1 ...
show dat/att 2
currently SET data sets:
- 2> ./levitus_climatology.cdf
+ 2> ./data/levitus_climatology.cdf
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -93662,7 +93303,7 @@ let/d=2/title="Levitus myvar" myvar = 2
define att/output temp.my_new_att="temperature attrib"
define att/output myvar.units="meters"
show att temp
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
TEMP.missing_value = -1.E+10
TEMP._FillValue = -1.E+10
TEMP.long_name = TEMPERATURE
@@ -93670,7 +93311,7 @@ show att temp
TEMP.units = DEG C
TEMP.my_new_att = temperature attrib
show att myvar
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
myvar.long_name = Levitus myvar
myvar.missing_value = -1.E+34
myvar.units = meters
@@ -93680,7 +93321,7 @@ define att/output/d=2 myvar.standard_name = "None"
define att/output/d=1 myvar.units="feet"
show att/d=1 myvar
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
myvar.long_name = coads myvar
myvar.missing_value = -1.E+34
myvar.units = feet
@@ -93688,7 +93329,7 @@ save/clobber/file=a.nc myvar[d=1]
sp ncdump -h a.nc >> all_ncdump.out
show att/d=2 myvar
- attributes for dataset: ./levitus_climatology.cdf
+ attributes for dataset: ./data/levitus_climatology.cdf
myvar.long_name = Levitus myvar
myvar.missing_value = -1.E+34
myvar.units = meters
@@ -94009,7 +93650,7 @@ sho command set
SET LIST/PRECISIO/FILE/FORMAT/APPEND/HEADING/NCFORMAT/ENDIAN/DEFLATE/SHUFFLE
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
- /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+ /TYPE/SWAP/REGULART/DELIMITE/STRICT
SET MODE/LAST
SET MOVI/FILE/COMPRESS/LASER/START
SET VARIABLE/TITLE/UNITS/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE
@@ -94034,7 +93675,7 @@ sho command set l ! SET LIST
/XCHUNK/YCHUNK/ZCHUNK/TCHUNK/ECHUNK/FCHUNK/OUTTYPE
sho command set d ! SET DATA
SET DATA/EZ/VARIABLE/TITLE/FORMAT/GRID/SKIP/COLUMNS/SAVE/RESTORE/ORDER
- /TYPE/SWAP/REGULART/DELIMITE/BROWSE/STRICT
+ /TYPE/SWAP/REGULART/DELIMITE/STRICT
sho command set m ! SET MODE
SET MODE/LAST
sho command set mov! SET MOVIE
@@ -94387,7 +94028,7 @@ sho command/brief v
! All the commands, no subcommands, no qualifiers
SHOW COMMAND/BRIEF
- Commands in Program FERRET version7.21:
+ Commands in Program FERRET version7.3:
SET
SHOW
CANCEL
@@ -94802,7 +94443,7 @@ go err700_reg_axis_check
use bug2445.nc
show data
currently SET data sets:
- 1> ./bug2445.nc (default)
+ 1> ./data/bug2445.nc (default)
name title I J K L
XAX 1:5 ... ... ...
(invalid coordinate axis)
@@ -94883,7 +94524,7 @@ go err700_inherit_all
! This non-standardfile has no missing-value attributes.
use no_miss_att.nc
sh att a
- attributes for dataset: ./no_miss_att.nc
+ attributes for dataset: ./data/no_miss_att.nc
A.min_value = 1
A.max_value = 3
A.long_name = {1,2,3}
@@ -95776,7 +95417,7 @@ go err700_coords
use err700_coords.nc
list/i=10:20/prec=16 du_coords, du_coords[i=@ddf]
- DATA SET: ./err700_coords.nc
+ DATA SET: ./data/err700_coords.nc
X: 9.5 to 20.5
Column 1: DU_COORDS is DU_VU[I=1:20]
Column 2: DU_COORDS[X=@DDF] is DU_VU[I=1:20] (forward derivative on X)
@@ -96077,7 +95718,7 @@ variables:
VAR:long_name = "X[GX=XLON]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
go bn_reset
@@ -96136,7 +95777,7 @@ variables:
VAR:history = "From a1" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -96183,7 +95824,7 @@ variables:
VAR:history = "From a1" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -96202,7 +95843,7 @@ sh axis `var,return=xaxis`
use coads_climatology
sh att (`sst,return=xaxis`)
!-> sh att (COADSX)
- attributes for dataset: ./coads_climatology.cdf
+ attributes for dataset: ./data/coads_climatology.cdf
(COADSX).units = degrees_east
(COADSX).modulo =
(COADSX).point_spacing = even
@@ -96284,6 +95925,7 @@ FRAME /FILE=forecast_actual.gif
! using actual should show single color on horizontal
!
LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
+
SHOW GRID diagview
GRID (G###)
name axis # pts start end subset
@@ -96293,6 +95935,7 @@ SHOW GRID diagview
TF_CAL_T TIME 34 r 17-OCT-2010 02:48 17-JUL-2013 10:00 full
normal E
TF_CAL_F FORECAST 4 r 01-OCT-2010 21:36 02-JUL-2011 19:12 full
+
LIST /WIDTH=600 /X=120W/Y=50N/Z=50 diagview
VARIABLE : actual (diag view)
DATA SET : Forecast series of 4 datasets patterned on forecast24
@@ -96424,16 +96067,14 @@ frame/file=legend_1d_plots.gif
! legend labels are titles
sh sym lab*
LABX = "Temperature Avg (deg. C)"
-LAB1 = "DEPTH (m) : 0 to 4149"
+LAB1 = "January Taux"
LABNUM_Z = "1"
LAB2 = "DATA SET: gt4d011"
LABNUM_DSET = "2"
LAB3 = ""
LABNUM_DATITL = "3"
LABY = "dynes/cm**2"
-LAB4 = "September Taux"
LABKEY = "January Taux"
-LAB5 = "January Taux"
! Overlaying on a 2D field
@@ -96525,20 +96166,20 @@ sh dat
columns/skip=3/var="index,edtim,udtim,udate,edate"/type="num,edatime,datime,date,eurodate" delim_datetime.csv
sh dat
currently SET data sets:
- 1> ./delim_datetime.csv (default)
+ 1> ./data/delim_datetime.csv (default)
name title I J K L
- INDEX index 1:8 ... ... ...
- EDTIM edtim 1:8 ... ... ...
+ INDEX index 1:5 ... ... ...
+ EDTIM edtim 1:5 ... ... ...
(Julian days since 1-Jan-1900)
- UDTIM udtim 1:8 ... ... ...
+ UDTIM udtim 1:5 ... ... ...
(Julian days since 1-Jan-1900)
- UDATE udate 1:8 ... ... ...
+ UDATE udate 1:5 ... ... ...
(Julian days since 1-Jan-1900)
- EDATE edate 1:8 ... ... ...
+ EDATE edate 1:5 ... ... ...
(Julian days since 1-Jan-1900)
list index,edtim,udtim,udate,edate
- DATA SET: ./delim_datetime.csv
+ DATA SET: ./data/delim_datetime.csv
X: 0.5 to 5.5
Column 1: INDEX is index
Column 2: EDTIM is edtim (days)(Julian days since 1-Jan-1900)
@@ -96618,7 +96259,7 @@ T0 = 1-JAN-1900
columns/skip=2/var="index,udate,udtim"/type="num,date,datime" delim_yyyy.csv
sh dat
currently SET data sets:
- 1> ./delim_datetime.csv
+ 1> ./data/delim_datetime.csv
name title I J K L
INDEX index 1:5 ... ... ...
EDTIM edtim 1:5 ... ... ...
@@ -96630,16 +96271,16 @@ sh dat
EDATE edate 1:5 ... ... ...
(Julian days since 1-Jan-1900)
- 2> ./delim_yyyy.csv (default)
+ 2> ./data/delim_yyyy.csv (default)
name title I J K L
- INDEX index 1:8 ... ... ...
- UDATE udate 1:8 ... ... ...
+ INDEX index 1:6 ... ... ...
+ UDATE udate 1:6 ... ... ...
(Julian days since 1-Jan-1900)
- UDTIM udtim 1:8 ... ... ...
+ UDTIM udtim 1:6 ... ... ...
(Julian days since 1-Jan-1900)
list/prec=10 index,udate,udtim
- DATA SET: ./delim_yyyy.csv
+ DATA SET: ./data/delim_yyyy.csv
X: 0.5 to 6.5
Column 1: INDEX is index
Column 2: UDATE is udate (days)(Julian days since 1-Jan-1900)
@@ -96730,7 +96371,7 @@ can dat/all
union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
sh dat
currently SET data sets:
- 5> ./bn_aggregate_u.jnl (default) Union aggregation
+ 5> ./v7jnls/bn_aggregate_u.jnl (default) Union aggregation
name title I J K L
SST sst 1:5 1:4 ... 1:10
TEMP temp 1:5 1:4 ... 1:10
@@ -97333,7 +96974,7 @@ variables:
abc:history = "From abc.dat" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -97345,15 +96986,15 @@ sh dat
name title I J K L
abc abc 1:5 ... ... ...
- 2> ./bn_delimited_read_1.dat (default)
+ 2> ./data/bn_delimited_read_1.dat (default)
name title I J K L
- lab lab 1:7 ... ... ...
- nothing nothing 1:7 ... ... ...
- var var 1:7 ... ... ...
- latitude latitude 1:7 ... ... ...
+ lab lab 1:6 ... ... ...
+ nothing nothing 1:6 ... ... ...
+ var var 1:6 ... ... ...
+ latitude latitude 1:6 ... ... ...
(Latitude)
longitude
- longitude 1:7 ... ... ...
+ longitude 1:6 ... ... ...
(Longitude)
sh dat/att
@@ -97367,7 +97008,7 @@ sh dat/att
abc DOUBLE long_name CHAR 3 T abc
missing_value DOUBLE 1 T -1.E+34
- 2> ./bn_delimited_read_1.dat (default)
+ 2> ./data/bn_delimited_read_1.dat (default)
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
@@ -97420,7 +97061,7 @@ variables:
latitude:history = "From bn_delimited_read_1.dat" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -97433,9 +97074,9 @@ set mode/last upcase
! 8/2016 *acm*
sp ls notafile.nowhere
-sp grep "this text is not in the file" bn_all.jnl
+sp grep "this text is not in the file" genjnls/bn_all.jnl
sp rm nothing.dat
-sp grep modulus non_COARDS.cdl
+sp grep modulus data/non_COARDS.cdl
sp cp nofile.dat not_either.dat
*** Running ferret script: bn_ave_of_ave.jnl
! bn_ave_of_ave.jnl
@@ -97656,7 +97297,7 @@ cancel var/all
union tmp/uagg_1.nc,tmp/uagg_2.nc,tmp/uagg_3.nc,tmp/uagg_4.nc
show data/members
currently SET data sets:
- 5> ./bn_agg_member_syntax.jnl (default) Union aggregation
+ 5> ./v7jnls/bn_agg_member_syntax.jnl (default) Union aggregation
name title I J K L
SST sst 1:5 1:4 ... 1:10
TEMP temp 1:5 1:4 ... 1:10
@@ -97684,7 +97325,7 @@ show data 5.3
cancel data/all
! Tests for Ensembles
-let files = SPAWN("ls -1 ens*.nc")
+let files = SPAWN("ls -1 data/ens*.nc")
ensemble my_ens = files
sh data/members my_ens
currently SET data sets:
@@ -97693,14 +97334,14 @@ sh data/members my_ens
SST SST_IN 1:10 1:9 ... 1:12 1:4 ...
Member datasets:
- 5.1: ./ens1.nc
- 5.2: ./ens2.nc
- 5.3: ./ens3.nc
- 5.4: ./ens4.nc
+ 5.1: data/ens1.nc
+ 5.2: data/ens2.nc
+ 5.3: data/ens3.nc
+ 5.4: data/ens4.nc
show data 5.3
currently SET data sets:
- 3> ./ens3.nc
+ 3> data/ens3.nc
name title I J K L
SST SST_IN 1:10 1:9 ... 1:12
@@ -97730,7 +97371,7 @@ stat sst[d=5.2]
TIME: 01-JAN 00:45 to 31-DEC 06:34
E: N/A
F: N/A
- DATA SET: ./ens2.nc
+ DATA SET: data/ens2.nc
Total # of data points: 1080 (10*9*1*12*1*1)
# flagged as bad data: 289
@@ -97747,7 +97388,7 @@ ENSEMBLE fourfiles = ens1, ens3, ens2, ens4
! not this is dataset 2
show data 5.3
currently SET data sets:
- 3> ./ens2.nc
+ 3> ./data/ens2.nc
name title I J K L
SST SST_IN 1:10 1:9 ... 1:12
@@ -98109,7 +97750,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(TAXIS1) DOUBLE axis CHAR 1 T T
@@ -98178,7 +97819,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(TAXIS1) DOUBLE axis CHAR 1 T T
@@ -98249,7 +97890,7 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 23 T FERRET V7.21 DD-MON-YY
+ . history CHAR 22 T FERRET V7.3 DD-MON-YY
Conventions CHAR 6 F CF-1.6
(TAXIS1) DOUBLE axis CHAR 1 T T
@@ -98658,7 +98299,7 @@ variables:
VART:long_name = "RESHAPE(VAR, T[GT=TAX])" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -98796,10 +98437,10 @@ use coads_climatology
let lnames = ..dimnames[d=2]
CANCEL DATA/ALL
- canceling dset ./ocean_atlas_temp.cdf
- canceling dset ./gt4d011.cdf
- canceling dset ./levitus_climatology.cdf
- canceling dset ./coads_climatology.cdf
+ canceling dset ./data/ocean_atlas_temp.cdf
+ canceling dset ./data/gt4d011.cdf
+ canceling dset ./data/levitus_climatology.cdf
+ canceling dset ./data/coads_climatology.cdf
! this line seems to be essential making the crash happen
PPL TICS .125,.25,.125,.25 !reset tics to default
@@ -98835,7 +98476,7 @@ cancel mode verify
-DELETE A M: 2 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL
-DELETE attr M: 3 dset: 1 I: 2 2 J: -999 -999 K: -999 -999 L: -999 -999
- canceling dset ./coads_climatology.cdf
+ canceling dset ./data/coads_climatology.cdf
ooooooooooooooooooooooooooooooooooooooooooo
GO err71_user_var_attrib
! err71_user_var_attrib.jnl
@@ -99065,7 +98706,7 @@ variables:
uave:history = "From 6dfile" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -99115,7 +98756,7 @@ variables:
uave:history = "From 6dfile" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -99162,7 +98803,7 @@ variables:
uave:history = "From 6dfile" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -99318,7 +98959,7 @@ variables:
BIN:history = "From shorttest.dat" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
@@ -99534,7 +99175,7 @@ stat co_emac
T: N/A
E: N/A
F: N/A
- DATA SET: ./co_emac.nc
+ DATA SET: ./data/co_emac.nc
Total # of data points: 48 (12*4*1*1*1*1)
# flagged as bad data: 4
@@ -100294,6 +99935,9 @@ LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
! ... test irregular axes (unequal weighting) and see how significant are
! the changes in results from old Ferret (particularly on @var)
+
+! clean up
+set mem/siz=25.6 ! return to the default setting
*** Running ferret script: bn_dynamic_gather.jnl
! bn_dynamic_gather.jnl
! *sh* 3/2017
@@ -100611,16 +100255,13 @@ show memory/diagnostic ! split on Z-(T-Y,T-Y)
Last gather
Variable Axis Xform Chunk Repeated
V Z SUM 1 1
- V T SUM 1 1
- V Y AV4 989 10
- V T SUM 1 1
- V Y AV4 989 10
+ V Y AV4 98 2
Total table slots: 500
Free table slots: 496
Un-cached variables: 0
SET MEMORY/SIZE: 990000 words
- Peak demand: 989006 words
- Current cache: 11006 words
+ Peak demand: 980022 words
+ Current cache: 200024 words
cancel memory/all
! **************************************************
@@ -100637,14 +100278,13 @@ stat/brief v[x=@ave,y=@ave,z=@ave,L=@SUM]
show memory/diagnostic ! split on T-Y
Last gather
Variable Axis Xform Chunk Repeated
- V T SUM 1 1
- V Y AV4 494 10
+ V Y AV4 49 1
Total table slots: 500
Free table slots: 497
Un-cached variables: 0
SET MEMORY/SIZE: 990000 words
- Peak demand: 988004 words
- Current cache: 24004 words
+ Peak demand: 980020 words
+ Current cache: 400022 words
cancel memory/all
! **************************************************
@@ -101050,119 +100690,119 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
---
> Peak demand: 692002 words
> Current cache: 616002 words
-263c276
-< V Y AV4 989 10
+262c275
+< V Y AV4 98 2
---
-> V Y AV4 692 10
-265c278
-< V Y AV4 989 10
+> V Y AV4 69 2
+267,268c280,281
+< Peak demand: 980022 words
+< Current cache: 200024 words
---
-> V Y AV4 692 10
-270,271c283,284
-< Peak demand: 989006 words
-< Current cache: 11006 words
+> Peak demand: 690022 words
+> Current cache: 340024 words
+285c298
+< V Y AV4 49 1
---
-> Peak demand: 692006 words
-> Current cache: 308006 words
-289c302
-< V Y AV4 494 10
+> V Y AV4 34 1
+287c300
+< Free table slots: 497
---
-> V Y AV4 346 10
-294,295c307,308
-< Peak demand: 988004 words
-< Current cache: 24004 words
+> Free table slots: 496
+290,291c303,304
+< Peak demand: 980020 words
+< Current cache: 400022 words
---
-> Peak demand: 692004 words
-> Current cache: 616004 words
-312c325
+> Peak demand: 680020 words
+> Current cache: 960022 words
+308c321
< V Y AV4 24 1
---
> V Y AV4 17 1
-314c327
+310c323
< Free table slots: 494
---
> Free table slots: 492
-317,318c330,331
+313,314c326,327
< Peak demand: 480962 words
< Current cache: 802562 words
---
> Peak demand: 340682 words
> Current cache: 962602 words
-360c373
+356c369
< V1000 Z 3 1
---
> V1000 Z 2 1
-365,366c378,379
+361,362c374,375
< Peak demand: 3.108 megawords
< Current cache: 1.096 megawords
---
> Peak demand: 2.12 megawords
> Current cache: 2.096 megawords
-381c394
+377c390
< V1000 Y 22 1
---
> V1000 Y 15 1
-386,387c399,400
+382,383c395,396
< Peak demand: 959680 words
< Current cache: 544320 words
---
> Peak demand: 669600 words
> Current cache: 460000 words
-406a420
+402a416
> V1000 Z 2 99
-408c422
+404c418
< Free table slots: 496
---
> Free table slots: 493
-411,412c425,426
+407,408c421,422
< Peak demand: 89440 words
< Current cache: 88960 words
---
> Peak demand: 69200 words
> Current cache: 89440 words
-434c448
+430c444
< V T AVE 1 1
---
> V Y AVE 91 1
-436c450
+432c446
< Free table slots: 498
---
> Free table slots: 496
-439,440c453,454
+435,436c449,450
< Peak demand: 3 megawords
< Current cache: 3 megawords
---
> Peak demand: 2.092 megawords
> Current cache: 2.262 megawords
-457c471
+453c467
< A Y AVE 47 1
---
> A Y AVE 26 1
-459c473
+455c469
< Free table slots: 491
---
> Free table slots: 487
-462,463c476,477
+458,459c472,473
< Peak demand: 1.94 megawords
< Current cache: 2.884 megawords
---
> Peak demand: 1.52 megawords
> Current cache: 2.98 megawords
-476c490
+472c486
< D Y AVE 47 1
---
> D Y AVE 26 1
-478c492
+474c488
< Free table slots: 489
---
> Free table slots: 487
-481,482c495,496
+477,478c491,492
< Peak demand: 2.41 megawords
< Current cache: 2.84 megawords
---
> Peak demand: 1.78 megawords
> Current cache: 2.836 megawords
-514,517c528,531
+510,513c524,527
< A T AVE 1 1
< B Y AVE 71 1
< C Y AVE 47 1
@@ -101172,33 +100812,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_30.out
> B Y AVE 59 1
> C Y AVE 42 1
> D Y AVE 26 1
-519c533
+515c529
< Free table slots: 487
---
> Free table slots: 484
-522,523c536,537
+518,519c532,533
< Peak demand: 2.845 megawords
< Current cache: 2.979 megawords
---
> Peak demand: 2.39 megawords
> Current cache: 2.918 megawords
-538,539c552,553
+534,535c548,549
< A Y AVE 47 1
< B Y AVE 23 1
---
> A Y AVE 26 1
> B Y AVE 9 1
-541c555
+537c551
< Free table slots: 491
---
> Free table slots: 481
-544,545c558,559
+540,541c554,555
< Peak demand: 2.46 megawords
< Current cache: 2.794 megawords
---
> Peak demand: 2.18 megawords
> Current cache: 2.922 megawords
-551c565
+547c561
< ! excercise under the default memory management
---
> ! excercise under pretty strict memory management
@@ -101442,151 +101082,147 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
---
> Peak demand: 394002 words
> Current cache: 818002 words
-263c360
-< V Y AV4 989 10
+262c359
+< V Y AV4 98 2
---
-> V Y AV4 395 10
-265c362
-< V Y AV4 989 10
----
-> V Y AV4 395 10
-267c364
+> V Y AV4 39 2
+264c361
< Free table slots: 496
---
> Free table slots: 495
-270,271c367,368
-< Peak demand: 989006 words
-< Current cache: 11006 words
+267,268c364,365
+< Peak demand: 980022 words
+< Current cache: 200024 words
---
-> Peak demand: 395006 words
-> Current cache: 605006 words
-289c386
-< V Y AV4 494 10
+> Peak demand: 390022 words
+> Current cache: 640024 words
+285c382
+< V Y AV4 49 1
---
-> V Y AV4 197 10
-291c388
+> V Y AV4 19 1
+287c384
< Free table slots: 497
---
-> Free table slots: 495
-294,295c391,392
-< Peak demand: 988004 words
-< Current cache: 24004 words
+> Free table slots: 496
+290,291c387,388
+< Peak demand: 980020 words
+< Current cache: 400022 words
---
-> Peak demand: 394004 words
-> Current cache: 818004 words
-312c409
+> Peak demand: 380020 words
+> Current cache: 620022 words
+308c405
< V Y AV4 24 1
---
> V Y AV4 9 1
-314c411
+310c407
< Free table slots: 494
---
> Free table slots: 486
-317,318c414,415
+313,314c410,411
< Peak demand: 480962 words
< Current cache: 802562 words
---
> Peak demand: 180362 words
> Current cache: 922202 words
-339c436,438
+335c432,434
< No split/gather occurred in the last evaluation
---
> Last gather
> Variable Axis Xform Chunk Repeated
> V1000 Z 3 1
-341c440
+337c436
< Free table slots: 498
---
> Free table slots: 495
-344,345c443,444
+340,341c439,440
< Peak demand: 4.144 megawords
< Current cache: 4.048 megawords
---
> Peak demand: 3.108 megawords
> Current cache: 4.096 megawords
-360c459
+356c455
< V1000 Z 3 1
---
> V1000 Z 1 1
-362c461
+358c457
< Free table slots: 496
---
> Free table slots: 492
-365,366c464,465
+361,362c460,461
< Peak demand: 3.108 megawords
< Current cache: 1.096 megawords
---
> Peak demand: 1.084 megawords
> Current cache: 3.096 megawords
-381c480
+377c476
< V1000 Y 22 1
---
> V1000 Y 8 1
-383c482
+379c478
< Free table slots: 496
---
> Free table slots: 492
-386,387c485,486
+382,383c481,482
< Peak demand: 959680 words
< Current cache: 544320 words
---
> Peak demand: 379520 words
> Current cache: 861440 words
-406a506
+402a502
> V1000 Z 3 100
-408c508
+404c504
< Free table slots: 496
---
> Free table slots: 488
-411,412c511,512
+407,408c507,508
< Peak demand: 89440 words
< Current cache: 88960 words
---
> Peak demand: 58840 words
> Current cache: 89560 words
-434c534
+430c530
< V T AVE 1 1
---
> V Y AVE 16 1
-436c536
+432c532
< Free table slots: 498
---
> Free table slots: 478
-439,440c539,540
+435,436c535,536
< Peak demand: 3 megawords
< Current cache: 3 megawords
---
> Peak demand: 1.192 megawords
> Current cache: 2.856 megawords
-457c557
+453c553
< A Y AVE 47 1
---
> A Y AVE 4 1
-459c559
+455c555
< Free table slots: 491
---
> Free table slots: 431
-462,463c562,563
+458,459c558,559
< Peak demand: 1.94 megawords
< Current cache: 2.884 megawords
---
> Peak demand: 1.08 megawords
> Current cache: 2.984 megawords
-476c576
+472c572
< D Y AVE 47 1
---
> D Y AVE 4 1
-478c578
+474c574
< Free table slots: 489
---
> Free table slots: 442
-481,482c581,582
+477,478c577,578
< Peak demand: 2.41 megawords
< Current cache: 2.84 megawords
---
> Peak demand: 1.12 megawords
> Current cache: 2.992 megawords
-514,517c614,617
+510,513c610,613
< A T AVE 1 1
< B Y AVE 71 1
< C Y AVE 47 1
@@ -101596,33 +101232,33 @@ SPAWN diff bn_dynamic_gather_0.out bn_dynamic_gather_60.out
> B Y AVE 23 1
> C Y AVE 14 1
> D Y AVE 4 1
-519c619
+515c615
< Free table slots: 487
---
> Free table slots: 439
-522,523c622,623
+518,519c618,619
< Peak demand: 2.845 megawords
< Current cache: 2.979 megawords
---
> Peak demand: 2.06 megawords
> Current cache: 2.996 megawords
-538,539c638,639
+534,535c634,635
< A Y AVE 47 1
< B Y AVE 23 1
---
> A Y AVE 4 1
> B Y AVE 9 1
-541c641
+537c637
< Free table slots: 491
---
> Free table slots: 481
-544,545c644,645
+540,541c640,641
< Peak demand: 2.46 megawords
< Current cache: 2.794 megawords
---
> Peak demand: 2.18 megawords
> Current cache: 2.922 megawords
-551d650
+547d646
< ! excercise under the default memory management
@@ -101631,6 +101267,9 @@ SET MODE IGNORE
SET MODE FRUGAL:95
SET MODE/LAST IGNORE
+
+! clean up
+set mem/siz=25.6 ! return to the default setting
*** Running ferret script: bn_stat_precision.jnl
! bn_stat_precision.jnl
! 3/2017 *acm* Ticket 2512
@@ -103402,6 +103041,843 @@ list yvar[j=@sum]
Y : 0.5 to 3.5 (summed)
0.0000
+*** Running ferret script: bn722_bug_fixes.jnl
+! bn721_bug_fixes.jnl
+! test various fixes that went into version 7.22
+! 9/17 *acm*
+!
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dynamic_gather
+! err72_dynamic_gather.jnl
+! 9/25/2017 Ticket 2561
+! Combination of two transforms, and
+
+cancel data/all
+cancel memory
+
+! dataset from bn_dynamic_gather.jnl
+use tmp/test_dyn_mem.nc
+
+! w/ default amount of memory this doesn't need a split-gather
+! This result is correct
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+ 2236000.
+show memory/diag
+ No split/gather occurred in the last evaluation
+ Total table slots: 500
+ Free table slots: 497
+ Un-cached variables: 0
+ SET MEMORY/SIZE: 25.6 megawords
+ Peak demand: 4.008 megawords
+ Current cache: 4.008002 megawords
+
+! Now use smaller memory, so it'll split/gather in the T
+! direction. The answer in v7.2 was wrong.
+cancel memory
+set mem/siz=10
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+ 2236000.
+show memory/diag
+ No split/gather occurred in the last evaluation
+ Total table slots: 500
+ Free table slots: 497
+ Un-cached variables: 0
+ SET MEMORY/SIZE: 10 megawords
+ Peak demand: 4.008 megawords
+ Current cache: 4.008002 megawords
+
+! With an even smaller amount of memory, a different
+! incorrect result was listed with v7.2.
+cancel memory
+set mem/siz=1
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@SUM]
+ 2236000.
+sh mem/diag
+ Last gather
+ Variable Axis Xform Chunk Repeated
+ V1000 T AV4 173 1
+ Total table slots: 500
+ Free table slots: 495
+ Un-cached variables: 0
+ SET MEMORY/SIZE: 1000000 words
+ Peak demand: 697384 words
+ Current cache: 546466 words
+
+set mem/siz=25.6 ! return to the default setting
+
+
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_polymark_log
+
+! err721_polymark_log.jnl
+! Ticket 2562, polymark and other polygons over log axis.
+! 9/26/17 ACM
+
+let frqs = {0.01,0.011,0.012,0.013,0.014,0.015,0.025,0.026,0.027,0.028,\
+0.029,0.03,0.031,0.032,0.033,0.08,0.108,0.135,0.193,0.194,0.195,0.196,\
+0.197,0.227,0.228,0.229,0.255,0.256,0.31,0.311,0.312,0.362,0.363,0.364}
+
+let phas = {61.099,68.796,79.686,80.292, 104.212, 121.192,93.757,\
+102.549,115.240,112.831,103.433,102.032,105.109,104.216,93.173,-7.041,\
+-133.985,-162.018,161.157,154.128,146.717,140.252,132.944,-29.014,\
+-34.848,-38.376,-109.836,-119.620,12.858,17.047,22.327,-167.776,-169.991,-165.467}
+
+! Plots with /HLOG
+set v ul
+plot/hlog/vs/vlim=-180:180:45/nolabs/hlim=0.001:0.1 frqs,phas
+go polymark poly/hlog/over/nolabs/nokey/line/pal=red frqs, phas 1 square 0.6
+
+
+! more dynamic range
+set v ur
+let frq2 = XCAT(frqs, 10*frqs)
+let phas2 = XCAT(phas,phas)
+plot/hlog/vs/vlim=-180:180:45/nolabs frq2, phas2
+go polymark poly/hlog/over/nolabs/nokey/line/pal=green frq2, phas2 1 delta 0.8
+
+
+! more decades still
+set v ll
+let var3 = XCAT(0.1*frqs, frq2)
+let phas3 = XCAT(phas,phas2)
+plot/hlog/vs/vlim=-180:180:45/nolabs var3, phas3
+go polymark poly/hlog/over/nolabs/nokey/line/pal=purple_light var3, phas3 1 star 1.1
+
+
+! /VLOG
+set v lr
+plot/vlog/vs/hlim=-180:180:45/nolabs phas3, var3
+go polymark poly/vlog/over/nolabs/nokey/line/pal=blue_light phas3, var3 1 circle 0.7
+
+
+! Note /VLOG/HLOG together make a blank plot. Not worrying about that now.
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_letd_with_grave
+! err721_letd_with_grave
+! 10/6/17 ACM
+! See ticket 2563. Error parsing the grave-accent expr
+! because of the quotes around datset path and name.
+
+use "data/proleptic_gregorian.nc"
+
+! This is fine
+let/d="data/proleptic_gregorian.nc" var1 = my_data + 1
+
+! This resulted in an error
+let/d="data/proleptic_gregorian.nc" var2 = my_data - `my_data[L=@ave]`
+ !-> DEFINE VARIABLE/d="data/proleptic_gregorian.nc" var2 = my_data - 0.0133574854990002
+show data
+ currently SET data sets:
+ 1> data/proleptic_gregorian.nc (default)
+ name title I J K L
+ MY_DATA SIN(L[GT=TDAYS]) ... ... ... 1:32
+ ------------------------------
+ VAR2[D=proleptic_gregorian] = MY_DATA - 0.0133574854990002
+ VAR1[D=proleptic_gregorian] = MY_DATA + 1
+
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_color_levels
+! err721_color_levels
+! 10/11/2017 ACM
+! Ticket 2564, setting up color palette and levels for the second
+! plot caused a STOP in PyFerret or in Ferret the gks error message
+! gsetcolourrep() 96 Colour is outside range [0,1]
+
+
+let fcn = 0.5*COS(J[j=1:100]/30)+SIN(K[k=1:100]/20)
+fill/pal=land_sea_values/lev=vc 7000*fcn
+
+fill/pal=ocean_temp_bounds/lev=(-2,35,2) 18.5*fcn
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dup_labels
+! err721_dup_labels.jnl
+! ticket 2565
+! 10/13/17 ACM
+
+set mode logo
+use err721_dup_labels.nc
+
+! Draw time plot
+plot new_val
+ppl list labels
+ @ACRESHAPE(V,XTMS)
+
+
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver.7.3
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 2 8.000E+00 7.100E+00 0.060 0 SYSTEM @ASNOAA/PMEL TMAP
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS0DD-MON-YYYY HH:MM:SS
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+ LAB 4 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: err721_dup_labels
+ LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
+ LAB 5 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
+ LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
+
+! Overlay plots should add only the new labels needed. Ferret has
+! always redrawn them all, which was harmless. Now, only draw the
+! ones needed for each new /overlay
+
+plot/over/vs/line/color=green/title="deployment mean" {284.375, 285.5}, {3472.8, 3472.8}
+ppl list labels
+
+ @AS{284.375, 285.5}
+
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 -4.700E-01 -5.500E-01 0.080 0 SYSTEM @ASdeployment mean
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+plot/over/vs/line/color=red/title="HC mean" {284.375, 285.5}, {3472.9, 3472.9}
+ppl list labels
+
+ @AS{284.375, 285.5}
+
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 -4.700E-01 -7.300E-01 0.080 0 SYSTEM @ASHC mean
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+plot/over/vs/line/color=purple/nolab {284.42, 284.42}, {3472.6, 3473.1}
+
+! This caused labels below the plot way over to the right by the line
+plot/over/vs/line/color=purple/title="purple" {285.4, 285.4}, {3472.6, 3473.1}
+ppl list labels
+
+ @AS{285.4, 285.4}
+
+
+ XPOS YPOS HGT ROT UNITS
+ LAB 1 -4.700E-01 -9.100E-01 0.080 0 SYSTEM @ASpurple
+ LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
+
+set mode/last logo
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_plotuv
+! err721_plotuv.jnl
+! Ticket 2566: text size of zero causes graphics library errors
+!
+
+if ($program_name"0|PyFerret>1|*>0") then set text/font=arial
+ !-> if 0 then set text/font=arial
+
+! In PyFerret with -nodisplay a Cairo error on the zero-length
+! text size caused an ERROR and exit. Without -nodisplay it
+! issued errors and used some nominal size
+
+use coads_climatology
+let uwnd = sst
+let vwnd = -1*sst
+
+plot/set/x=180/y=0 uwnd,vwnd
+ppl axlsze,0,0
+ ppl plotuv 0,1
+
+if ($program_name"0|PyFerret>1|*>0") then cancel text
+ !-> if 0 then cancel text
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_ascii_size
+! err721_ascii_size.jnl
+! ACM 10/25/2017 Ticket 2567
+! Initializing an EZ dataset mis-counts the size until data is loaded
+
+file/var="t1,t2"/skip=1 err721_ascii_size.dat
+show data
+ currently SET data sets:
+ 1> ./data/err721_ascii_size.dat (default)
+ name title I J K L
+ T1 t1 1:3 ... ... ...
+ T2 t2 1:3 ... ... ...
+
+say `t1,return=iend`
+ !-> MESSAGE/CONTINUE 3
+3
+load t1
+say `t1,return=iend`
+ !-> MESSAGE/CONTINUE 3
+3
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_dot_grid
+! err721_dot_grid
+
+!!!! using dot_t(v1,v2) works fine
+
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot_t(v1,v2)
+
+show grid dp
+ GRID (G###)
+ name axis # pts start end subset
+ XAXIS X 3 r 1 3 full
+ normal Y
+ normal Z
+ normal T
+
+list dp
+ VARIABLE : DOT_T(V1,V2)
+ SUBSET : 3 points (X)
+ 1 / 1: 0.0368
+ 2 / 2: 0.1471
+ 3 / 3: 0.3310
+
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+
+!!!! using dot(v1,v2,4) gives the correct results
+
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot(v1,v2,4)
+
+! It would be nice if this showed the right grid with NO t axis.
+show grid dp
+ GRID XTGRID
+ name axis # pts start end subset
+ XAXIS X 3 r 1 3 full
+ normal Y
+ normal Z
+ TAXIS_DC T 240 r 0 59.75 full
+list dp
+ VARIABLE : DOT(V1,V2,4)
+ SUBSET : 3 points (X)
+ 1 / 1: 0.0368
+ 2 / 2: 0.1471
+ 3 / 3: 0.3310
+
+! but, at least cancel axis taxis_dc is ok
+! Previously the "can axis taxis_dc" failed.
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+
+GO bn_reset
+cancel mode verify
+ooooooooooooooooooooooooooooooooooooooooooo
+GO err721_stride_size
+! err721_stride_size.jnl
+! SHOW DATA and RETURN=isize were
+! not updated with new size on a SET AXIS/STRIDE
+! *ACM* 11/29/2017 github issue 1843
+
+use coads_climatology
+set axis/stride=5 `sst,return=xaxis`
+ !-> set axis/stride=5 COADSX
+
+! Should show new size for x axis
+show grid sst
+ GRID GSQ1
+ name axis # pts start end subset
+ (AX###) LONGITUDE 36mr 21E 11E(371) full
+ COADSY LATITUDE 90 r 89S 89N full
+ normal Z
+ TIME TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+say `sst,return=isize`
+ !-> MESSAGE/CONTINUE 36
+36
+
+! Restore axis, back to size 180
+cancel axis/stride `sst,return=xaxis`
+ !-> cancel axis/stride (AX###)
+show grid sst
+ GRID GSQ1
+ name axis # pts start end subset
+ COADSX LONGITUDE 180mr 21E 19E(379) full
+ COADSY LATITUDE 90 r 89S 89N full
+ normal Z
+ TIME TIME 3mr 16-JAN 06:00 17-MAR 02:58 full
+say `sst,return=isize`
+ !-> MESSAGE/CONTINUE 180
+180
+
+! Irregular axis
+
+USE truemonth.nc
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 239
+239
+SET AXIS/STRIDE=12/OFFSET=0 `var,return=taxis` ! every January
+ !-> SET AXIS/STRIDE=12/OFFSET=0 TRUEMONTH
+LIST var
+ VARIABLE : COS(T[GT=TRUEMONTH]/100)
+ FILENAME : truemonth.nc
+ SUBSET : 20 points (TIME)
+ 16-JAN-1950 / 1: 0.8459
+ 16-JAN-1951 / 2: -0.4792
+ 16-JAN-1952 / 3: -0.0086
+ 16-JAN-1953 / 4: 0.5030
+ 16-JAN-1954 / 5: -0.8601
+ 16-JAN-1955 / 6: 0.9996
+ 16-JAN-1956 / 7: -0.8863
+ 16-JAN-1957 / 8: 0.5404
+ 16-JAN-1958 / 9: -0.0625
+ 16-JAN-1959 / 10: -0.4313
+ 16-JAN-1960 / 11: 0.8159
+ 16-JAN-1961 / 12: -0.9952
+ 16-JAN-1962 / 13: 0.9170
+ 16-JAN-1963 / 14: -0.6068
+ 16-JAN-1964 / 15: 0.1432
+ 16-JAN-1965 / 16: 0.3660
+ 16-JAN-1966 / 17: -0.7727
+ 16-JAN-1967 / 18: 0.9840
+ 16-JAN-1968 / 19: -0.9463
+ 16-JAN-1969 / 20: 0.6618
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 20
+20
+
+can axis/stride `var,return=taxis`
+ !-> can axis/stride (AX###)
+sh grid var
+ GRID GRZ1
+ name axis # pts start end subset
+ normal X
+ normal Y
+ normal Z
+ TRUEMONTH TIME 239 i 16-JAN-1950 12:00 16-NOV-1969 00:00 full
+SET AXIS/STRIDE=12/OFFSET=2 `var,return=taxis` ! every March
+ !-> SET AXIS/STRIDE=12/OFFSET=2 TRUEMONTH
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 22
+22
+list var
+ VARIABLE : COS(T[GT=TRUEMONTH]/100)
+ FILENAME : truemonth.nc
+ SUBSET : 20 points (TIME)
+ 16-MAR-1950 / 1: 0.4061
+ 16-MAR-1951 / 2: 0.0901
+ 16-MAR-1952 / 3: -0.5718
+ 16-MAR-1953 / 4: 0.8988
+ 16-MAR-1954 / 5: -0.9985
+ 16-MAR-1955 / 6: 0.8456
+ 16-MAR-1956 / 7: -0.4700
+ 16-MAR-1957 / 8: -0.0191
+ 16-MAR-1958 / 9: 0.5034
+ 16-MAR-1959 / 10: -0.8603
+ 16-MAR-1960 / 11: 0.9999
+ 16-MAR-1961 / 12: -0.8814
+ 16-MAR-1962 / 13: 0.5400
+ 16-MAR-1963 / 14: -0.0620
+ 16-MAR-1964 / 15: -0.4407
+ 16-MAR-1965 / 16: 0.8219
+ 16-MAR-1966 / 17: -0.9952
+ 16-MAR-1967 / 18: 0.9168
+ 16-MAR-1968 / 19: -0.5985
+ 16-MAR-1969 / 20: 0.1328
+say `var,return=lsize`
+ !-> MESSAGE/CONTINUE 22
+22
+
+*** Running ferret script: bn_tseries_modulo.jnl
+! bn_tseries_modulo.jnl
+! 9/2017 TSERIES aggregations
+!
+! If a time axis lies within year 0 or year 1 they are seen by ferret
+! as modulo. For a tseries aggregation, if the entire aggregated axis
+! is still modulo, then mark it as such, but otherwise it is not modulo.
+!
+! The time axes for these files both lie within year 0.
+! The aggregation has a modulo time axis.
+
+tseries heat_0a.nc, heat_0b.nc
+show grid total_ocean_sens_heat
+ GRID GMI1
+ name axis # pts start end subset
+ SCALAR_AXIS LONGITUDE 1 r 0E 0E full
+ normal Y
+ normal Z
+ TIME TIME 7mi 16-JAN 12:00 16-NOV 00:00 full
+
+! The file heat_01 lies in year 1 so the total TSERIES length is longer than a year.
+
+can dat/all
+tseries heat_0a.nc, heat_0b.nc, heat_01.nc
+show grid total_ocean_sens_heat
+ GRID GMI1
+ name axis # pts start end subset
+ SCALAR_AXIS LONGITUDE 1 r 0E 0E full
+ normal Y
+ normal Z
+ TIME TIME 19 i 16-JAN-0000 12:00 16-DEC-0002 12:00 full
+
+! Here is the example reported by Russ Fiedler, 9/5/17, on the Ferret list.
+! A file in year 1 and a file in year 2 were previously made into a 24-month
+! axis which was marked as modulo.
+
+can dat/all
+tseries heat_00.nc, heat_01.nc
+show grid total_ocean_sens_heat
+ GRID GAT1
+ name axis # pts start end subset
+ SCALAR_AXIS LONGITUDE 1 r 0E 0E full
+ normal Y
+ normal Z
+ TIME TIME 24 i 16-JAN-0001 12:00 16-DEC-0002 12:00 full
+
+
+! What happens with files that are members of our descriptor examples?
+! (coads_clim.003 needed changing to have the same time-axis name)
+
+tseries coads_clim_irreg = coads_clim.001, coads_clim.003
+show grid sst
+ GRID GMU1
+ name axis # pts start end subset
+ COADSX LONGITUDE 180mr 21E 19E(379) full
+ COADSY LATITUDE 90 r 89S 89N full
+ normal Z
+ TIME1 TIME 4mi 16-JAN 06:00 16-JUN 10:25 full
+list/x=180/y=0 sst
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_clim_irreg
+ SUBSET : 4 points (TIME)
+ LONGITUDE: 179E
+ LATITUDE : 1S
+ 179E
+ 80
+ 16-JAN / 1: 28.20
+ 15-FEB / 2: 28.36
+ 16-MAY / 3: 28.49
+ 16-JUN / 4: 28.32
+
+! This descriptor file lists the same datasets, which each contain two
+! timesteps, but it lists S_START = S_END on the second set so it reads
+! just one timestep from coads_clim.003
+
+! The descriptor-file code does not mark the axis as modulo.
+! (Not changing this at this time.)
+
+can data/all
+use coads_clim_irreg.des
+show grid sst
+ GRID GJR1
+ name axis # pts start end subset
+ COADSX LONGITUDE 180mr 21E 19E(379) full
+ COADSY LATITUDE 90 r 89S 89N full
+ normal Z
+ TIME1 TIME 3 i 16-JAN-1900 06:00 17-MAY-1900 23:56 full
+list/x=180/y=0 sst
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ DATA SET : COAD
+ FILENAME : coads_clim_irreg.des
+ SUBSET : 3 points (TIME)
+ LONGITUDE: 179E
+ LATITUDE : 1S
+ 179E
+ 80
+ 16-JAN-1900 / 1: 28.20
+ 15-FEB-1900 / 2: 28.36
+ 17-MAY-1900 / 3: 28.49
+*** Running ferret script: bn_huge_axis.jnl
+! bn_huge_axis
+! 9/14/17 Dynamic coordinate storage
+! Defining extra-long coordinate axes, and save to a file
+! Use a dataset with extra-long coordinate axis.
+
+! Previously this would have given a program-limit-reached error
+let yy = if y[j=1:900000] eq 10 then 10.1 else y[j=1:900000]
+define axis/y longyax = yy
+
+let/bad=0 var = y[gy=longyax]
+
+list/j=5:15 var
+ VARIABLE : Y[GY=LONGYAX]
+ SUBSET : 11 points (Y)
+ 5 / 5: 5.00
+ 6 / 6: 6.00
+ 7 / 7: 7.00
+ 8 / 8: 8.00
+ 9 / 9: 9.00
+ 10.1 / 10: 10.10
+ 11 / 11: 11.00
+ 12 / 12: 12.00
+ 13 / 13: 13.00
+ 14 / 14: 14.00
+ 15 / 15: 15.00
+save/clobber/file=a.nc/outtype=int var
+
+! Previously issued a limit-on-storage-for-coordinates error
+can var/all
+can axis longyax
+
+use a
+show dat
+ currently SET data sets:
+ 1> ./a.nc (default)
+ name title I J K L
+ VAR Y[GY=LONGYAX] ... 1:900000 ... ...
+
+list/j=5:15 var
+ VARIABLE : Y[GY=LONGYAX]
+ FILENAME : a.nc
+ SUBSET : 11 points (Y)
+ 5 / 5: 5.00
+ 6 / 6: 6.00
+ 7 / 7: 7.00
+ 8 / 8: 8.00
+ 9 / 9: 9.00
+ 10.1 / 10: 10.00
+ 11 / 11: 11.00
+ 12 / 12: 12.00
+ 13 / 13: 13.00
+ 14 / 14: 14.00
+ 15 / 15: 15.00
+list/j=899995:9000000 var
+ VARIABLE : Y[GY=LONGYAX]
+ FILENAME : a.nc
+ SUBSET : 6 points (Y)
+ 899995 / 899995: 899995.
+ 899996 / 899996: 899996.
+ 899997 / 899997: 899997.
+ 899998 / 899998: 899998.
+ 899999 / 899999: 899999.
+ 900000 / 900000: 900000.
+
+! clean up. Remove our huge file
+cancel data/all
+sp rm a.nc
+*** Running ferret script: bn_save_as_global.jnl
+! bn_save_asglobal
+! 11/2017
+! Simple command to save a variable as a global attribute.
+! Works on an existing or a new file.
+
+! Write to a new file. Gets the default global attributes.
+
+can mode upcase
+let my_extra_attribute = "Extra attribute: This file is just attributes to start with"
+save/asglobal/clobber/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+netcdf a {
+
+// global attributes:
+ :history = "FERRET V7.3 DD-MON-YY" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: This file is just attributes to start with" ;
+}
+
+! Or write new attributes to a file that has data
+
+use coads_climatology
+save/clobber/file=a.nc sst[x=150:170,y=0:10]
+let my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes"
+save/asglobal/append/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+ COADSX = 10 ;
+ COADSY = 5 ;
+ TIME = UNLIMITED ; // (3 currently)
+variables:
+ double COADSX(COADSX) ;
+ COADSX:units = "degrees_east" ;
+ COADSX:modulo = " " ;
+ COADSX:point_spacing = "even" ;
+ COADSX:axis = "X" ;
+ COADSX:standard_name = "longitude" ;
+ double COADSY(COADSY) ;
+ COADSY:units = "degrees_north" ;
+ COADSY:point_spacing = "even" ;
+ COADSY:axis = "Y" ;
+ COADSY:standard_name = "latitude" ;
+ double TIME(TIME) ;
+ TIME:units = "hour since 0000-01-01 00:00:00" ;
+ TIME:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME:modulo = " " ;
+ TIME:axis = "T" ;
+ TIME:standard_name = "time" ;
+ float SST(TIME, COADSY, COADSX) ;
+ SST:missing_value = -1.e+34f ;
+ SST:_FillValue = -1.e+34f ;
+ SST:long_name = "SEA SURFACE TEMPERATURE" ;
+ SST:history = "From coads_climatology" ;
+ SST:units = "Deg C" ;
+
+// global attributes:
+ :history = "FERRET V7.3 DD-MON-YY" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+}
+
+! Create an attribute from a file variable
+
+use maize_1
+save/append/file=a.nc/j=4/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+ COADSX = 10 ;
+ COADSY = 5 ;
+ TIME = UNLIMITED ; // (3 currently)
+variables:
+ double COADSX(COADSX) ;
+ COADSX:units = "degrees_east" ;
+ COADSX:modulo = " " ;
+ COADSX:point_spacing = "even" ;
+ COADSX:axis = "X" ;
+ COADSX:standard_name = "longitude" ;
+ double COADSY(COADSY) ;
+ COADSY:units = "degrees_north" ;
+ COADSY:point_spacing = "even" ;
+ COADSY:axis = "Y" ;
+ COADSY:standard_name = "latitude" ;
+ double TIME(TIME) ;
+ TIME:units = "hour since 0000-01-01 00:00:00" ;
+ TIME:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME:modulo = " " ;
+ TIME:axis = "T" ;
+ TIME:standard_name = "time" ;
+ float SST(TIME, COADSY, COADSX) ;
+ SST:missing_value = -1.e+34f ;
+ SST:_FillValue = -1.e+34f ;
+ SST:long_name = "SEA SURFACE TEMPERATURE" ;
+ SST:history = "From coads_climatology" ;
+ SST:units = "Deg C" ;
+
+// global attributes:
+ :history = "FERRET V7.3 DD-MON-YY" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+ :MAIZE_YIELD = 0.05408529f, 0.1875f, -0.04314715f, 9.96921e+36f ;
+}
+
+! A second write of the same attribute overwrites the attribute values
+! (append here is saying dont start a new file)
+
+save/append/file=a.nc/j=5/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+ COADSX = 10 ;
+ COADSY = 5 ;
+ TIME = UNLIMITED ; // (3 currently)
+variables:
+ double COADSX(COADSX) ;
+ COADSX:units = "degrees_east" ;
+ COADSX:modulo = " " ;
+ COADSX:point_spacing = "even" ;
+ COADSX:axis = "X" ;
+ COADSX:standard_name = "longitude" ;
+ double COADSY(COADSY) ;
+ COADSY:units = "degrees_north" ;
+ COADSY:point_spacing = "even" ;
+ COADSY:axis = "Y" ;
+ COADSY:standard_name = "latitude" ;
+ double TIME(TIME) ;
+ TIME:units = "hour since 0000-01-01 00:00:00" ;
+ TIME:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME:modulo = " " ;
+ TIME:axis = "T" ;
+ TIME:standard_name = "time" ;
+ float SST(TIME, COADSY, COADSX) ;
+ SST:missing_value = -1.e+34f ;
+ SST:_FillValue = -1.e+34f ;
+ SST:long_name = "SEA SURFACE TEMPERATURE" ;
+ SST:history = "From coads_climatology" ;
+ SST:units = "Deg C" ;
+
+// global attributes:
+ :history = "FERRET V7.3 DD-MON-YY" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+ :MAIZE_YIELD = 0.02854787f, 0.02296161f, 0.02589183f, 0.01891576f ;
+}
+
+! Allow for various /OUTTYPE as in any SAVE command
+let another = {1, 2, 3.1}
+save/append/file=a.nc/outtype=INT/asglobal another
+sp ncdump -h a.nc
+netcdf a {
+dimensions:
+ COADSX = 10 ;
+ COADSY = 5 ;
+ TIME = UNLIMITED ; // (3 currently)
+variables:
+ double COADSX(COADSX) ;
+ COADSX:units = "degrees_east" ;
+ COADSX:modulo = " " ;
+ COADSX:point_spacing = "even" ;
+ COADSX:axis = "X" ;
+ COADSX:standard_name = "longitude" ;
+ double COADSY(COADSY) ;
+ COADSY:units = "degrees_north" ;
+ COADSY:point_spacing = "even" ;
+ COADSY:axis = "Y" ;
+ COADSY:standard_name = "latitude" ;
+ double TIME(TIME) ;
+ TIME:units = "hour since 0000-01-01 00:00:00" ;
+ TIME:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME:modulo = " " ;
+ TIME:axis = "T" ;
+ TIME:standard_name = "time" ;
+ float SST(TIME, COADSY, COADSX) ;
+ SST:missing_value = -1.e+34f ;
+ SST:_FillValue = -1.e+34f ;
+ SST:long_name = "SEA SURFACE TEMPERATURE" ;
+ SST:history = "From coads_climatology" ;
+ SST:units = "Deg C" ;
+
+// global attributes:
+ :history = "FERRET V7.3 DD-MON-YY" ;
+ :Conventions = "CF-1.6" ;
+ :my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes" ;
+ :MAIZE_YIELD = 0.02854787f, 0.02296161f, 0.02589183f, 0.01891576f ;
+ :another = 1, 2, 3 ;
+}
+
+
+! Intentional errors
+set mode ignore
+set data 1
+
+! String attributes may only be single-valued
+let multistring = {"a", "b", "c", "", "e"}
+save/asglobal/append/file=a.nc multistring
+
+! Refuse to write multi-dimensioned attributes y-t
+save/append/asglobal/x=150/outtype=float/file=a.nc sst
+
+! Also arbitrarily refuse to write more than a list of 100 values.
+set mode ignore
+save/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+
+set mode /last upcase
*** Running ferret script: bn_gif.jnl
! bn450_gif.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of gif file in batch mode using
@@ -105000,8 +105476,8 @@ exit/command
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "7.21"
-FERRET_PLATFORM = "Linux 3.10.0-693.el7.x86_64 64-bit"
+FERRET_VERSION = "7.3"
+FERRET_PLATFORM = "Linux 3.10.0-693.5.2.el7.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.4.1.1 of Jun 27 2017 09:17:01 $"
FERRET_MEMORY = "31"
@@ -105017,8 +105493,8 @@ PROGRAM_NAME = "Ferret"
PEAK_MEMORY = "0"
SPAWN_OK = "1"
SPAWN_STATUS = "0"
-GO_FILE = "./bn_startupfile.jnl"
-LAST_GO_FILE = "./bn_startupfile.jnl"
+GO_FILE = "./genjnls/bn_startupfile.jnl"
+LAST_GO_FILE = "./genjnls/bn_startupfile.jnl"
PPL$FORMAT = "(3F10.2)"
PPL$PLTNME = ".gif"
PPL$TEKNME = "/dev/tt"
@@ -105081,7 +105557,7 @@ VP_YHI = "1"
6D_LAB SET
FRUGAL SET 30
currently SET data sets:
- 1> ./gtbc011.cdf (default)
+ 1> ./data/gtbc011.cdf (default)
name title I J K L
TEMP TEMPERATURE 70:72 1:100 1:27 1:3
SALT (SALINITY(ppt) - 35) /1000 70:71 1:100 1:27 1:3
diff --git a/bench/test_results/ferret_run_tests_ncdump b/bench/test_results/ferret_run_tests_ncdump
index 19a64ec..c09d673 100644
--- a/bench/test_results/ferret_run_tests_ncdump
+++ b/bench/test_results/ferret_run_tests_ncdump
@@ -51,7 +51,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -76,7 +76,7 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -113,7 +113,7 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -152,7 +152,7 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -187,7 +187,7 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -257,7 +257,7 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -314,7 +314,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -371,7 +371,7 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -426,7 +426,7 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -474,7 +474,7 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -568,7 +568,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -638,7 +638,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -689,7 +689,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -780,7 +780,7 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -807,7 +807,7 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -831,7 +831,7 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -858,14 +858,14 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
*** Running ferret script: bn_tab_comma_multivar.jnl
*** Running ferret script: bn_element_functions.jnl
*** Running ferret script: bn_long_revision_num.jnl
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
*** Running ferret script: bn_window_title.jnl
*** Running ferret script: bn_last_error.jnl
*** Running ferret script: bn_deg_min.jnl
@@ -901,7 +901,7 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -974,7 +974,7 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1018,7 +1018,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1060,7 +1060,7 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1168,7 +1168,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
@@ -1209,7 +1209,7 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
@@ -1232,7 +1232,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1258,7 +1258,7 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1278,7 +1278,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1299,7 +1299,7 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1342,7 +1342,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
@@ -1382,7 +1382,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
@@ -1420,7 +1420,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
@@ -1449,7 +1449,7 @@ variables:
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1482,7 +1482,7 @@ variables:
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1508,7 +1508,7 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1554,7 +1554,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
@@ -1661,7 +1661,7 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
@@ -1703,7 +1703,7 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1786,7 +1786,7 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1823,7 +1823,7 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1863,7 +1863,7 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1914,7 +1914,7 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -1973,7 +1973,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2018,7 +2018,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2061,7 +2061,7 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2096,7 +2096,7 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2130,7 +2130,7 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
@@ -2160,7 +2160,7 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
@@ -2189,7 +2189,7 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
@@ -2250,7 +2250,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2295,7 +2295,7 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
*** Running ferret script: bn_transforms.jnl
@@ -2336,7 +2336,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -2366,7 +2366,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -2396,7 +2396,7 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -2449,7 +2449,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2491,7 +2491,7 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2509,7 +2509,7 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
*** Running ferret script: bn_no_valid_on_plot.jnl
@@ -2531,7 +2531,7 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -2549,7 +2549,7 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
@@ -2566,7 +2566,7 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -2587,7 +2587,7 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -2658,7 +2658,7 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
*** Running ferret script: bn_cdf_keepax.jnl
@@ -2687,7 +2687,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
@@ -2714,7 +2714,7 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
*** Running ferret script: bn_key_label_minmax.jnl
@@ -2819,7 +2819,7 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
@@ -2851,7 +2851,7 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
@@ -2884,7 +2884,7 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
*** Running ferret script: bn_repeated_coords.jnl
@@ -2961,7 +2961,7 @@ variables:
TIME:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -2999,7 +2999,7 @@ variables:
time:history = "From http://tds.climatedatacloud.com/thredds/dodsC/ensembles/nmme_gfdl/TwoD" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
data:
@@ -3051,7 +3051,7 @@ variables:
MYVAR:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
netcdf a {
@@ -3065,7 +3065,7 @@ variables:
MYVAR:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
}
*** Running ferret script: bn_list_clim_axes.jnl
@@ -3093,6 +3093,10 @@ variables:
*** Running ferret script: bn_transp_choose.jnl
*** Running ferret script: bn_iin_regrid.jnl
*** Running ferret script: bn721_bug_fixes.jnl
+*** Running ferret script: bn722_bug_fixes.jnl
+*** Running ferret script: bn_tseries_modulo.jnl
+*** Running ferret script: bn_huge_axis.jnl
+*** Running ferret script: bn_save_as_global.jnl
*** Running ferret script: bn_gif.jnl
*** Running ferret script: bn_ps.jnl
*** Running ferret script: bn_all_ef.jnl
@@ -3751,7 +3755,7 @@ variables:
tmonth:history = "added to /home/data/socat/socatV3/492C/492C19881104.nc" ;
// global attributes:
- :history = "FERRET V7.21 DD-MON-YY" ;
+ :history = "FERRET V7.3 DD-MON-YY" ;
:Conventions = "CF-1.6" ;
:featureType = "Trajectory" ;
:decimation = "218 original number of obs. Piecewise decimated to 23 obs using tolerances: lon 1, lat 1, fco2_rec 4" ;
diff --git a/bench/test_results/forecast_actual.gif b/bench/test_results/forecast_actual.gif
index 346def1..7f1f0eb 100644
Binary files a/bench/test_results/forecast_actual.gif and b/bench/test_results/forecast_actual.gif differ
diff --git a/bench/test_results/forecast_diagview.gif b/bench/test_results/forecast_diagview.gif
index 15b03fd..78229c2 100644
Binary files a/bench/test_results/forecast_diagview.gif and b/bench/test_results/forecast_diagview.gif differ
diff --git a/bench/test_results/forecast_leadview.gif b/bench/test_results/forecast_leadview.gif
index 982f87d..07c8d66 100644
Binary files a/bench/test_results/forecast_leadview.gif and b/bench/test_results/forecast_leadview.gif differ
diff --git a/bench/test_results/gif_dashbug.gif b/bench/test_results/gif_dashbug.gif
index 21120f5..0b899c5 100644
Binary files a/bench/test_results/gif_dashbug.gif and b/bench/test_results/gif_dashbug.gif differ
diff --git a/bench/test_results/legend_1d_plots.gif b/bench/test_results/legend_1d_plots.gif
index bfed9a8..55d184e 100644
Binary files a/bench/test_results/legend_1d_plots.gif and b/bench/test_results/legend_1d_plots.gif differ
diff --git a/bench/test_results/levels_one_level.gif b/bench/test_results/levels_one_level.gif
index 4336537..bc1dbda 100644
Binary files a/bench/test_results/levels_one_level.gif and b/bench/test_results/levels_one_level.gif differ
diff --git a/bench/test_results/lon_lat_label_controls.gif b/bench/test_results/lon_lat_label_controls.gif
index 90e86d2..c64bb04 100644
Binary files a/bench/test_results/lon_lat_label_controls.gif and b/bench/test_results/lon_lat_label_controls.gif differ
diff --git a/bench/test_results/testbackground.gif b/bench/test_results/testbackground.gif
index ee9ab0e..a26f5c5 100644
Binary files a/bench/test_results/testbackground.gif and b/bench/test_results/testbackground.gif differ
diff --git a/bench/test_results/vs_lon_over.gif b/bench/test_results/vs_lon_over.gif
index 29caa80..ac8ddf6 100644
Binary files a/bench/test_results/vs_lon_over.gif and b/bench/test_results/vs_lon_over.gif differ
diff --git a/bench/NORM_CDF.DAT b/bench/unused/NORM_CDF.DAT
similarity index 100%
rename from bench/NORM_CDF.DAT
rename to bench/unused/NORM_CDF.DAT
diff --git a/bench/bench_add_9_visual.jnl b/bench/unused/bench_add_9_visual.jnl
similarity index 100%
rename from bench/bench_add_9_visual.jnl
rename to bench/unused/bench_add_9_visual.jnl
diff --git a/bench/bench_avet_visual.jnl b/bench/unused/bench_avet_visual.jnl
similarity index 100%
rename from bench/bench_avet_visual.jnl
rename to bench/unused/bench_avet_visual.jnl
diff --git a/bench/bench_extrema.jnl b/bench/unused/bench_extrema.jnl
similarity index 100%
rename from bench/bench_extrema.jnl
rename to bench/unused/bench_extrema.jnl
diff --git a/bench/bench_fft_visual.jnl b/bench/unused/bench_fft_visual.jnl
similarity index 100%
rename from bench/bench_fft_visual.jnl
rename to bench/unused/bench_fft_visual.jnl
diff --git a/bench/bench_gridding_visual.jnl b/bench/unused/bench_gridding_visual.jnl
similarity index 100%
rename from bench/bench_gridding_visual.jnl
rename to bench/unused/bench_gridding_visual.jnl
diff --git a/bench/bench_pass_thru_visual.jnl b/bench/unused/bench_pass_thru_visual.jnl
similarity index 100%
rename from bench/bench_pass_thru_visual.jnl
rename to bench/unused/bench_pass_thru_visual.jnl
diff --git a/bench/bench_sorti_visual.jnl b/bench/unused/bench_sorti_visual.jnl
similarity index 100%
rename from bench/bench_sorti_visual.jnl
rename to bench/unused/bench_sorti_visual.jnl
diff --git a/bench/bench_sortj_visual.jnl b/bench/unused/bench_sortj_visual.jnl
similarity index 100%
rename from bench/bench_sortj_visual.jnl
rename to bench/unused/bench_sortj_visual.jnl
diff --git a/bench/bench_sortk_visual.jnl b/bench/unused/bench_sortk_visual.jnl
similarity index 100%
rename from bench/bench_sortk_visual.jnl
rename to bench/unused/bench_sortk_visual.jnl
diff --git a/bench/bench_sortl_visual.jnl b/bench/unused/bench_sortl_visual.jnl
similarity index 100%
rename from bench/bench_sortl_visual.jnl
rename to bench/unused/bench_sortl_visual.jnl
diff --git a/bench/bench_storage_visual.jnl b/bench/unused/bench_storage_visual.jnl
similarity index 100%
rename from bench/bench_storage_visual.jnl
rename to bench/unused/bench_storage_visual.jnl
diff --git a/bench/bench_subtract_visual.jnl b/bench/unused/bench_subtract_visual.jnl
similarity index 100%
rename from bench/bench_subtract_visual.jnl
rename to bench/unused/bench_subtract_visual.jnl
diff --git a/bench/bn301_mem_mgmt.jnl b/bench/unused/bn301_mem_mgmt.jnl
similarity index 100%
rename from bench/bn301_mem_mgmt.jnl
rename to bench/unused/bn301_mem_mgmt.jnl
diff --git a/bench/bn_1d_gather.jnl b/bench/unused/bn_1d_gather.jnl
similarity index 100%
rename from bench/bn_1d_gather.jnl
rename to bench/unused/bn_1d_gather.jnl
diff --git a/bench/bn_all_dods.jnl b/bench/unused/bn_all_dods.jnl
similarity index 100%
rename from bench/bn_all_dods.jnl
rename to bench/unused/bn_all_dods.jnl
diff --git a/bench/bn_appende.jnl b/bench/unused/bn_appende.jnl
similarity index 100%
rename from bench/bn_appende.jnl
rename to bench/unused/bn_appende.jnl
diff --git a/bench/bn_ax_attrib.jnl b/bench/unused/bn_ax_attrib.jnl
similarity index 100%
rename from bench/bn_ax_attrib.jnl
rename to bench/unused/bn_ax_attrib.jnl
diff --git a/bench/bn_dods_strides.jnl b/bench/unused/bn_dods_strides.jnl
similarity index 100%
rename from bench/bn_dods_strides.jnl
rename to bench/unused/bn_dods_strides.jnl
diff --git a/bench/bn_encode_url.jnl b/bench/unused/bn_encode_url.jnl
similarity index 100%
rename from bench/bn_encode_url.jnl
rename to bench/unused/bn_encode_url.jnl
diff --git a/bench/bn_gather_4d_ave.jnl b/bench/unused/bn_gather_4d_ave.jnl
similarity index 100%
rename from bench/bn_gather_4d_ave.jnl
rename to bench/unused/bn_gather_4d_ave.jnl
diff --git a/bench/bn_gather_4d_din.jnl b/bench/unused/bn_gather_4d_din.jnl
similarity index 100%
rename from bench/bn_gather_4d_din.jnl
rename to bench/unused/bn_gather_4d_din.jnl
diff --git a/bench/bn_gather_4d_var.jnl b/bench/unused/bn_gather_4d_var.jnl
similarity index 100%
rename from bench/bn_gather_4d_var.jnl
rename to bench/unused/bn_gather_4d_var.jnl
diff --git a/bench/bn_keep_axnames.jnl b/bench/unused/bn_keep_axnames.jnl
similarity index 100%
rename from bench/bn_keep_axnames.jnl
rename to bench/unused/bn_keep_axnames.jnl
diff --git a/bench/bn_mn_fcns.jnl b/bench/unused/bn_mn_fcns.jnl
similarity index 100%
rename from bench/bn_mn_fcns.jnl
rename to bench/unused/bn_mn_fcns.jnl
diff --git a/bench/bn_nco_functions.jnl b/bench/unused/bn_nco_functions.jnl
similarity index 100%
rename from bench/bn_nco_functions.jnl
rename to bench/unused/bn_nco_functions.jnl
diff --git a/bench/bn_packed_coordinates.jnl b/bench/unused/bn_packed_coordinates.jnl
similarity index 100%
rename from bench/bn_packed_coordinates.jnl
rename to bench/unused/bn_packed_coordinates.jnl
diff --git a/bench/bn_ppl_errors.jnl b/bench/unused/bn_ppl_errors.jnl
similarity index 100%
rename from bench/bn_ppl_errors.jnl
rename to bench/unused/bn_ppl_errors.jnl
diff --git a/bench/bn_samplexz.jnl b/bench/unused/bn_samplexz.jnl
similarity index 100%
rename from bench/bn_samplexz.jnl
rename to bench/unused/bn_samplexz.jnl
diff --git a/bench/bn_sampleyz.jnl b/bench/unused/bn_sampleyz.jnl
similarity index 100%
rename from bench/bn_sampleyz.jnl
rename to bench/unused/bn_sampleyz.jnl
diff --git a/bench/bn_sho_att_longnames.jnl b/bench/unused/bn_sho_att_longnames.jnl
similarity index 100%
rename from bench/bn_sho_att_longnames.jnl
rename to bench/unused/bn_sho_att_longnames.jnl
diff --git a/bench/bn_warn_subspan.jnl b/bench/unused/bn_warn_subspan.jnl
similarity index 100%
rename from bench/bn_warn_subspan.jnl
rename to bench/unused/bn_warn_subspan.jnl
diff --git a/bench/bn_zaxr_fcns.jnl b/bench/unused/bn_zaxr_fcns.jnl
similarity index 100%
rename from bench/bn_zaxr_fcns.jnl
rename to bench/unused/bn_zaxr_fcns.jnl
diff --git a/bench/err491_cdf_childax.jnl b/bench/unused/err491_cdf_childax.jnl
similarity index 100%
rename from bench/err491_cdf_childax.jnl
rename to bench/unused/err491_cdf_childax.jnl
diff --git a/bench/err491_days1900.jnl b/bench/unused/err491_days1900.jnl
similarity index 100%
rename from bench/err491_days1900.jnl
rename to bench/unused/err491_days1900.jnl
diff --git a/bench/err491_gt_syntax.jnl b/bench/unused/err491_gt_syntax.jnl
similarity index 100%
rename from bench/err491_gt_syntax.jnl
rename to bench/unused/err491_gt_syntax.jnl
diff --git a/bench/err491_interp.jnl b/bench/unused/err491_interp.jnl
similarity index 100%
rename from bench/err491_interp.jnl
rename to bench/unused/err491_interp.jnl
diff --git a/bench/err491_mc.jnl b/bench/unused/err491_mc.jnl
similarity index 100%
rename from bench/err491_mc.jnl
rename to bench/unused/err491_mc.jnl
diff --git a/bench/err491_reshape_limits.jnl b/bench/unused/err491_reshape_limits.jnl
similarity index 100%
rename from bench/err491_reshape_limits.jnl
rename to bench/unused/err491_reshape_limits.jnl
diff --git a/bench/err491_shade_lev_roundoff.jnl b/bench/unused/err491_shade_lev_roundoff.jnl
similarity index 100%
rename from bench/err491_shade_lev_roundoff.jnl
rename to bench/unused/err491_shade_lev_roundoff.jnl
diff --git a/bench/err491_zaxreplace.jnl b/bench/unused/err491_zaxreplace.jnl
similarity index 100%
rename from bench/err491_zaxreplace.jnl
rename to bench/unused/err491_zaxreplace.jnl
diff --git a/bench/err500_logcontour.jnl b/bench/unused/err500_logcontour.jnl
similarity index 100%
rename from bench/err500_logcontour.jnl
rename to bench/unused/err500_logcontour.jnl
diff --git a/bench/err580_def_t_norange.jnl b/bench/unused/err580_def_t_norange.jnl
similarity index 100%
rename from bench/err580_def_t_norange.jnl
rename to bench/unused/err580_def_t_norange.jnl
diff --git a/bench/err684_cancel_att.jnl b/bench/unused/err684_cancel_att.jnl
similarity index 100%
rename from bench/err684_cancel_att.jnl
rename to bench/unused/err684_cancel_att.jnl
diff --git a/bench/err693_check_edges.jnl b/bench/unused/err693_check_edges.jnl
similarity index 100%
rename from bench/err693_check_edges.jnl
rename to bench/unused/err693_check_edges.jnl
diff --git a/bench/err69_if_then_split.jnl b/bench/unused/err69_if_then_split.jnl
similarity index 100%
rename from bench/err69_if_then_split.jnl
rename to bench/unused/err69_if_then_split.jnl
diff --git a/bench/err69_repeat_in_if.jnl b/bench/unused/err69_repeat_in_if.jnl
similarity index 100%
rename from bench/err69_repeat_in_if.jnl
rename to bench/unused/err69_repeat_in_if.jnl
diff --git a/bench/objective.jnl b/bench/unused/objective.jnl
similarity index 100%
rename from bench/objective.jnl
rename to bench/unused/objective.jnl
diff --git a/bench/outside_the_lines.jnl b/bench/unused/outside_the_lines.jnl
similarity index 100%
rename from bench/outside_the_lines.jnl
rename to bench/unused/outside_the_lines.jnl
diff --git a/bench/run_all.sh b/bench/unused/run_all.sh
similarity index 100%
rename from bench/run_all.sh
rename to bench/unused/run_all.sh
diff --git a/bench/test b/bench/unused/test
similarity index 100%
rename from bench/test
rename to bench/unused/test
diff --git a/bench/bn491_bug_fixes.jnl b/bench/v4jnls/bn491_bug_fixes.jnl
similarity index 100%
rename from bench/bn491_bug_fixes.jnl
rename to bench/v4jnls/bn491_bug_fixes.jnl
diff --git a/bench/bn_axis_limits.jnl b/bench/v4jnls/bn_axis_limits.jnl
similarity index 100%
rename from bench/bn_axis_limits.jnl
rename to bench/v4jnls/bn_axis_limits.jnl
diff --git a/bench/bn_axis_limits.sub1 b/bench/v4jnls/bn_axis_limits.sub1
similarity index 100%
rename from bench/bn_axis_limits.sub1
rename to bench/v4jnls/bn_axis_limits.sub1
diff --git a/bench/bn_axis_limits.sub2 b/bench/v4jnls/bn_axis_limits.sub2
similarity index 100%
rename from bench/bn_axis_limits.sub2
rename to bench/v4jnls/bn_axis_limits.sub2
diff --git a/bench/bn_cdf.jnl b/bench/v4jnls/bn_cdf.jnl
similarity index 100%
rename from bench/bn_cdf.jnl
rename to bench/v4jnls/bn_cdf.jnl
diff --git a/bench/bn_cdf.sub1 b/bench/v4jnls/bn_cdf.sub1
similarity index 100%
rename from bench/bn_cdf.sub1
rename to bench/v4jnls/bn_cdf.sub1
diff --git a/bench/bn_cdf.sub2 b/bench/v4jnls/bn_cdf.sub2
similarity index 100%
rename from bench/bn_cdf.sub2
rename to bench/v4jnls/bn_cdf.sub2
diff --git a/bench/bn_cdf.sub3 b/bench/v4jnls/bn_cdf.sub3
similarity index 100%
rename from bench/bn_cdf.sub3
rename to bench/v4jnls/bn_cdf.sub3
diff --git a/bench/bn_cdf.sub4 b/bench/v4jnls/bn_cdf.sub4
similarity index 100%
rename from bench/bn_cdf.sub4
rename to bench/v4jnls/bn_cdf.sub4
diff --git a/bench/bn_cdf_reversed.sub b/bench/v4jnls/bn_cdf_reversed.sub
similarity index 100%
rename from bench/bn_cdf_reversed.sub
rename to bench/v4jnls/bn_cdf_reversed.sub
diff --git a/bench/bn_comma_delimited.jnl b/bench/v4jnls/bn_comma_delimited.jnl
similarity index 100%
rename from bench/bn_comma_delimited.jnl
rename to bench/v4jnls/bn_comma_delimited.jnl
diff --git a/bench/bn_comma_delimited.sub b/bench/v4jnls/bn_comma_delimited.sub
similarity index 100%
rename from bench/bn_comma_delimited.sub
rename to bench/v4jnls/bn_comma_delimited.sub
diff --git a/bench/bn_compress.jnl b/bench/v4jnls/bn_compress.jnl
similarity index 100%
rename from bench/bn_compress.jnl
rename to bench/v4jnls/bn_compress.jnl
diff --git a/bench/bn_compress.sub_v b/bench/v4jnls/bn_compress.sub_v
similarity index 100%
rename from bench/bn_compress.sub_v
rename to bench/v4jnls/bn_compress.sub_v
diff --git a/bench/bn_curv.jnl b/bench/v4jnls/bn_curv.jnl
similarity index 100%
rename from bench/bn_curv.jnl
rename to bench/v4jnls/bn_curv.jnl
diff --git a/bench/bn_dollar.jnl b/bench/v4jnls/bn_dollar.jnl
similarity index 100%
rename from bench/bn_dollar.jnl
rename to bench/v4jnls/bn_dollar.jnl
diff --git a/bench/bn_dollar.sub b/bench/v4jnls/bn_dollar.sub
similarity index 100%
rename from bench/bn_dollar.sub
rename to bench/v4jnls/bn_dollar.sub
diff --git a/bench/bn_dynamic_grids.jnl b/bench/v4jnls/bn_dynamic_grids.jnl
similarity index 100%
rename from bench/bn_dynamic_grids.jnl
rename to bench/v4jnls/bn_dynamic_grids.jnl
diff --git a/bench/bn_expressions.jnl b/bench/v4jnls/bn_expressions.jnl
similarity index 100%
rename from bench/bn_expressions.jnl
rename to bench/v4jnls/bn_expressions.jnl
diff --git a/bench/bn_ez.jnl b/bench/v4jnls/bn_ez.jnl
similarity index 100%
rename from bench/bn_ez.jnl
rename to bench/v4jnls/bn_ez.jnl
diff --git a/bench/bn_ez_order.jnl b/bench/v4jnls/bn_ez_order.jnl
similarity index 100%
rename from bench/bn_ez_order.jnl
rename to bench/v4jnls/bn_ez_order.jnl
diff --git a/bench/bn_gc_functions.jnl b/bench/v4jnls/bn_gc_functions.jnl
similarity index 100%
rename from bench/bn_gc_functions.jnl
rename to bench/v4jnls/bn_gc_functions.jnl
diff --git a/bench/bn_geometry.jnl b/bench/v4jnls/bn_geometry.jnl
similarity index 100%
rename from bench/bn_geometry.jnl
rename to bench/v4jnls/bn_geometry.jnl
diff --git a/bench/bn_geometry.sub b/bench/v4jnls/bn_geometry.sub
similarity index 100%
rename from bench/bn_geometry.sub
rename to bench/v4jnls/bn_geometry.sub
diff --git a/bench/bn_grave.jnl b/bench/v4jnls/bn_grave.jnl
similarity index 100%
rename from bench/bn_grave.jnl
rename to bench/v4jnls/bn_grave.jnl
diff --git a/bench/bn_if.jnl b/bench/v4jnls/bn_if.jnl
similarity index 100%
rename from bench/bn_if.jnl
rename to bench/v4jnls/bn_if.jnl
diff --git a/bench/bn_if.sub b/bench/v4jnls/bn_if.sub
similarity index 100%
rename from bench/bn_if.sub
rename to bench/v4jnls/bn_if.sub
diff --git a/bench/bn_in_plane.jnl b/bench/v4jnls/bn_in_plane.jnl
similarity index 100%
rename from bench/bn_in_plane.jnl
rename to bench/v4jnls/bn_in_plane.jnl
diff --git a/bench/bn_in_plane.sub b/bench/v4jnls/bn_in_plane.sub
similarity index 100%
rename from bench/bn_in_plane.sub
rename to bench/v4jnls/bn_in_plane.sub
diff --git a/bench/bn_interpolate.jnl b/bench/v4jnls/bn_interpolate.jnl
similarity index 100%
rename from bench/bn_interpolate.jnl
rename to bench/v4jnls/bn_interpolate.jnl
diff --git a/bench/bn_interpolate.sub b/bench/v4jnls/bn_interpolate.sub
similarity index 100%
rename from bench/bn_interpolate.sub
rename to bench/v4jnls/bn_interpolate.sub
diff --git a/bench/bn_letd.jnl b/bench/v4jnls/bn_letd.jnl
similarity index 100%
rename from bench/bn_letd.jnl
rename to bench/v4jnls/bn_letd.jnl
diff --git a/bench/bn_mc.jnl b/bench/v4jnls/bn_mc.jnl
similarity index 100%
rename from bench/bn_mc.jnl
rename to bench/v4jnls/bn_mc.jnl
diff --git a/bench/bn_movie.jnl b/bench/v4jnls/bn_movie.jnl
similarity index 100%
rename from bench/bn_movie.jnl
rename to bench/v4jnls/bn_movie.jnl
diff --git a/bench/bn_mp_zoo.jnl b/bench/v4jnls/bn_mp_zoo.jnl
similarity index 100%
rename from bench/bn_mp_zoo.jnl
rename to bench/v4jnls/bn_mp_zoo.jnl
diff --git a/bench/bn_negative_t.jnl b/bench/v4jnls/bn_negative_t.jnl
similarity index 100%
rename from bench/bn_negative_t.jnl
rename to bench/v4jnls/bn_negative_t.jnl
diff --git a/bench/bn_negative_t.sub b/bench/v4jnls/bn_negative_t.sub
similarity index 100%
rename from bench/bn_negative_t.sub
rename to bench/v4jnls/bn_negative_t.sub
diff --git a/bench/bn_output.jnl b/bench/v4jnls/bn_output.jnl
similarity index 100%
rename from bench/bn_output.jnl
rename to bench/v4jnls/bn_output.jnl
diff --git a/bench/bn_output.sub b/bench/v4jnls/bn_output.sub
similarity index 100%
rename from bench/bn_output.sub
rename to bench/v4jnls/bn_output.sub
diff --git a/bench/bn_plot.jnl b/bench/v4jnls/bn_plot.jnl
similarity index 100%
rename from bench/bn_plot.jnl
rename to bench/v4jnls/bn_plot.jnl
diff --git a/bench/bn_regrid.jnl b/bench/v4jnls/bn_regrid.jnl
similarity index 100%
rename from bench/bn_regrid.jnl
rename to bench/v4jnls/bn_regrid.jnl
diff --git a/bench/bn_regrid.sub b/bench/v4jnls/bn_regrid.sub
similarity index 100%
rename from bench/bn_regrid.sub
rename to bench/v4jnls/bn_regrid.sub
diff --git a/bench/bn_regrid_transforms.jnl b/bench/v4jnls/bn_regrid_transforms.jnl
similarity index 100%
rename from bench/bn_regrid_transforms.jnl
rename to bench/v4jnls/bn_regrid_transforms.jnl
diff --git a/bench/bn_stream.jnl b/bench/v4jnls/bn_stream.jnl
similarity index 100%
rename from bench/bn_stream.jnl
rename to bench/v4jnls/bn_stream.jnl
diff --git a/bench/bn_symbols.jnl b/bench/v4jnls/bn_symbols.jnl
similarity index 100%
rename from bench/bn_symbols.jnl
rename to bench/v4jnls/bn_symbols.jnl
diff --git a/bench/bn_syntax.jnl b/bench/v4jnls/bn_syntax.jnl
similarity index 99%
rename from bench/bn_syntax.jnl
rename to bench/v4jnls/bn_syntax.jnl
index 35fd9ad..c785077 100644
--- a/bench/bn_syntax.jnl
+++ b/bench/v4jnls/bn_syntax.jnl
@@ -18,7 +18,7 @@ USE gtbc011
SHOW DATA/BRIEF
SHOW DATA
SHOW DATA/VARIABLES
-SHOW DATA/FILES
+SHOW DATA/MEMBERS
SHOW DATA/FULL
CANCEL DATA 1
SHOW DATA
diff --git a/bench/bn_user.jnl b/bench/v4jnls/bn_user.jnl
similarity index 100%
rename from bench/bn_user.jnl
rename to bench/v4jnls/bn_user.jnl
diff --git a/bench/bn_xact_regrid.jnl b/bench/v4jnls/bn_xact_regrid.jnl
similarity index 100%
rename from bench/bn_xact_regrid.jnl
rename to bench/v4jnls/bn_xact_regrid.jnl
diff --git a/bench/bn_xact_regrid.sub b/bench/v4jnls/bn_xact_regrid.sub
similarity index 100%
rename from bench/bn_xact_regrid.sub
rename to bench/v4jnls/bn_xact_regrid.sub
diff --git a/bench/err490_cdf_childax.jnl b/bench/v4jnls/err490_cdf_childax.jnl
similarity index 100%
rename from bench/err490_cdf_childax.jnl
rename to bench/v4jnls/err490_cdf_childax.jnl
diff --git a/bench/err490_command_parser.jnl b/bench/v4jnls/err490_command_parser.jnl
similarity index 100%
rename from bench/err490_command_parser.jnl
rename to bench/v4jnls/err490_command_parser.jnl
diff --git a/bench/err490_fixed_var_size.jnl b/bench/v4jnls/err490_fixed_var_size.jnl
similarity index 100%
rename from bench/err490_fixed_var_size.jnl
rename to bench/v4jnls/err490_fixed_var_size.jnl
diff --git a/bench/err490_l_ave.jnl b/bench/v4jnls/err490_l_ave.jnl
similarity index 100%
rename from bench/err490_l_ave.jnl
rename to bench/v4jnls/err490_l_ave.jnl
diff --git a/bench/err490_neg_time_show_grid.jnl b/bench/v4jnls/err490_neg_time_show_grid.jnl
similarity index 100%
rename from bench/err490_neg_time_show_grid.jnl
rename to bench/v4jnls/err490_neg_time_show_grid.jnl
diff --git a/bench/err490_repeat_first_echo.jnl b/bench/v4jnls/err490_repeat_first_echo.jnl
similarity index 100%
rename from bench/err490_repeat_first_echo.jnl
rename to bench/v4jnls/err490_repeat_first_echo.jnl
diff --git a/bench/err490_tilde.jnl b/bench/v4jnls/err490_tilde.jnl
similarity index 100%
rename from bench/err490_tilde.jnl
rename to bench/v4jnls/err490_tilde.jnl
diff --git a/bench/err491_RESHAPE_ctx.jnl b/bench/v4jnls/err491_RESHAPE_ctx.jnl
similarity index 100%
rename from bench/err491_RESHAPE_ctx.jnl
rename to bench/v4jnls/err491_RESHAPE_ctx.jnl
diff --git a/bench/err491_asn.jnl b/bench/v4jnls/err491_asn.jnl
similarity index 100%
rename from bench/err491_asn.jnl
rename to bench/v4jnls/err491_asn.jnl
diff --git a/bench/err491_attrib_dp.jnl b/bench/v4jnls/err491_attrib_dp.jnl
similarity index 100%
rename from bench/err491_attrib_dp.jnl
rename to bench/v4jnls/err491_attrib_dp.jnl
diff --git a/bench/err491_delete_child_var.jnl b/bench/v4jnls/err491_delete_child_var.jnl
similarity index 100%
rename from bench/err491_delete_child_var.jnl
rename to bench/v4jnls/err491_delete_child_var.jnl
diff --git a/bench/err491_dp_time_write.jnl b/bench/v4jnls/err491_dp_time_write.jnl
similarity index 100%
rename from bench/err491_dp_time_write.jnl
rename to bench/v4jnls/err491_dp_time_write.jnl
diff --git a/bench/err491_explicit_limits.jnl b/bench/v4jnls/err491_explicit_limits.jnl
similarity index 100%
rename from bench/err491_explicit_limits.jnl
rename to bench/v4jnls/err491_explicit_limits.jnl
diff --git a/bench/err491_gmax.jnl b/bench/v4jnls/err491_gmax.jnl
similarity index 100%
rename from bench/err491_gmax.jnl
rename to bench/v4jnls/err491_gmax.jnl
diff --git a/bench/err491_grid_from_name.jnl b/bench/v4jnls/err491_grid_from_name.jnl
similarity index 100%
rename from bench/err491_grid_from_name.jnl
rename to bench/v4jnls/err491_grid_from_name.jnl
diff --git a/bench/err491_let_d.jnl b/bench/v4jnls/err491_let_d.jnl
similarity index 100%
rename from bench/err491_let_d.jnl
rename to bench/v4jnls/err491_let_d.jnl
diff --git a/bench/err491_long_gif_name.jnl b/bench/v4jnls/err491_long_gif_name.jnl
similarity index 100%
rename from bench/err491_long_gif_name.jnl
rename to bench/v4jnls/err491_long_gif_name.jnl
diff --git a/bench/err491_sh_var_templates.jnl b/bench/v4jnls/err491_sh_var_templates.jnl
similarity index 100%
rename from bench/err491_sh_var_templates.jnl
rename to bench/v4jnls/err491_sh_var_templates.jnl
diff --git a/bench/err491_single_char_replace.jnl b/bench/v4jnls/err491_single_char_replace.jnl
similarity index 100%
rename from bench/err491_single_char_replace.jnl
rename to bench/v4jnls/err491_single_char_replace.jnl
diff --git a/bench/err491_spawn_quotes.jnl b/bench/v4jnls/err491_spawn_quotes.jnl
similarity index 100%
rename from bench/err491_spawn_quotes.jnl
rename to bench/v4jnls/err491_spawn_quotes.jnl
diff --git a/bench/err491_time_regridding.jnl b/bench/v4jnls/err491_time_regridding.jnl
similarity index 100%
rename from bench/err491_time_regridding.jnl
rename to bench/v4jnls/err491_time_regridding.jnl
diff --git a/bench/err491_unknown_function.jnl b/bench/v4jnls/err491_unknown_function.jnl
similarity index 100%
rename from bench/err491_unknown_function.jnl
rename to bench/v4jnls/err491_unknown_function.jnl
diff --git a/bench/bench_compress.jnl b/bench/v5jnls/bench_compress.jnl
similarity index 100%
rename from bench/bench_compress.jnl
rename to bench/v5jnls/bench_compress.jnl
diff --git a/bench/bench_compress_by.jnl b/bench/v5jnls/bench_compress_by.jnl
similarity index 100%
rename from bench/bench_compress_by.jnl
rename to bench/v5jnls/bench_compress_by.jnl
diff --git a/bench/bench_eof.jnl b/bench/v5jnls/bench_eof.jnl
similarity index 95%
rename from bench/bench_eof.jnl
rename to bench/v5jnls/bench_eof.jnl
index d0212ed..145dd6f 100644
--- a/bench/bench_eof.jnl
+++ b/bench/v5jnls/bench_eof.jnl
@@ -5,7 +5,6 @@
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
! Test the bail-out from eof_space, eof_stat, eof_tfunc
set mode ignore
@@ -33,7 +32,7 @@ list/i=1:3/j=1:3 eofstat
LET eoftime = eofsvd_tfunc(SST[X=27W:23W,Y=1S:3N])
list/i=1:2 eoftime
-
+! The functions need updating for double precision Ferret
exit/script
! -----------------------------------------------
! previous commands that called eof_space, eof_stat, eof_tfunc
diff --git a/bench/bench_fft.jnl b/bench/v5jnls/bench_fft.jnl
similarity index 100%
rename from bench/bench_fft.jnl
rename to bench/v5jnls/bench_fft.jnl
diff --git a/bench/bench_gridding.jnl b/bench/v5jnls/bench_gridding.jnl
similarity index 100%
rename from bench/bench_gridding.jnl
rename to bench/v5jnls/bench_gridding.jnl
diff --git a/bench/bench_internal_string_functions.jnl b/bench/v5jnls/bench_internal_string_functions.jnl
similarity index 100%
rename from bench/bench_internal_string_functions.jnl
rename to bench/v5jnls/bench_internal_string_functions.jnl
diff --git a/bench/bench_samplet_date.jnl b/bench/v5jnls/bench_samplet_date.jnl
similarity index 100%
rename from bench/bench_samplet_date.jnl
rename to bench/v5jnls/bench_samplet_date.jnl
diff --git a/bench/bench_samplexy.jnl b/bench/v5jnls/bench_samplexy.jnl
similarity index 100%
rename from bench/bench_samplexy.jnl
rename to bench/v5jnls/bench_samplexy.jnl
diff --git a/bench/bench_sort.jnl b/bench/v5jnls/bench_sort.jnl
similarity index 100%
rename from bench/bench_sort.jnl
rename to bench/v5jnls/bench_sort.jnl
diff --git a/bench/bench_sorti.jnl b/bench/v5jnls/bench_sorti.jnl
similarity index 100%
rename from bench/bench_sorti.jnl
rename to bench/v5jnls/bench_sorti.jnl
diff --git a/bench/bench_sortj.jnl b/bench/v5jnls/bench_sortj.jnl
similarity index 100%
rename from bench/bench_sortj.jnl
rename to bench/v5jnls/bench_sortj.jnl
diff --git a/bench/bench_sortk.jnl b/bench/v5jnls/bench_sortk.jnl
similarity index 100%
rename from bench/bench_sortk.jnl
rename to bench/v5jnls/bench_sortk.jnl
diff --git a/bench/bench_sortl.jnl b/bench/v5jnls/bench_sortl.jnl
similarity index 100%
rename from bench/bench_sortl.jnl
rename to bench/v5jnls/bench_sortl.jnl
diff --git a/bench/bn500_bug_fixes.jnl b/bench/v5jnls/bn500_bug_fixes.jnl
similarity index 100%
rename from bench/bn500_bug_fixes.jnl
rename to bench/v5jnls/bn500_bug_fixes.jnl
diff --git a/bench/bn541_bug_fixes.jnl b/bench/v5jnls/bn541_bug_fixes.jnl
similarity index 100%
rename from bench/bn541_bug_fixes.jnl
rename to bench/v5jnls/bn541_bug_fixes.jnl
diff --git a/bench/bn542_bug_fixes.jnl b/bench/v5jnls/bn542_bug_fixes.jnl
similarity index 100%
rename from bench/bn542_bug_fixes.jnl
rename to bench/v5jnls/bn542_bug_fixes.jnl
diff --git a/bench/bn550_bug_fixes.jnl b/bench/v5jnls/bn550_bug_fixes.jnl
similarity index 100%
rename from bench/bn550_bug_fixes.jnl
rename to bench/v5jnls/bn550_bug_fixes.jnl
diff --git a/bench/bn551_bug_fixes.jnl b/bench/v5jnls/bn551_bug_fixes.jnl
similarity index 100%
rename from bench/bn551_bug_fixes.jnl
rename to bench/v5jnls/bn551_bug_fixes.jnl
diff --git a/bench/bn552_bug_fixes.jnl b/bench/v5jnls/bn552_bug_fixes.jnl
similarity index 100%
rename from bench/bn552_bug_fixes.jnl
rename to bench/v5jnls/bn552_bug_fixes.jnl
diff --git a/bench/bn553_bug_fixes.jnl b/bench/v5jnls/bn553_bug_fixes.jnl
similarity index 100%
rename from bench/bn553_bug_fixes.jnl
rename to bench/v5jnls/bn553_bug_fixes.jnl
diff --git a/bench/bn554_bug_fixes.jnl b/bench/v5jnls/bn554_bug_fixes.jnl
similarity index 100%
rename from bench/bn554_bug_fixes.jnl
rename to bench/v5jnls/bn554_bug_fixes.jnl
diff --git a/bench/bn570_bug_fixes.jnl b/bench/v5jnls/bn570_bug_fixes.jnl
similarity index 100%
rename from bench/bn570_bug_fixes.jnl
rename to bench/v5jnls/bn570_bug_fixes.jnl
diff --git a/bench/bn580_bug_fixes.jnl b/bench/v5jnls/bn580_bug_fixes.jnl
similarity index 100%
rename from bench/bn580_bug_fixes.jnl
rename to bench/v5jnls/bn580_bug_fixes.jnl
diff --git a/bench/bn581_bug_fixes.jnl b/bench/v5jnls/bn581_bug_fixes.jnl
similarity index 100%
rename from bench/bn581_bug_fixes.jnl
rename to bench/v5jnls/bn581_bug_fixes.jnl
diff --git a/bench/bn_abstract_axis_names.jnl b/bench/v5jnls/bn_abstract_axis_names.jnl
similarity index 100%
rename from bench/bn_abstract_axis_names.jnl
rename to bench/v5jnls/bn_abstract_axis_names.jnl
diff --git a/bench/bn_all_leap.jnl b/bench/v5jnls/bn_all_leap.jnl
similarity index 100%
rename from bench/bn_all_leap.jnl
rename to bench/v5jnls/bn_all_leap.jnl
diff --git a/bench/bn_axcontrol.jnl b/bench/v5jnls/bn_axcontrol.jnl
similarity index 100%
rename from bench/bn_axcontrol.jnl
rename to bench/v5jnls/bn_axcontrol.jnl
diff --git a/bench/bn_axis_viewports.jnl b/bench/v5jnls/bn_axis_viewports.jnl
similarity index 100%
rename from bench/bn_axis_viewports.jnl
rename to bench/v5jnls/bn_axis_viewports.jnl
diff --git a/bench/bn_bounds.jnl b/bench/v5jnls/bn_bounds.jnl
similarity index 100%
rename from bench/bn_bounds.jnl
rename to bench/v5jnls/bn_bounds.jnl
diff --git a/bench/bn_cache_hits.jnl b/bench/v5jnls/bn_cache_hits.jnl
similarity index 100%
rename from bench/bn_cache_hits.jnl
rename to bench/v5jnls/bn_cache_hits.jnl
diff --git a/bench/bn_cache_hits.sub b/bench/v5jnls/bn_cache_hits.sub
similarity index 100%
rename from bench/bn_cache_hits.sub
rename to bench/v5jnls/bn_cache_hits.sub
diff --git a/bench/bn_cache_hits_gcfcn.sub b/bench/v5jnls/bn_cache_hits_gcfcn.sub
similarity index 100%
rename from bench/bn_cache_hits_gcfcn.sub
rename to bench/v5jnls/bn_cache_hits_gcfcn.sub
diff --git a/bench/bn_calendar.jnl b/bench/v5jnls/bn_calendar.jnl
similarity index 100%
rename from bench/bn_calendar.jnl
rename to bench/v5jnls/bn_calendar.jnl
diff --git a/bench/bn_cancel_axes.jnl b/bench/v5jnls/bn_cancel_axes.jnl
similarity index 100%
rename from bench/bn_cancel_axes.jnl
rename to bench/v5jnls/bn_cancel_axes.jnl
diff --git a/bench/bn_cancel_axes_1.sub b/bench/v5jnls/bn_cancel_axes_1.sub
similarity index 100%
rename from bench/bn_cancel_axes_1.sub
rename to bench/v5jnls/bn_cancel_axes_1.sub
diff --git a/bench/bn_cancel_axes_2.sub b/bench/v5jnls/bn_cancel_axes_2.sub
similarity index 100%
rename from bench/bn_cancel_axes_2.sub
rename to bench/v5jnls/bn_cancel_axes_2.sub
diff --git a/bench/bn_curv_mod.jnl b/bench/v5jnls/bn_curv_mod.jnl
similarity index 100%
rename from bench/bn_curv_mod.jnl
rename to bench/v5jnls/bn_curv_mod.jnl
diff --git a/bench/bn_dash_dot.jnl b/bench/v5jnls/bn_dash_dot.jnl
similarity index 100%
rename from bench/bn_dash_dot.jnl
rename to bench/v5jnls/bn_dash_dot.jnl
diff --git a/bench/bn_define_axes.jnl b/bench/v5jnls/bn_define_axes.jnl
similarity index 100%
rename from bench/bn_define_axes.jnl
rename to bench/v5jnls/bn_define_axes.jnl
diff --git a/bench/bn_delimited_read.jnl b/bench/v5jnls/bn_delimited_read.jnl
similarity index 96%
rename from bench/bn_delimited_read.jnl
rename to bench/v5jnls/bn_delimited_read.jnl
index 54a1563..f5c1ebc 100644
--- a/bench/bn_delimited_read.jnl
+++ b/bench/v5jnls/bn_delimited_read.jnl
@@ -4,7 +4,7 @@
! test delimiited (spreadsheet) reads in Ferret
! look at the file
-spawn cat bn_delimited_read_1.dat
+spawn cat data/bn_delimited_read_1.dat
! try the file as-is: record 1 contains 5 column headings (text)
! so V1 through V5 analyze to be text
@@ -39,7 +39,7 @@ file/format=delim/skip=1/type=latitude bn_delimited_read_1.dat
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
! read only the first line of the file
-spawn head -1 bn_delimited_read_1.dat
+spawn head -1 data/bn_delimited_read_1.dat
define axis/x=1:1:1 x1
define grid/x=x1 g1
columns/grid=g1 bn_delimited_read_1.dat
@@ -63,7 +63,7 @@ list v1,v2
! ==========
! look at the date/time file
-spawn cat bn_delimited_read_date_time.dat
+spawn cat data/bn_delimited_read_date_time.dat
! try the file as-is
! Note that record 3 has syntax errors in the first 4 fields
@@ -97,7 +97,7 @@ show data 2
file/form=delim/delim="/" bn_delimited_read_date_time.dat
list V1,V2,V3,V4
! ---
-sp cat bn_delimited_read_date_time.dat
+sp cat data/bn_delimited_read_date_time.dat
! ---
file/form=delim/delim="/,\," bn_delimited_read_date_time.dat
list V1,V2,V3,V4,v5,v6,v7,v8
diff --git a/bench/bn_dots.jnl b/bench/v5jnls/bn_dots.jnl
similarity index 100%
rename from bench/bn_dots.jnl
rename to bench/v5jnls/bn_dots.jnl
diff --git a/bench/bn_ef_bench_extrema.jnl b/bench/v5jnls/bn_ef_bench_extrema.jnl
similarity index 100%
rename from bench/bn_ef_bench_extrema.jnl
rename to bench/v5jnls/bn_ef_bench_extrema.jnl
diff --git a/bench/bn_ef_curv_to_rect.jnl b/bench/v5jnls/bn_ef_curv_to_rect.jnl
similarity index 100%
rename from bench/bn_ef_curv_to_rect.jnl
rename to bench/v5jnls/bn_ef_curv_to_rect.jnl
diff --git a/bench/bn_ef_err541_date_delim.jnl b/bench/v5jnls/bn_ef_err541_date_delim.jnl
similarity index 100%
rename from bench/bn_ef_err541_date_delim.jnl
rename to bench/v5jnls/bn_ef_err541_date_delim.jnl
diff --git a/bench/bn_ef_zaxr_fcns.jnl b/bench/v5jnls/bn_ef_zaxr_fcns.jnl
similarity index 100%
rename from bench/bn_ef_zaxr_fcns.jnl
rename to bench/v5jnls/bn_ef_zaxr_fcns.jnl
diff --git a/bench/bn_eof_4d.jnl b/bench/v5jnls/bn_eof_4d.jnl
similarity index 98%
rename from bench/bn_eof_4d.jnl
rename to bench/v5jnls/bn_eof_4d.jnl
index d68b1e2..bad3eba 100644
--- a/bench/bn_eof_4d.jnl
+++ b/bench/v5jnls/bn_eof_4d.jnl
@@ -4,7 +4,6 @@
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
! dataset with 4 dimensions; compute EOF at each vertical level.
use gt4d011.cdf
@@ -78,7 +77,7 @@ list/nohead/i=1:5/j=3/k=1 eofst ! eigenvalues
list/nohead/i=1:5/j=3/k=5 eofst
list/nohead/i=1:5/j=3/k=9 eofst
-
+! The functions need updating for double precision Ferret
exit/script
! -----------------------------------------------
! previous commands that called eof_space, eof_stat, eof_tfunc
diff --git a/bench/bn_exit_cycle.jnl b/bench/v5jnls/bn_exit_cycle.jnl
similarity index 100%
rename from bench/bn_exit_cycle.jnl
rename to bench/v5jnls/bn_exit_cycle.jnl
diff --git a/bench/bn_exit_script.jnl b/bench/v5jnls/bn_exit_script.jnl
similarity index 100%
rename from bench/bn_exit_script.jnl
rename to bench/v5jnls/bn_exit_script.jnl
diff --git a/bench/bn_fill_irregular.jnl b/bench/v5jnls/bn_fill_irregular.jnl
similarity index 100%
rename from bench/bn_fill_irregular.jnl
rename to bench/v5jnls/bn_fill_irregular.jnl
diff --git a/bench/bn_flowlines.jnl b/bench/v5jnls/bn_flowlines.jnl
similarity index 100%
rename from bench/bn_flowlines.jnl
rename to bench/v5jnls/bn_flowlines.jnl
diff --git a/bench/bn_graticules.jnl b/bench/v5jnls/bn_graticules.jnl
similarity index 100%
rename from bench/bn_graticules.jnl
rename to bench/v5jnls/bn_graticules.jnl
diff --git a/bench/bn_illegal_axisname.jnl b/bench/v5jnls/bn_illegal_axisname.jnl
similarity index 100%
rename from bench/bn_illegal_axisname.jnl
rename to bench/v5jnls/bn_illegal_axisname.jnl
diff --git a/bench/bn_inf_levels.jnl b/bench/v5jnls/bn_inf_levels.jnl
similarity index 100%
rename from bench/bn_inf_levels.jnl
rename to bench/v5jnls/bn_inf_levels.jnl
diff --git a/bench/bn_internal_external_functions.jnl b/bench/v5jnls/bn_internal_external_functions.jnl
similarity index 100%
rename from bench/bn_internal_external_functions.jnl
rename to bench/v5jnls/bn_internal_external_functions.jnl
diff --git a/bench/bn_labwid.jnl b/bench/v5jnls/bn_labwid.jnl
similarity index 100%
rename from bench/bn_labwid.jnl
rename to bench/v5jnls/bn_labwid.jnl
diff --git a/bench/bn_lev_symbols.jnl b/bench/v5jnls/bn_lev_symbols.jnl
similarity index 100%
rename from bench/bn_lev_symbols.jnl
rename to bench/v5jnls/bn_lev_symbols.jnl
diff --git a/bench/bn_logaxes.jnl b/bench/v5jnls/bn_logaxes.jnl
similarity index 100%
rename from bench/bn_logaxes.jnl
rename to bench/v5jnls/bn_logaxes.jnl
diff --git a/bench/bn_longvarnames.jnl b/bench/v5jnls/bn_longvarnames.jnl
similarity index 100%
rename from bench/bn_longvarnames.jnl
rename to bench/v5jnls/bn_longvarnames.jnl
diff --git a/bench/bn_many_polygons.jnl b/bench/v5jnls/bn_many_polygons.jnl
similarity index 100%
rename from bench/bn_many_polygons.jnl
rename to bench/v5jnls/bn_many_polygons.jnl
diff --git a/bench/bn_mc_vary_scale.jnl b/bench/v5jnls/bn_mc_vary_scale.jnl
similarity index 100%
rename from bench/bn_mc_vary_scale.jnl
rename to bench/v5jnls/bn_mc_vary_scale.jnl
diff --git a/bench/bn_mode_logo_lab.jnl b/bench/v5jnls/bn_mode_logo_lab.jnl
similarity index 100%
rename from bench/bn_mode_logo_lab.jnl
rename to bench/v5jnls/bn_mode_logo_lab.jnl
diff --git a/bench/bn_modstats.jnl b/bench/v5jnls/bn_modstats.jnl
similarity index 100%
rename from bench/bn_modstats.jnl
rename to bench/v5jnls/bn_modstats.jnl
diff --git a/bench/v5jnls/bn_modulo_attribute.jnl b/bench/v5jnls/bn_modulo_attribute.jnl
new file mode 100644
index 0000000..1a4622b
--- /dev/null
+++ b/bench/v5jnls/bn_modulo_attribute.jnl
@@ -0,0 +1,10 @@
+! Ferret V5.50 m
+
+! Modulo attribute can take numerical values to indicate
+! the modulo length of axis (subspan modulo changes)
+! This script tests various string values of the attribute
+! *acm* list the axis names, otherwise get random TIME* axes defined right now
+use modulo_lon_time
+
+sh ax lon_true, lon_moderr, lon_false, lon_mod_nounits, lon_usual
+sh ax time_true, time_moderr, time_false, time_mod_nounits, time_usual
diff --git a/bench/bn_modulo_strides.jnl b/bench/v5jnls/bn_modulo_strides.jnl
similarity index 100%
rename from bench/bn_modulo_strides.jnl
rename to bench/v5jnls/bn_modulo_strides.jnl
diff --git a/bench/bn_multi_line_labels.jnl b/bench/v5jnls/bn_multi_line_labels.jnl
similarity index 100%
rename from bench/bn_multi_line_labels.jnl
rename to bench/v5jnls/bn_multi_line_labels.jnl
diff --git a/bench/bn_non_COARDS_netCDF.jnl b/bench/v5jnls/bn_non_COARDS_netCDF.jnl
similarity index 100%
rename from bench/bn_non_COARDS_netCDF.jnl
rename to bench/v5jnls/bn_non_COARDS_netCDF.jnl
diff --git a/bench/bn_odd_variable_name.jnl b/bench/v5jnls/bn_odd_variable_name.jnl
similarity index 100%
rename from bench/bn_odd_variable_name.jnl
rename to bench/v5jnls/bn_odd_variable_name.jnl
diff --git a/bench/bn_pattern.jnl b/bench/v5jnls/bn_pattern.jnl
similarity index 100%
rename from bench/bn_pattern.jnl
rename to bench/v5jnls/bn_pattern.jnl
diff --git a/bench/bn_plot_nokey.jnl b/bench/v5jnls/bn_plot_nokey.jnl
similarity index 100%
rename from bench/bn_plot_nokey.jnl
rename to bench/v5jnls/bn_plot_nokey.jnl
diff --git a/bench/bn_polygon.jnl b/bench/v5jnls/bn_polygon.jnl
similarity index 100%
rename from bench/bn_polygon.jnl
rename to bench/v5jnls/bn_polygon.jnl
diff --git a/bench/bn_redefine_taxis_mc.jnl b/bench/v5jnls/bn_redefine_taxis_mc.jnl
similarity index 100%
rename from bench/bn_redefine_taxis_mc.jnl
rename to bench/v5jnls/bn_redefine_taxis_mc.jnl
diff --git a/bench/bn_regrid_to_user.jnl b/bench/v5jnls/bn_regrid_to_user.jnl
similarity index 100%
rename from bench/bn_regrid_to_user.jnl
rename to bench/v5jnls/bn_regrid_to_user.jnl
diff --git a/bench/bn_regulart.jnl b/bench/v5jnls/bn_regulart.jnl
similarity index 100%
rename from bench/bn_regulart.jnl
rename to bench/v5jnls/bn_regulart.jnl
diff --git a/bench/bn_repeat_range.jnl b/bench/v5jnls/bn_repeat_range.jnl
similarity index 100%
rename from bench/bn_repeat_range.jnl
rename to bench/v5jnls/bn_repeat_range.jnl
diff --git a/bench/bn_reset_attributes.jnl b/bench/v5jnls/bn_reset_attributes.jnl
similarity index 100%
rename from bench/bn_reset_attributes.jnl
rename to bench/v5jnls/bn_reset_attributes.jnl
diff --git a/bench/bn_sample.jnl b/bench/v5jnls/bn_sample.jnl
similarity index 100%
rename from bench/bn_sample.jnl
rename to bench/v5jnls/bn_sample.jnl
diff --git a/bench/bn_samplexy_sampleij.jnl b/bench/v5jnls/bn_samplexy_sampleij.jnl
similarity index 100%
rename from bench/bn_samplexy_sampleij.jnl
rename to bench/v5jnls/bn_samplexy_sampleij.jnl
diff --git a/bench/bn_scat2grid_gl.jnl b/bench/v5jnls/bn_scat2grid_gl.jnl
similarity index 100%
rename from bench/bn_scat2grid_gl.jnl
rename to bench/v5jnls/bn_scat2grid_gl.jnl
diff --git a/bench/bn_scat2grid_nobs.jnl b/bench/v5jnls/bn_scat2grid_nobs.jnl
similarity index 100%
rename from bench/bn_scat2grid_nobs.jnl
rename to bench/v5jnls/bn_scat2grid_nobs.jnl
diff --git a/bench/bn_scat2grid_t.jnl b/bench/v5jnls/bn_scat2grid_t.jnl
similarity index 100%
rename from bench/bn_scat2grid_t.jnl
rename to bench/v5jnls/bn_scat2grid_t.jnl
diff --git a/bench/bn_scat2grid_test.jnl b/bench/v5jnls/bn_scat2grid_test.jnl
similarity index 100%
rename from bench/bn_scat2grid_test.jnl
rename to bench/v5jnls/bn_scat2grid_test.jnl
diff --git a/bench/bn_scat2gridlaplace_tarasoff.jnl b/bench/v5jnls/bn_scat2gridlaplace_tarasoff.jnl
similarity index 100%
rename from bench/bn_scat2gridlaplace_tarasoff.jnl
rename to bench/v5jnls/bn_scat2gridlaplace_tarasoff.jnl
diff --git a/bench/bn_set_var_scale_off.jnl b/bench/v5jnls/bn_set_var_scale_off.jnl
similarity index 100%
rename from bench/bn_set_var_scale_off.jnl
rename to bench/v5jnls/bn_set_var_scale_off.jnl
diff --git a/bench/bn_shade_keycont.jnl b/bench/v5jnls/bn_shade_keycont.jnl
similarity index 100%
rename from bench/bn_shade_keycont.jnl
rename to bench/v5jnls/bn_shade_keycont.jnl
diff --git a/bench/bn_shakey.jnl b/bench/v5jnls/bn_shakey.jnl
similarity index 100%
rename from bench/bn_shakey.jnl
rename to bench/v5jnls/bn_shakey.jnl
diff --git a/bench/bn_strides_revs_perms.jnl b/bench/v5jnls/bn_strides_revs_perms.jnl
similarity index 100%
rename from bench/bn_strides_revs_perms.jnl
rename to bench/v5jnls/bn_strides_revs_perms.jnl
diff --git a/bench/bn_strings.jnl b/bench/v5jnls/bn_strings.jnl
similarity index 100%
rename from bench/bn_strings.jnl
rename to bench/v5jnls/bn_strings.jnl
diff --git a/bench/bn_subspan_modulo.jnl b/bench/v5jnls/bn_subspan_modulo.jnl
similarity index 100%
rename from bench/bn_subspan_modulo.jnl
rename to bench/v5jnls/bn_subspan_modulo.jnl
diff --git a/bench/bn_subspan_modulo.sub1 b/bench/v5jnls/bn_subspan_modulo.sub1
similarity index 100%
rename from bench/bn_subspan_modulo.sub1
rename to bench/v5jnls/bn_subspan_modulo.sub1
diff --git a/bench/bn_subspan_modulo.sub2 b/bench/v5jnls/bn_subspan_modulo.sub2
similarity index 100%
rename from bench/bn_subspan_modulo.sub2
rename to bench/v5jnls/bn_subspan_modulo.sub2
diff --git a/bench/bn_test_nan.jnl b/bench/v5jnls/bn_test_nan.jnl
similarity index 100%
rename from bench/bn_test_nan.jnl
rename to bench/v5jnls/bn_test_nan.jnl
diff --git a/bench/bn_test_stream_big.jnl b/bench/v5jnls/bn_test_stream_big.jnl
similarity index 100%
rename from bench/bn_test_stream_big.jnl
rename to bench/v5jnls/bn_test_stream_big.jnl
diff --git a/bench/bn_test_stream_little.jnl b/bench/v5jnls/bn_test_stream_little.jnl
similarity index 100%
rename from bench/bn_test_stream_little.jnl
rename to bench/v5jnls/bn_test_stream_little.jnl
diff --git a/bench/bn_transpose.jnl b/bench/v5jnls/bn_transpose.jnl
similarity index 100%
rename from bench/bn_transpose.jnl
rename to bench/v5jnls/bn_transpose.jnl
diff --git a/bench/bn_unique_str2int.jnl b/bench/v5jnls/bn_unique_str2int.jnl
similarity index 100%
rename from bench/bn_unique_str2int.jnl
rename to bench/v5jnls/bn_unique_str2int.jnl
diff --git a/bench/bn_vec_curv.jnl b/bench/v5jnls/bn_vec_curv.jnl
similarity index 100%
rename from bench/bn_vec_curv.jnl
rename to bench/v5jnls/bn_vec_curv.jnl
diff --git a/bench/bn_xml_output.jnl b/bench/v5jnls/bn_xml_output.jnl
similarity index 100%
rename from bench/bn_xml_output.jnl
rename to bench/v5jnls/bn_xml_output.jnl
diff --git a/bench/err500_IF_THEN_ELSE_quote.jnl b/bench/v5jnls/err500_IF_THEN_ELSE_quote.jnl
similarity index 100%
rename from bench/err500_IF_THEN_ELSE_quote.jnl
rename to bench/v5jnls/err500_IF_THEN_ELSE_quote.jnl
diff --git a/bench/err540_ax_ave.jnl b/bench/v5jnls/err540_ax_ave.jnl
similarity index 100%
rename from bench/err540_ax_ave.jnl
rename to bench/v5jnls/err540_ax_ave.jnl
diff --git a/bench/err540_axis_symbols.jnl b/bench/v5jnls/err540_axis_symbols.jnl
similarity index 100%
rename from bench/err540_axis_symbols.jnl
rename to bench/v5jnls/err540_axis_symbols.jnl
diff --git a/bench/err540_axset.jnl b/bench/v5jnls/err540_axset.jnl
similarity index 100%
rename from bench/err540_axset.jnl
rename to bench/v5jnls/err540_axset.jnl
diff --git a/bench/err540_cd_use_recdim.jnl b/bench/v5jnls/err540_cd_use_recdim.jnl
similarity index 100%
rename from bench/err540_cd_use_recdim.jnl
rename to bench/v5jnls/err540_cd_use_recdim.jnl
diff --git a/bench/err540_data_type.jnl b/bench/v5jnls/err540_data_type.jnl
similarity index 100%
rename from bench/err540_data_type.jnl
rename to bench/v5jnls/err540_data_type.jnl
diff --git a/bench/err540_dods_bad_dataset.jnl b/bench/v5jnls/err540_dods_bad_dataset.jnl
similarity index 100%
rename from bench/err540_dods_bad_dataset.jnl
rename to bench/v5jnls/err540_dods_bad_dataset.jnl
diff --git a/bench/err540_dods_bad_strides.jnl b/bench/v5jnls/err540_dods_bad_strides.jnl
similarity index 100%
rename from bench/err540_dods_bad_strides.jnl
rename to bench/v5jnls/err540_dods_bad_strides.jnl
diff --git a/bench/err540_ill_format.jnl b/bench/v5jnls/err540_ill_format.jnl
similarity index 100%
rename from bench/err540_ill_format.jnl
rename to bench/v5jnls/err540_ill_format.jnl
diff --git a/bench/err540_modscat.jnl b/bench/v5jnls/err540_modscat.jnl
similarity index 100%
rename from bench/err540_modscat.jnl
rename to bench/v5jnls/err540_modscat.jnl
diff --git a/bench/err540_parse_repeat.jnl b/bench/v5jnls/err540_parse_repeat.jnl
similarity index 100%
rename from bench/err540_parse_repeat.jnl
rename to bench/v5jnls/err540_parse_repeat.jnl
diff --git a/bench/err540_poly_overlay.jnl b/bench/v5jnls/err540_poly_overlay.jnl
similarity index 100%
rename from bench/err540_poly_overlay.jnl
rename to bench/v5jnls/err540_poly_overlay.jnl
diff --git a/bench/err540_polymissing.jnl b/bench/v5jnls/err540_polymissing.jnl
similarity index 100%
rename from bench/err540_polymissing.jnl
rename to bench/v5jnls/err540_polymissing.jnl
diff --git a/bench/err540_samplexy_missing.jnl b/bench/v5jnls/err540_samplexy_missing.jnl
similarity index 100%
rename from bench/err540_samplexy_missing.jnl
rename to bench/v5jnls/err540_samplexy_missing.jnl
diff --git a/bench/err540_strides_rev.jnl b/bench/v5jnls/err540_strides_rev.jnl
similarity index 100%
rename from bench/err540_strides_rev.jnl
rename to bench/v5jnls/err540_strides_rev.jnl
diff --git a/bench/err540_use.jnl b/bench/v5jnls/err540_use.jnl
similarity index 100%
rename from bench/err540_use.jnl
rename to bench/v5jnls/err540_use.jnl
diff --git a/bench/err540_vs_dash.jnl b/bench/v5jnls/err540_vs_dash.jnl
similarity index 100%
rename from bench/err540_vs_dash.jnl
rename to bench/v5jnls/err540_vs_dash.jnl
diff --git a/bench/err540_write_order.jnl b/bench/v5jnls/err540_write_order.jnl
similarity index 100%
rename from bench/err540_write_order.jnl
rename to bench/v5jnls/err540_write_order.jnl
diff --git a/bench/err541_cancel_axes.jnl b/bench/v5jnls/err541_cancel_axes.jnl
similarity index 100%
rename from bench/err541_cancel_axes.jnl
rename to bench/v5jnls/err541_cancel_axes.jnl
diff --git a/bench/err541_date_delim.jnl b/bench/v5jnls/err541_date_delim.jnl
similarity index 100%
rename from bench/err541_date_delim.jnl
rename to bench/v5jnls/err541_date_delim.jnl
diff --git a/bench/err541_fill_tics.jnl b/bench/v5jnls/err541_fill_tics.jnl
similarity index 100%
rename from bench/err541_fill_tics.jnl
rename to bench/v5jnls/err541_fill_tics.jnl
diff --git a/bench/err541_non_gregorian.jnl b/bench/v5jnls/err541_non_gregorian.jnl
similarity index 100%
rename from bench/err541_non_gregorian.jnl
rename to bench/v5jnls/err541_non_gregorian.jnl
diff --git a/bench/err541_string4d.jnl b/bench/v5jnls/err541_string4d.jnl
similarity index 100%
rename from bench/err541_string4d.jnl
rename to bench/v5jnls/err541_string4d.jnl
diff --git a/bench/err542_poly_over_calendar.jnl b/bench/v5jnls/err542_poly_over_calendar.jnl
similarity index 100%
rename from bench/err542_poly_over_calendar.jnl
rename to bench/v5jnls/err542_poly_over_calendar.jnl
diff --git a/bench/err550_define_axis_expression.jnl b/bench/v5jnls/err550_define_axis_expression.jnl
similarity index 100%
rename from bench/err550_define_axis_expression.jnl
rename to bench/v5jnls/err550_define_axis_expression.jnl
diff --git a/bench/err550_dots_thickpens.jnl b/bench/v5jnls/err550_dots_thickpens.jnl
similarity index 100%
rename from bench/err550_dots_thickpens.jnl
rename to bench/v5jnls/err550_dots_thickpens.jnl
diff --git a/bench/err550_nc_seconds.jnl b/bench/v5jnls/err550_nc_seconds.jnl
similarity index 84%
rename from bench/err550_nc_seconds.jnl
rename to bench/v5jnls/err550_nc_seconds.jnl
index a8f95ed..452cc82 100644
--- a/bench/err550_nc_seconds.jnl
+++ b/bench/v5jnls/err550_nc_seconds.jnl
@@ -8,5 +8,5 @@
use time_axis_seconds.nc
sp echo "err550_nc_seconds.jnl --- seconds of time axis" >> all_ncdump.out
-sp ncdump time_axis_seconds.nc | grep origin >> all_ncdump.out
+sp ncdump data/time_axis_seconds.nc | grep origin >> all_ncdump.out
list t[gt=height] ! Seconds should be 36, 37, 38...
diff --git a/bench/err550_redefine_calendar_axis.jnl b/bench/v5jnls/err550_redefine_calendar_axis.jnl
similarity index 100%
rename from bench/err550_redefine_calendar_axis.jnl
rename to bench/v5jnls/err550_redefine_calendar_axis.jnl
diff --git a/bench/err550_shade_limits.jnl b/bench/v5jnls/err550_shade_limits.jnl
similarity index 100%
rename from bench/err550_shade_limits.jnl
rename to bench/v5jnls/err550_shade_limits.jnl
diff --git a/bench/err550_view_axes_fill.jnl b/bench/v5jnls/err550_view_axes_fill.jnl
similarity index 100%
rename from bench/err550_view_axes_fill.jnl
rename to bench/v5jnls/err550_view_axes_fill.jnl
diff --git a/bench/err550_view_axes_position.jnl b/bench/v5jnls/err550_view_axes_position.jnl
similarity index 100%
rename from bench/err550_view_axes_position.jnl
rename to bench/v5jnls/err550_view_axes_position.jnl
diff --git a/bench/err551_2dave.jnl b/bench/v5jnls/err551_2dave.jnl
similarity index 100%
rename from bench/err551_2dave.jnl
rename to bench/v5jnls/err551_2dave.jnl
diff --git a/bench/err551_axes_set.jnl b/bench/v5jnls/err551_axes_set.jnl
similarity index 100%
rename from bench/err551_axes_set.jnl
rename to bench/v5jnls/err551_axes_set.jnl
diff --git a/bench/err551_colorkey.jnl b/bench/v5jnls/err551_colorkey.jnl
similarity index 100%
rename from bench/err551_colorkey.jnl
rename to bench/v5jnls/err551_colorkey.jnl
diff --git a/bench/err551_fft_freqaxis.jnl b/bench/v5jnls/err551_fft_freqaxis.jnl
similarity index 100%
rename from bench/err551_fft_freqaxis.jnl
rename to bench/v5jnls/err551_fft_freqaxis.jnl
diff --git a/bench/err551_invalid_calendar.jnl b/bench/v5jnls/err551_invalid_calendar.jnl
similarity index 100%
rename from bench/err551_invalid_calendar.jnl
rename to bench/v5jnls/err551_invalid_calendar.jnl
diff --git a/bench/err551_modulo_nc_regrid.jnl b/bench/v5jnls/err551_modulo_nc_regrid.jnl
similarity index 100%
rename from bench/err551_modulo_nc_regrid.jnl
rename to bench/v5jnls/err551_modulo_nc_regrid.jnl
diff --git a/bench/err551_no_taxis_errmsg.jnl b/bench/v5jnls/err551_no_taxis_errmsg.jnl
similarity index 100%
rename from bench/err551_no_taxis_errmsg.jnl
rename to bench/v5jnls/err551_no_taxis_errmsg.jnl
diff --git a/bench/err551_num_levels.jnl b/bench/v5jnls/err551_num_levels.jnl
similarity index 100%
rename from bench/err551_num_levels.jnl
rename to bench/v5jnls/err551_num_levels.jnl
diff --git a/bench/err551_regrid_undef_grid.jnl b/bench/v5jnls/err551_regrid_undef_grid.jnl
similarity index 100%
rename from bench/err551_regrid_undef_grid.jnl
rename to bench/v5jnls/err551_regrid_undef_grid.jnl
diff --git a/bench/err551_repeat_sym.jnl b/bench/v5jnls/err551_repeat_sym.jnl
similarity index 100%
rename from bench/err551_repeat_sym.jnl
rename to bench/v5jnls/err551_repeat_sym.jnl
diff --git a/bench/err551_return_message.jnl b/bench/v5jnls/err551_return_message.jnl
similarity index 100%
rename from bench/err551_return_message.jnl
rename to bench/v5jnls/err551_return_message.jnl
diff --git a/bench/err551_streamread_directory.jnl b/bench/v5jnls/err551_streamread_directory.jnl
similarity index 100%
rename from bench/err551_streamread_directory.jnl
rename to bench/v5jnls/err551_streamread_directory.jnl
diff --git a/bench/err551_strings.jnl b/bench/v5jnls/err551_strings.jnl
similarity index 100%
rename from bench/err551_strings.jnl
rename to bench/v5jnls/err551_strings.jnl
diff --git a/bench/err553_axis_too_long.jnl b/bench/v5jnls/err553_axis_too_long.jnl
similarity index 100%
rename from bench/err553_axis_too_long.jnl
rename to bench/v5jnls/err553_axis_too_long.jnl
diff --git a/bench/err553_contour_fine_grid.jnl b/bench/v5jnls/err553_contour_fine_grid.jnl
similarity index 100%
rename from bench/err553_contour_fine_grid.jnl
rename to bench/v5jnls/err553_contour_fine_grid.jnl
diff --git a/bench/err553_lev_c.jnl b/bench/v5jnls/err553_lev_c.jnl
similarity index 100%
rename from bench/err553_lev_c.jnl
rename to bench/v5jnls/err553_lev_c.jnl
diff --git a/bench/err553_list_string_numeric.jnl b/bench/v5jnls/err553_list_string_numeric.jnl
similarity index 100%
rename from bench/err553_list_string_numeric.jnl
rename to bench/v5jnls/err553_list_string_numeric.jnl
diff --git a/bench/err553_list_width.jnl b/bench/v5jnls/err553_list_width.jnl
similarity index 100%
rename from bench/err553_list_width.jnl
rename to bench/v5jnls/err553_list_width.jnl
diff --git a/bench/err553_lon_ax_0_label.jnl b/bench/v5jnls/err553_lon_ax_0_label.jnl
similarity index 100%
rename from bench/err553_lon_ax_0_label.jnl
rename to bench/v5jnls/err553_lon_ax_0_label.jnl
diff --git a/bench/err553_long_string_var_name.jnl b/bench/v5jnls/err553_long_string_var_name.jnl
similarity index 100%
rename from bench/err553_long_string_var_name.jnl
rename to bench/v5jnls/err553_long_string_var_name.jnl
diff --git a/bench/err553_numeric_filename.jnl b/bench/v5jnls/err553_numeric_filename.jnl
similarity index 100%
rename from bench/err553_numeric_filename.jnl
rename to bench/v5jnls/err553_numeric_filename.jnl
diff --git a/bench/err553_regionname_lengths.jnl b/bench/v5jnls/err553_regionname_lengths.jnl
similarity index 100%
rename from bench/err553_regionname_lengths.jnl
rename to bench/v5jnls/err553_regionname_lengths.jnl
diff --git a/bench/err553_set_axis_depth.jnl b/bench/v5jnls/err553_set_axis_depth.jnl
similarity index 100%
rename from bench/err553_set_axis_depth.jnl
rename to bench/v5jnls/err553_set_axis_depth.jnl
diff --git a/bench/err553_shakey_labels.jnl b/bench/v5jnls/err553_shakey_labels.jnl
similarity index 100%
rename from bench/err553_shakey_labels.jnl
rename to bench/v5jnls/err553_shakey_labels.jnl
diff --git a/bench/err553_stride_def_grid.jnl b/bench/v5jnls/err553_stride_def_grid.jnl
similarity index 100%
rename from bench/err553_stride_def_grid.jnl
rename to bench/v5jnls/err553_stride_def_grid.jnl
diff --git a/bench/err553_stride_modulo.jnl b/bench/v5jnls/err553_stride_modulo.jnl
similarity index 100%
rename from bench/err553_stride_modulo.jnl
rename to bench/v5jnls/err553_stride_modulo.jnl
diff --git a/bench/err553_symbol_lev.jnl b/bench/v5jnls/err553_symbol_lev.jnl
similarity index 100%
rename from bench/err553_symbol_lev.jnl
rename to bench/v5jnls/err553_symbol_lev.jnl
diff --git a/bench/err553_symsize.jnl b/bench/v5jnls/err553_symsize.jnl
similarity index 100%
rename from bench/err553_symsize.jnl
rename to bench/v5jnls/err553_symsize.jnl
diff --git a/bench/err553_timeregion.jnl b/bench/v5jnls/err553_timeregion.jnl
similarity index 100%
rename from bench/err553_timeregion.jnl
rename to bench/v5jnls/err553_timeregion.jnl
diff --git a/bench/err553_xaxis_nsmtc.jnl b/bench/v5jnls/err553_xaxis_nsmtc.jnl
similarity index 100%
rename from bench/err553_xaxis_nsmtc.jnl
rename to bench/v5jnls/err553_xaxis_nsmtc.jnl
diff --git a/bench/err553_year_yr.jnl b/bench/v5jnls/err553_year_yr.jnl
similarity index 100%
rename from bench/err553_year_yr.jnl
rename to bench/v5jnls/err553_year_yr.jnl
diff --git a/bench/err560_century.jnl b/bench/v5jnls/err560_century.jnl
similarity index 100%
rename from bench/err560_century.jnl
rename to bench/v5jnls/err560_century.jnl
diff --git a/bench/err560_leap_years.jnl b/bench/v5jnls/err560_leap_years.jnl
similarity index 100%
rename from bench/err560_leap_years.jnl
rename to bench/v5jnls/err560_leap_years.jnl
diff --git a/bench/err560_mc_irreg_t.jnl b/bench/v5jnls/err560_mc_irreg_t.jnl
similarity index 100%
rename from bench/err560_mc_irreg_t.jnl
rename to bench/v5jnls/err560_mc_irreg_t.jnl
diff --git a/bench/err560_regridding_gaps.jnl b/bench/v5jnls/err560_regridding_gaps.jnl
similarity index 100%
rename from bench/err560_regridding_gaps.jnl
rename to bench/v5jnls/err560_regridding_gaps.jnl
diff --git a/bench/err560_shade_levels.jnl b/bench/v5jnls/err560_shade_levels.jnl
similarity index 100%
rename from bench/err560_shade_levels.jnl
rename to bench/v5jnls/err560_shade_levels.jnl
diff --git a/bench/err560_shade_noleap.jnl b/bench/v5jnls/err560_shade_noleap.jnl
similarity index 100%
rename from bench/err560_shade_noleap.jnl
rename to bench/v5jnls/err560_shade_noleap.jnl
diff --git a/bench/err570_cnnn_multiline.jnl b/bench/v5jnls/err570_cnnn_multiline.jnl
similarity index 100%
rename from bench/err570_cnnn_multiline.jnl
rename to bench/v5jnls/err570_cnnn_multiline.jnl
diff --git a/bench/err570_coaching.jnl b/bench/v5jnls/err570_coaching.jnl
similarity index 100%
rename from bench/err570_coaching.jnl
rename to bench/v5jnls/err570_coaching.jnl
diff --git a/bench/err570_compressk_by.jnl b/bench/v5jnls/err570_compressk_by.jnl
similarity index 100%
rename from bench/err570_compressk_by.jnl
rename to bench/v5jnls/err570_compressk_by.jnl
diff --git a/bench/err570_digit_filename.jnl b/bench/v5jnls/err570_digit_filename.jnl
similarity index 100%
rename from bench/err570_digit_filename.jnl
rename to bench/v5jnls/err570_digit_filename.jnl
diff --git a/bench/err570_dods_url_label.jnl b/bench/v5jnls/err570_dods_url_label.jnl
similarity index 100%
rename from bench/err570_dods_url_label.jnl
rename to bench/v5jnls/err570_dods_url_label.jnl
diff --git a/bench/err570_dollar_zero.jnl b/bench/v5jnls/err570_dollar_zero.jnl
similarity index 100%
rename from bench/err570_dollar_zero.jnl
rename to bench/v5jnls/err570_dollar_zero.jnl
diff --git a/bench/err570_fine_grid_list.jnl b/bench/v5jnls/err570_fine_grid_list.jnl
similarity index 100%
rename from bench/err570_fine_grid_list.jnl
rename to bench/v5jnls/err570_fine_grid_list.jnl
diff --git a/bench/err570_hlimit_onepoint.jnl b/bench/v5jnls/err570_hlimit_onepoint.jnl
similarity index 100%
rename from bench/err570_hlimit_onepoint.jnl
rename to bench/v5jnls/err570_hlimit_onepoint.jnl
diff --git a/bench/err570_illegal_stride.jnl b/bench/v5jnls/err570_illegal_stride.jnl
similarity index 100%
rename from bench/err570_illegal_stride.jnl
rename to bench/v5jnls/err570_illegal_stride.jnl
diff --git a/bench/err570_index111.jnl b/bench/v5jnls/err570_index111.jnl
similarity index 100%
rename from bench/err570_index111.jnl
rename to bench/v5jnls/err570_index111.jnl
diff --git a/bench/err570_keylabels.jnl b/bench/v5jnls/err570_keylabels.jnl
similarity index 100%
rename from bench/err570_keylabels.jnl
rename to bench/v5jnls/err570_keylabels.jnl
diff --git a/bench/err570_list_tab_coords.jnl b/bench/v5jnls/err570_list_tab_coords.jnl
similarity index 100%
rename from bench/err570_list_tab_coords.jnl
rename to bench/v5jnls/err570_list_tab_coords.jnl
diff --git a/bench/err570_long_label.jnl b/bench/v5jnls/err570_long_label.jnl
similarity index 100%
rename from bench/err570_long_label.jnl
rename to bench/v5jnls/err570_long_label.jnl
diff --git a/bench/err570_many_variables.jnl b/bench/v5jnls/err570_many_variables.jnl
similarity index 100%
rename from bench/err570_many_variables.jnl
rename to bench/v5jnls/err570_many_variables.jnl
diff --git a/bench/err570_null_symbol.jnl b/bench/v5jnls/err570_null_symbol.jnl
similarity index 100%
rename from bench/err570_null_symbol.jnl
rename to bench/v5jnls/err570_null_symbol.jnl
diff --git a/bench/err570_parse_labelcommand.jnl b/bench/v5jnls/err570_parse_labelcommand.jnl
similarity index 100%
rename from bench/err570_parse_labelcommand.jnl
rename to bench/v5jnls/err570_parse_labelcommand.jnl
diff --git a/bench/err570_poly_lonlat_axis.jnl b/bench/v5jnls/err570_poly_lonlat_axis.jnl
similarity index 100%
rename from bench/err570_poly_lonlat_axis.jnl
rename to bench/v5jnls/err570_poly_lonlat_axis.jnl
diff --git a/bench/err570_poly_over_julian.jnl b/bench/v5jnls/err570_poly_over_julian.jnl
similarity index 100%
rename from bench/err570_poly_over_julian.jnl
rename to bench/v5jnls/err570_poly_over_julian.jnl
diff --git a/bench/err570_ppl_poly.jnl b/bench/v5jnls/err570_ppl_poly.jnl
similarity index 100%
rename from bench/err570_ppl_poly.jnl
rename to bench/v5jnls/err570_ppl_poly.jnl
diff --git a/bench/err570_sh_dat_nan.jnl b/bench/v5jnls/err570_sh_dat_nan.jnl
similarity index 100%
rename from bench/err570_sh_dat_nan.jnl
rename to bench/v5jnls/err570_sh_dat_nan.jnl
diff --git a/bench/err570_shakeylab.jnl b/bench/v5jnls/err570_shakeylab.jnl
similarity index 100%
rename from bench/err570_shakeylab.jnl
rename to bench/v5jnls/err570_shakeylab.jnl
diff --git a/bench/err570_singlecolor.jnl b/bench/v5jnls/err570_singlecolor.jnl
similarity index 100%
rename from bench/err570_singlecolor.jnl
rename to bench/v5jnls/err570_singlecolor.jnl
diff --git a/bench/err570_thick_colors.jnl b/bench/v5jnls/err570_thick_colors.jnl
similarity index 100%
rename from bench/err570_thick_colors.jnl
rename to bench/v5jnls/err570_thick_colors.jnl
diff --git a/bench/err570_time_range.jnl b/bench/v5jnls/err570_time_range.jnl
similarity index 100%
rename from bench/err570_time_range.jnl
rename to bench/v5jnls/err570_time_range.jnl
diff --git a/bench/err580_arg_case.jnl b/bench/v5jnls/err580_arg_case.jnl
similarity index 100%
rename from bench/err580_arg_case.jnl
rename to bench/v5jnls/err580_arg_case.jnl
diff --git a/bench/err580_cal360_region.jnl b/bench/v5jnls/err580_cal360_region.jnl
similarity index 100%
rename from bench/err580_cal360_region.jnl
rename to bench/v5jnls/err580_cal360_region.jnl
diff --git a/bench/err580_cartesian_depth.jnl b/bench/v5jnls/err580_cartesian_depth.jnl
similarity index 100%
rename from bench/err580_cartesian_depth.jnl
rename to bench/v5jnls/err580_cartesian_depth.jnl
diff --git a/bench/err580_cdb.jnl b/bench/v5jnls/err580_cdb.jnl
similarity index 100%
rename from bench/err580_cdb.jnl
rename to bench/v5jnls/err580_cdb.jnl
diff --git a/bench/err580_cdc_timeaxis.jnl b/bench/v5jnls/err580_cdc_timeaxis.jnl
similarity index 100%
rename from bench/err580_cdc_timeaxis.jnl
rename to bench/v5jnls/err580_cdc_timeaxis.jnl
diff --git a/bench/err580_def_tax_norange.jnl b/bench/v5jnls/err580_def_tax_norange.jnl
similarity index 100%
rename from bench/err580_def_tax_norange.jnl
rename to bench/v5jnls/err580_def_tax_norange.jnl
diff --git a/bench/err580_def_view_axes.jnl b/bench/v5jnls/err580_def_view_axes.jnl
similarity index 100%
rename from bench/err580_def_view_axes.jnl
rename to bench/v5jnls/err580_def_view_axes.jnl
diff --git a/bench/err580_irreg_bounds.jnl b/bench/v5jnls/err580_irreg_bounds.jnl
similarity index 100%
rename from bench/err580_irreg_bounds.jnl
rename to bench/v5jnls/err580_irreg_bounds.jnl
diff --git a/bench/err580_lev_del.jnl b/bench/v5jnls/err580_lev_del.jnl
similarity index 100%
rename from bench/err580_lev_del.jnl
rename to bench/v5jnls/err580_lev_del.jnl
diff --git a/bench/err580_long_dsettitle.jnl b/bench/v5jnls/err580_long_dsettitle.jnl
similarity index 100%
rename from bench/err580_long_dsettitle.jnl
rename to bench/v5jnls/err580_long_dsettitle.jnl
diff --git a/bench/err580_long_title.jnl b/bench/v5jnls/err580_long_title.jnl
similarity index 100%
rename from bench/err580_long_title.jnl
rename to bench/v5jnls/err580_long_title.jnl
diff --git a/bench/err580_long_veckey.jnl b/bench/v5jnls/err580_long_veckey.jnl
similarity index 100%
rename from bench/err580_long_veckey.jnl
rename to bench/v5jnls/err580_long_veckey.jnl
diff --git a/bench/err580_show_axis_t.jnl b/bench/v5jnls/err580_show_axis_t.jnl
similarity index 100%
rename from bench/err580_show_axis_t.jnl
rename to bench/v5jnls/err580_show_axis_t.jnl
diff --git a/bench/err580_strfloat_errors.jnl b/bench/v5jnls/err580_strfloat_errors.jnl
similarity index 100%
rename from bench/err580_strfloat_errors.jnl
rename to bench/v5jnls/err580_strfloat_errors.jnl
diff --git a/bench/err580_use_des.jnl b/bench/v5jnls/err580_use_des.jnl
similarity index 100%
rename from bench/err580_use_des.jnl
rename to bench/v5jnls/err580_use_des.jnl
diff --git a/bench/err581_cal_dates_output.jnl b/bench/v5jnls/err581_cal_dates_output.jnl
similarity index 100%
rename from bench/err581_cal_dates_output.jnl
rename to bench/v5jnls/err581_cal_dates_output.jnl
diff --git a/bench/err581_cancel_data.jnl b/bench/v5jnls/err581_cancel_data.jnl
similarity index 100%
rename from bench/err581_cancel_data.jnl
rename to bench/v5jnls/err581_cancel_data.jnl
diff --git a/bench/err581_command_cx.jnl b/bench/v5jnls/err581_command_cx.jnl
similarity index 100%
rename from bench/err581_command_cx.jnl
rename to bench/v5jnls/err581_command_cx.jnl
diff --git a/bench/err581_contour_zero_lev.jnl b/bench/v5jnls/err581_contour_zero_lev.jnl
similarity index 100%
rename from bench/err581_contour_zero_lev.jnl
rename to bench/v5jnls/err581_contour_zero_lev.jnl
diff --git a/bench/err581_define_1pt_bounds.jnl b/bench/v5jnls/err581_define_1pt_bounds.jnl
similarity index 100%
rename from bench/err581_define_1pt_bounds.jnl
rename to bench/v5jnls/err581_define_1pt_bounds.jnl
diff --git a/bench/err581_des_scale.jnl b/bench/v5jnls/err581_des_scale.jnl
similarity index 100%
rename from bench/err581_des_scale.jnl
rename to bench/v5jnls/err581_des_scale.jnl
diff --git a/bench/err581_exp_spaces.jnl b/bench/v5jnls/err581_exp_spaces.jnl
similarity index 100%
rename from bench/err581_exp_spaces.jnl
rename to bench/v5jnls/err581_exp_spaces.jnl
diff --git a/bench/err581_hlim_axislab.jnl b/bench/v5jnls/err581_hlim_axislab.jnl
similarity index 100%
rename from bench/err581_hlim_axislab.jnl
rename to bench/v5jnls/err581_hlim_axislab.jnl
diff --git a/bench/err581_if_conditional.jnl b/bench/v5jnls/err581_if_conditional.jnl
similarity index 100%
rename from bench/err581_if_conditional.jnl
rename to bench/v5jnls/err581_if_conditional.jnl
diff --git a/bench/err581_illegal_trans.jnl b/bench/v5jnls/err581_illegal_trans.jnl
similarity index 100%
rename from bench/err581_illegal_trans.jnl
rename to bench/v5jnls/err581_illegal_trans.jnl
diff --git a/bench/err581_list_stray_chars.jnl b/bench/v5jnls/err581_list_stray_chars.jnl
similarity index 100%
rename from bench/err581_list_stray_chars.jnl
rename to bench/v5jnls/err581_list_stray_chars.jnl
diff --git a/bench/err581_missing_scale_off.jnl b/bench/v5jnls/err581_missing_scale_off.jnl
similarity index 100%
rename from bench/err581_missing_scale_off.jnl
rename to bench/v5jnls/err581_missing_scale_off.jnl
diff --git a/bench/err581_nlev.jnl b/bench/v5jnls/err581_nlev.jnl
similarity index 100%
rename from bench/err581_nlev.jnl
rename to bench/v5jnls/err581_nlev.jnl
diff --git a/bench/err581_noleap_mod.jnl b/bench/v5jnls/err581_noleap_mod.jnl
similarity index 100%
rename from bench/err581_noleap_mod.jnl
rename to bench/v5jnls/err581_noleap_mod.jnl
diff --git a/bench/err581_poly_rev.jnl b/bench/v5jnls/err581_poly_rev.jnl
similarity index 100%
rename from bench/err581_poly_rev.jnl
rename to bench/v5jnls/err581_poly_rev.jnl
diff --git a/bench/err581_shakey_inf.jnl b/bench/v5jnls/err581_shakey_inf.jnl
similarity index 100%
rename from bench/err581_shakey_inf.jnl
rename to bench/v5jnls/err581_shakey_inf.jnl
diff --git a/bench/err581_sho_func_pattern_match.jnl b/bench/v5jnls/err581_sho_func_pattern_match.jnl
similarity index 100%
rename from bench/err581_sho_func_pattern_match.jnl
rename to bench/v5jnls/err581_sho_func_pattern_match.jnl
diff --git a/bench/err581_since_units.jnl b/bench/v5jnls/err581_since_units.jnl
similarity index 100%
rename from bench/err581_since_units.jnl
rename to bench/v5jnls/err581_since_units.jnl
diff --git a/bench/err581_strrindex.jnl b/bench/v5jnls/err581_strrindex.jnl
similarity index 100%
rename from bench/err581_strrindex.jnl
rename to bench/v5jnls/err581_strrindex.jnl
diff --git a/bench/err581_subspanx_fill_bug.jnl b/bench/v5jnls/err581_subspanx_fill_bug.jnl
similarity index 100%
rename from bench/err581_subspanx_fill_bug.jnl
rename to bench/v5jnls/err581_subspanx_fill_bug.jnl
diff --git a/bench/err581_use_bounds.jnl b/bench/v5jnls/err581_use_bounds.jnl
similarity index 100%
rename from bench/err581_use_bounds.jnl
rename to bench/v5jnls/err581_use_bounds.jnl
diff --git a/bench/err581_vs_poly_axis.jnl b/bench/v5jnls/err581_vs_poly_axis.jnl
similarity index 100%
rename from bench/err581_vs_poly_axis.jnl
rename to bench/v5jnls/err581_vs_poly_axis.jnl
diff --git a/bench/exit_script_1.jnl b/bench/v5jnls/exit_script_1.jnl
similarity index 100%
rename from bench/exit_script_1.jnl
rename to bench/v5jnls/exit_script_1.jnl
diff --git a/bench/exit_script_if.jnl b/bench/v5jnls/exit_script_if.jnl
similarity index 100%
rename from bench/exit_script_if.jnl
rename to bench/v5jnls/exit_script_if.jnl
diff --git a/bench/exit_script_if_loop.jnl b/bench/v5jnls/exit_script_if_loop.jnl
similarity index 100%
rename from bench/exit_script_if_loop.jnl
rename to bench/v5jnls/exit_script_if_loop.jnl
diff --git a/bench/exit_script_inloop.jnl b/bench/v5jnls/exit_script_inloop.jnl
similarity index 100%
rename from bench/exit_script_inloop.jnl
rename to bench/v5jnls/exit_script_inloop.jnl
diff --git a/bench/exit_script_loop.jnl b/bench/v5jnls/exit_script_loop.jnl
similarity index 100%
rename from bench/exit_script_loop.jnl
rename to bench/v5jnls/exit_script_loop.jnl
diff --git a/bench/exit_script_twolev.jnl b/bench/v5jnls/exit_script_twolev.jnl
similarity index 100%
rename from bench/exit_script_twolev.jnl
rename to bench/v5jnls/exit_script_twolev.jnl
diff --git a/bench/non_std_refmap.jnl b/bench/v5jnls/non_std_refmap.jnl
similarity index 100%
rename from bench/non_std_refmap.jnl
rename to bench/v5jnls/non_std_refmap.jnl
diff --git a/bench/bn600_bug_fixes.jnl b/bench/v6jnls/bn600_bug_fixes.jnl
similarity index 100%
rename from bench/bn600_bug_fixes.jnl
rename to bench/v6jnls/bn600_bug_fixes.jnl
diff --git a/bench/bn601_bug_fixes.jnl b/bench/v6jnls/bn601_bug_fixes.jnl
similarity index 100%
rename from bench/bn601_bug_fixes.jnl
rename to bench/v6jnls/bn601_bug_fixes.jnl
diff --git a/bench/bn602_bug_fixes.jnl b/bench/v6jnls/bn602_bug_fixes.jnl
similarity index 100%
rename from bench/bn602_bug_fixes.jnl
rename to bench/v6jnls/bn602_bug_fixes.jnl
diff --git a/bench/bn603_bug_fixes.jnl b/bench/v6jnls/bn603_bug_fixes.jnl
similarity index 100%
rename from bench/bn603_bug_fixes.jnl
rename to bench/v6jnls/bn603_bug_fixes.jnl
diff --git a/bench/bn605_bug_fixes.jnl b/bench/v6jnls/bn605_bug_fixes.jnl
similarity index 100%
rename from bench/bn605_bug_fixes.jnl
rename to bench/v6jnls/bn605_bug_fixes.jnl
diff --git a/bench/bn608_bug_fixes.jnl b/bench/v6jnls/bn608_bug_fixes.jnl
similarity index 100%
rename from bench/bn608_bug_fixes.jnl
rename to bench/v6jnls/bn608_bug_fixes.jnl
diff --git a/bench/bn611_bug_fixes.jnl b/bench/v6jnls/bn611_bug_fixes.jnl
similarity index 100%
rename from bench/bn611_bug_fixes.jnl
rename to bench/v6jnls/bn611_bug_fixes.jnl
diff --git a/bench/bn614_bug_fixes.jnl b/bench/v6jnls/bn614_bug_fixes.jnl
similarity index 100%
rename from bench/bn614_bug_fixes.jnl
rename to bench/v6jnls/bn614_bug_fixes.jnl
diff --git a/bench/bn61_bug_fixes.jnl b/bench/v6jnls/bn61_bug_fixes.jnl
similarity index 100%
rename from bench/bn61_bug_fixes.jnl
rename to bench/v6jnls/bn61_bug_fixes.jnl
diff --git a/bench/bn62_bug_fixes.jnl b/bench/v6jnls/bn62_bug_fixes.jnl
similarity index 100%
rename from bench/bn62_bug_fixes.jnl
rename to bench/v6jnls/bn62_bug_fixes.jnl
diff --git a/bench/bn63_bug_fixes.jnl b/bench/v6jnls/bn63_bug_fixes.jnl
similarity index 100%
rename from bench/bn63_bug_fixes.jnl
rename to bench/v6jnls/bn63_bug_fixes.jnl
diff --git a/bench/bn64_bug_fixes.jnl b/bench/v6jnls/bn64_bug_fixes.jnl
similarity index 100%
rename from bench/bn64_bug_fixes.jnl
rename to bench/v6jnls/bn64_bug_fixes.jnl
diff --git a/bench/bn65_bug_fixes.jnl b/bench/v6jnls/bn65_bug_fixes.jnl
similarity index 100%
rename from bench/bn65_bug_fixes.jnl
rename to bench/v6jnls/bn65_bug_fixes.jnl
diff --git a/bench/bn663_bug_fixes.jnl b/bench/v6jnls/bn663_bug_fixes.jnl
similarity index 100%
rename from bench/bn663_bug_fixes.jnl
rename to bench/v6jnls/bn663_bug_fixes.jnl
diff --git a/bench/bn665_bug_fixes.jnl b/bench/v6jnls/bn665_bug_fixes.jnl
similarity index 100%
rename from bench/bn665_bug_fixes.jnl
rename to bench/v6jnls/bn665_bug_fixes.jnl
diff --git a/bench/bn66_bug_fixes.jnl b/bench/v6jnls/bn66_bug_fixes.jnl
similarity index 100%
rename from bench/bn66_bug_fixes.jnl
rename to bench/v6jnls/bn66_bug_fixes.jnl
diff --git a/bench/bn671_bug_fixes.jnl b/bench/v6jnls/bn671_bug_fixes.jnl
similarity index 100%
rename from bench/bn671_bug_fixes.jnl
rename to bench/v6jnls/bn671_bug_fixes.jnl
diff --git a/bench/bn67_bug_fixes.jnl b/bench/v6jnls/bn67_bug_fixes.jnl
similarity index 100%
rename from bench/bn67_bug_fixes.jnl
rename to bench/v6jnls/bn67_bug_fixes.jnl
diff --git a/bench/bn682_bug_fixes.jnl b/bench/v6jnls/bn682_bug_fixes.jnl
similarity index 100%
rename from bench/bn682_bug_fixes.jnl
rename to bench/v6jnls/bn682_bug_fixes.jnl
diff --git a/bench/bn683_bug_fixes.jnl b/bench/v6jnls/bn683_bug_fixes.jnl
similarity index 100%
rename from bench/bn683_bug_fixes.jnl
rename to bench/v6jnls/bn683_bug_fixes.jnl
diff --git a/bench/bn685_bug_fixes.jnl b/bench/v6jnls/bn685_bug_fixes.jnl
similarity index 100%
rename from bench/bn685_bug_fixes.jnl
rename to bench/v6jnls/bn685_bug_fixes.jnl
diff --git a/bench/bn686_bug_fixes.jnl b/bench/v6jnls/bn686_bug_fixes.jnl
similarity index 100%
rename from bench/bn686_bug_fixes.jnl
rename to bench/v6jnls/bn686_bug_fixes.jnl
diff --git a/bench/bn68_bug_fixes.jnl b/bench/v6jnls/bn68_bug_fixes.jnl
similarity index 100%
rename from bench/bn68_bug_fixes.jnl
rename to bench/v6jnls/bn68_bug_fixes.jnl
diff --git a/bench/bn691_bug_fixes.jnl b/bench/v6jnls/bn691_bug_fixes.jnl
similarity index 100%
rename from bench/bn691_bug_fixes.jnl
rename to bench/v6jnls/bn691_bug_fixes.jnl
diff --git a/bench/bn694_bug_fixes.jnl b/bench/v6jnls/bn694_bug_fixes.jnl
similarity index 100%
rename from bench/bn694_bug_fixes.jnl
rename to bench/v6jnls/bn694_bug_fixes.jnl
diff --git a/bench/bn695_bug_fixes.jnl b/bench/v6jnls/bn695_bug_fixes.jnl
similarity index 100%
rename from bench/bn695_bug_fixes.jnl
rename to bench/v6jnls/bn695_bug_fixes.jnl
diff --git a/bench/bn696_bug_fixes.jnl b/bench/v6jnls/bn696_bug_fixes.jnl
similarity index 100%
rename from bench/bn696_bug_fixes.jnl
rename to bench/v6jnls/bn696_bug_fixes.jnl
diff --git a/bench/bn697_bug_fixes.jnl b/bench/v6jnls/bn697_bug_fixes.jnl
similarity index 100%
rename from bench/bn697_bug_fixes.jnl
rename to bench/v6jnls/bn697_bug_fixes.jnl
diff --git a/bench/bn69_bug_fixes.jnl b/bench/v6jnls/bn69_bug_fixes.jnl
similarity index 100%
rename from bench/bn69_bug_fixes.jnl
rename to bench/v6jnls/bn69_bug_fixes.jnl
diff --git a/bench/bn_6d_lab_mode.jnl b/bench/v6jnls/bn_6d_lab_mode.jnl
similarity index 100%
rename from bench/bn_6d_lab_mode.jnl
rename to bench/v6jnls/bn_6d_lab_mode.jnl
diff --git a/bench/bn_DQ.jnl b/bench/v6jnls/bn_DQ.jnl
similarity index 91%
rename from bench/bn_DQ.jnl
rename to bench/v6jnls/bn_DQ.jnl
index bca8362..12fa6af 100644
--- a/bench/bn_DQ.jnl
+++ b/bench/v6jnls/bn_DQ.jnl
@@ -81,16 +81,16 @@ let a = {_DQ_"foobar"_DQ_,_DQ_"foobar"_DQ_}
list a
! ======
-list {SPAWN:"ls weird_name1.cdf","foobar"}
-let a = {SPAWN:"ls weird_name1.cdf","foobar"}
+list {SPAWN:"ls data/weird_name1.cdf","foobar"}
+let a = {SPAWN:"ls data/weird_name1.cdf","foobar"}
list a
-list {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
-let a = {SPAWN:_DQ_ls weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+list {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
+let a = {SPAWN:_DQ_ls data/weird_name1.cdf_DQ_,_DQ_foobar_DQ_}
list a
-list {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
-let a = {SPAWN:_DQ_ls "weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
+list {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_} ! DQ protects '"'
+let a = {SPAWN:_DQ_ls "data/weird_name1.cdf"_DQ_,_DQ_foobar_DQ_}
list a
! ======
@@ -163,13 +163,13 @@ DEFINE ATTR foobar.some_text = _DQ_"quoted attribute"_DQ_ ! DQ protects '"'
SHOW ATTRIBUTE/ALL foobar
! ======
-SPAWN "ls weird_name1.*"
-SPAWN _DQ_ls weird_name1.*_DQ_
+SPAWN "ls data/weird_name1.*"
+SPAWN _DQ_ls data/weird_name1.*_DQ_
! ======
-LET a = {"first.nc", SPAWN: "ls weird_name1.*" ,"last.nc"}
+LET a = {"first.nc", SPAWN: "ls data/weird_name1.*" ,"last.nc"}
LIST a
-LET a = {"first.nc", SPAWN:_DQ_ls weird_name1.*_DQ_,"last.nc"}
+LET a = {"first.nc", SPAWN:_DQ_ls data/weird_name1.*_DQ_,"last.nc"}
LIST a
! =========================
diff --git a/bench/bn_DQ.sub b/bench/v6jnls/bn_DQ.sub
similarity index 100%
rename from bench/bn_DQ.sub
rename to bench/v6jnls/bn_DQ.sub
diff --git a/bench/bn_NaN_note.jnl b/bench/v6jnls/bn_NaN_note.jnl
similarity index 100%
rename from bench/bn_NaN_note.jnl
rename to bench/v6jnls/bn_NaN_note.jnl
diff --git a/bench/bn_aggregate_e.jnl b/bench/v6jnls/bn_aggregate_e.jnl
similarity index 100%
rename from bench/bn_aggregate_e.jnl
rename to bench/v6jnls/bn_aggregate_e.jnl
diff --git a/bench/bn_aggregate_f.jnl b/bench/v6jnls/bn_aggregate_f.jnl
similarity index 100%
rename from bench/bn_aggregate_f.jnl
rename to bench/v6jnls/bn_aggregate_f.jnl
diff --git a/bench/bn_aggregate_f.sub b/bench/v6jnls/bn_aggregate_f.sub
similarity index 100%
rename from bench/bn_aggregate_f.sub
rename to bench/v6jnls/bn_aggregate_f.sub
diff --git a/bench/bn_aggregate_t.jnl b/bench/v6jnls/bn_aggregate_t.jnl
similarity index 100%
rename from bench/bn_aggregate_t.jnl
rename to bench/v6jnls/bn_aggregate_t.jnl
diff --git a/bench/bn_aggregate_tef.jnl b/bench/v6jnls/bn_aggregate_tef.jnl
similarity index 100%
rename from bench/bn_aggregate_tef.jnl
rename to bench/v6jnls/bn_aggregate_tef.jnl
diff --git a/bench/bn_annotate.jnl b/bench/v6jnls/bn_annotate.jnl
similarity index 100%
rename from bench/bn_annotate.jnl
rename to bench/v6jnls/bn_annotate.jnl
diff --git a/bench/bn_append_dsg.jnl b/bench/v6jnls/bn_append_dsg.jnl
similarity index 96%
rename from bench/bn_append_dsg.jnl
rename to bench/v6jnls/bn_append_dsg.jnl
index d2fa37b..fca90a0 100644
--- a/bench/bn_append_dsg.jnl
+++ b/bench/v6jnls/bn_append_dsg.jnl
@@ -14,7 +14,7 @@
! NOTE With the fix for ticket 2241, we need to add CANCEL MODE UPCASE.
sp rm test_save_dsg.nc
-sp cp test_save_dsg_in.nc test_save_dsg.nc
+sp cp data/test_save_dsg_in.nc test_save_dsg.nc
use test_save_dsg.nc
diff --git a/bench/bn_attributes.jnl b/bench/v6jnls/bn_attributes.jnl
similarity index 99%
rename from bench/bn_attributes.jnl
rename to bench/v6jnls/bn_attributes.jnl
index b14c00e..45f4a70 100644
--- a/bench/bn_attributes.jnl
+++ b/bench/v6jnls/bn_attributes.jnl
@@ -523,7 +523,7 @@ go bn_reset
use err491_attval.cdf
sp echo "bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:" >> all_ncdump.out
-sp ncdump -h err491_attval.cdf >> all_ncdump.out
+sp ncdump -h data/err491_attval.cdf >> all_ncdump.out
save/clobber/file=a.nc elev[i=3,j=2:4]
sp echo "bn_attributes.jnl --- 5 before CANCEL MODE upcase_output" >> all_ncdump.out
sp ncdump -h a.nc >> all_ncdump.out
diff --git a/bench/bn_auto_tprec.jnl b/bench/v6jnls/bn_auto_tprec.jnl
similarity index 100%
rename from bench/bn_auto_tprec.jnl
rename to bench/v6jnls/bn_auto_tprec.jnl
diff --git a/bench/bn_auxiliary.jnl b/bench/v6jnls/bn_auxiliary.jnl
similarity index 100%
rename from bench/bn_auxiliary.jnl
rename to bench/v6jnls/bn_auxiliary.jnl
diff --git a/bench/bn_auxiliary.sub b/bench/v6jnls/bn_auxiliary.sub
similarity index 100%
rename from bench/bn_auxiliary.sub
rename to bench/v6jnls/bn_auxiliary.sub
diff --git a/bench/bn_axis_cf.jnl b/bench/v6jnls/bn_axis_cf.jnl
similarity index 100%
rename from bench/bn_axis_cf.jnl
rename to bench/v6jnls/bn_axis_cf.jnl
diff --git a/bench/bn_axis_dir_symbols.jnl b/bench/v6jnls/bn_axis_dir_symbols.jnl
similarity index 100%
rename from bench/bn_axis_dir_symbols.jnl
rename to bench/v6jnls/bn_axis_dir_symbols.jnl
diff --git a/bench/bn_axis_nonmonotonic.jnl b/bench/v6jnls/bn_axis_nonmonotonic.jnl
similarity index 100%
rename from bench/bn_axis_nonmonotonic.jnl
rename to bench/v6jnls/bn_axis_nonmonotonic.jnl
diff --git a/bench/bn_axis_outtype.jnl b/bench/v6jnls/bn_axis_outtype.jnl
similarity index 100%
rename from bench/bn_axis_outtype.jnl
rename to bench/v6jnls/bn_axis_outtype.jnl
diff --git a/bench/bn_axis_reversed_syms.jnl b/bench/v6jnls/bn_axis_reversed_syms.jnl
similarity index 100%
rename from bench/bn_axis_reversed_syms.jnl
rename to bench/v6jnls/bn_axis_reversed_syms.jnl
diff --git a/bench/bn_bad_axis_bounds.jnl b/bench/v6jnls/bn_bad_axis_bounds.jnl
similarity index 100%
rename from bench/bn_bad_axis_bounds.jnl
rename to bench/v6jnls/bn_bad_axis_bounds.jnl
diff --git a/bench/bn_bin_regrid.jnl b/bench/v6jnls/bn_bin_regrid.jnl
similarity index 100%
rename from bench/bn_bin_regrid.jnl
rename to bench/v6jnls/bn_bin_regrid.jnl
diff --git a/bench/bn_bin_regrid.sub b/bench/v6jnls/bn_bin_regrid.sub
similarity index 100%
rename from bench/bn_bin_regrid.sub
rename to bench/v6jnls/bn_bin_regrid.sub
diff --git a/bench/bn_bounds_defineax.jnl b/bench/v6jnls/bn_bounds_defineax.jnl
similarity index 100%
rename from bench/bn_bounds_defineax.jnl
rename to bench/v6jnls/bn_bounds_defineax.jnl
diff --git a/bench/bn_can_var_noerr.jnl b/bench/v6jnls/bn_can_var_noerr.jnl
similarity index 100%
rename from bench/bn_can_var_noerr.jnl
rename to bench/v6jnls/bn_can_var_noerr.jnl
diff --git a/bench/bn_cancel_upcase_uservar.jnl b/bench/v6jnls/bn_cancel_upcase_uservar.jnl
similarity index 100%
rename from bench/bn_cancel_upcase_uservar.jnl
rename to bench/v6jnls/bn_cancel_upcase_uservar.jnl
diff --git a/bench/bn_cat_string.jnl b/bench/v6jnls/bn_cat_string.jnl
similarity index 100%
rename from bench/bn_cat_string.jnl
rename to bench/v6jnls/bn_cat_string.jnl
diff --git a/bench/bn_cdf_errmsg.jnl b/bench/v6jnls/bn_cdf_errmsg.jnl
similarity index 100%
rename from bench/bn_cdf_errmsg.jnl
rename to bench/v6jnls/bn_cdf_errmsg.jnl
diff --git a/bench/bn_cdf_keepax.jnl b/bench/v6jnls/bn_cdf_keepax.jnl
similarity index 100%
rename from bench/bn_cdf_keepax.jnl
rename to bench/v6jnls/bn_cdf_keepax.jnl
diff --git a/bench/bn_cdf_keepax.sub1 b/bench/v6jnls/bn_cdf_keepax.sub1
similarity index 100%
rename from bench/bn_cdf_keepax.sub1
rename to bench/v6jnls/bn_cdf_keepax.sub1
diff --git a/bench/bn_cdf_keepax.sub2 b/bench/v6jnls/bn_cdf_keepax.sub2
similarity index 100%
rename from bench/bn_cdf_keepax.sub2
rename to bench/v6jnls/bn_cdf_keepax.sub2
diff --git a/bench/bn_cdf_keepax.sub3 b/bench/v6jnls/bn_cdf_keepax.sub3
similarity index 100%
rename from bench/bn_cdf_keepax.sub3
rename to bench/v6jnls/bn_cdf_keepax.sub3
diff --git a/bench/bn_cdf_keepax.sub4 b/bench/v6jnls/bn_cdf_keepax.sub4
similarity index 100%
rename from bench/bn_cdf_keepax.sub4
rename to bench/v6jnls/bn_cdf_keepax.sub4
diff --git a/bench/bn_cdf_reversed_keepax.sub b/bench/v6jnls/bn_cdf_reversed_keepax.sub
similarity index 100%
rename from bench/bn_cdf_reversed_keepax.sub
rename to bench/v6jnls/bn_cdf_reversed_keepax.sub
diff --git a/bench/bn_center_key_labels.jnl b/bench/v6jnls/bn_center_key_labels.jnl
similarity index 100%
rename from bench/bn_center_key_labels.jnl
rename to bench/v6jnls/bn_center_key_labels.jnl
diff --git a/bench/bn_climatology_attr.jnl b/bench/v6jnls/bn_climatology_attr.jnl
similarity index 100%
rename from bench/bn_climatology_attr.jnl
rename to bench/v6jnls/bn_climatology_attr.jnl
diff --git a/bench/bn_clock_syms.jnl b/bench/v6jnls/bn_clock_syms.jnl
similarity index 100%
rename from bench/bn_clock_syms.jnl
rename to bench/v6jnls/bn_clock_syms.jnl
diff --git a/bench/bn_conventions_history.jnl b/bench/v6jnls/bn_conventions_history.jnl
similarity index 86%
rename from bench/bn_conventions_history.jnl
rename to bench/v6jnls/bn_conventions_history.jnl
index 3d6e31c..678cf79 100644
--- a/bench/bn_conventions_history.jnl
+++ b/bench/v6jnls/bn_conventions_history.jnl
@@ -4,7 +4,7 @@
! When appending to the Conventions and history
! attribute, add the new stuff with a comma and newline.
-sp cp conventions_history_in.nc conventions_history.nc
+sp cp data/conventions_history_in.nc conventions_history.nc
use conventions_history
!
! The existing global attributes
diff --git a/bench/bn_convolve.jnl b/bench/v6jnls/bn_convolve.jnl
similarity index 100%
rename from bench/bn_convolve.jnl
rename to bench/v6jnls/bn_convolve.jnl
diff --git a/bench/bn_coordvars_atts.jnl b/bench/v6jnls/bn_coordvars_atts.jnl
similarity index 100%
rename from bench/bn_coordvars_atts.jnl
rename to bench/v6jnls/bn_coordvars_atts.jnl
diff --git a/bench/bn_dataset_qualifier.jnl b/bench/v6jnls/bn_dataset_qualifier.jnl
similarity index 100%
rename from bench/bn_dataset_qualifier.jnl
rename to bench/v6jnls/bn_dataset_qualifier.jnl
diff --git a/bench/bn_date1900_array.jnl b/bench/v6jnls/bn_date1900_array.jnl
similarity index 100%
rename from bench/bn_date1900_array.jnl
rename to bench/v6jnls/bn_date1900_array.jnl
diff --git a/bench/bn_deg_min.jnl b/bench/v6jnls/bn_deg_min.jnl
similarity index 100%
rename from bench/bn_deg_min.jnl
rename to bench/v6jnls/bn_deg_min.jnl
diff --git a/bench/bn_descr_4digit.jnl b/bench/v6jnls/bn_descr_4digit.jnl
similarity index 100%
rename from bench/bn_descr_4digit.jnl
rename to bench/v6jnls/bn_descr_4digit.jnl
diff --git a/bench/bn_descriptor_mc.jnl b/bench/v6jnls/bn_descriptor_mc.jnl
similarity index 100%
rename from bench/bn_descriptor_mc.jnl
rename to bench/v6jnls/bn_descriptor_mc.jnl
diff --git a/bench/bn_direction_fcns_6d.jnl b/bench/v6jnls/bn_direction_fcns_6d.jnl
similarity index 100%
rename from bench/bn_direction_fcns_6d.jnl
rename to bench/v6jnls/bn_direction_fcns_6d.jnl
diff --git a/bench/bn_dp_readscale.jnl b/bench/v6jnls/bn_dp_readscale.jnl
similarity index 100%
rename from bench/bn_dp_readscale.jnl
rename to bench/v6jnls/bn_dp_readscale.jnl
diff --git a/bench/bn_dsg_e_x.jnl b/bench/v6jnls/bn_dsg_e_x.jnl
similarity index 100%
rename from bench/bn_dsg_e_x.jnl
rename to bench/v6jnls/bn_dsg_e_x.jnl
diff --git a/bench/bn_element_functions.jnl b/bench/v6jnls/bn_element_functions.jnl
similarity index 100%
rename from bench/bn_element_functions.jnl
rename to bench/v6jnls/bn_element_functions.jnl
diff --git a/bench/bn_enter_exit_GO.jnl b/bench/v6jnls/bn_enter_exit_GO.jnl
similarity index 100%
rename from bench/bn_enter_exit_GO.jnl
rename to bench/v6jnls/bn_enter_exit_GO.jnl
diff --git a/bench/bn_eof_simple.jnl b/bench/v6jnls/bn_eof_simple.jnl
similarity index 73%
rename from bench/bn_eof_simple.jnl
rename to bench/v6jnls/bn_eof_simple.jnl
index fbc83e4..507893c 100644
--- a/bench/bn_eof_simple.jnl
+++ b/bench/v6jnls/bn_eof_simple.jnl
@@ -4,7 +4,7 @@
! 7/2012
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
-
+! 11/2017 - still try to test old eof functions, if they are re-implemented
! Define two locations.
def axis /X=1:2:1 xaxis
@@ -39,12 +39,30 @@ show func eofsvd_space
! This is if the EOF functions are in units of the original data,
! thus the eigenvectors times the square-root of the eigenvalue.
! EOF vectors are always orthogonal to each other.
-list eofsvd_space(spacetime)
-
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
show func eofsvd_tfunc
! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
! TAF vectors are always orthogonal to each other.
-list eofsvd_tfunc(spacetime)
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
! The sum over all significant EOFs of the outer product of
! EOF(i) and TAF(i) should return the zero-time-meaned data
@@ -63,51 +81,49 @@ let spacetime = if (i eq 1) then cosT else sinT + 1
let space12 = if i ne 3 then spacetime
list eofsvd_stat(space12)
-list eofsvd_space(space12)
-list eofsvd_tfunc(space12)
+let eofs = eofsvd_space(space12[I=1:3])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+let tafs = eofsvd_tfunc(space12[I=1:3])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
! If there are no complete time series, the functions should bail with an error
let spacegap = if L ne 2 then spacetime
set mode ignore
+
list eofsvd_stat(spacegap)
list eofsvd_space(spacegap)
list eofsvd_tfunc(spacegap)
-! clean-up
set mode/last ignore
-can var spacetime
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
-exit/script
! -----------------------------------------------
! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
+set mode ignore
-! Define two locations.
def axis /X=1:2:1 xaxis
-def axis /Y=1:1:1 yaxis
-
-! Thinking of the time axis as number of months.
-def axis /T=0.0:59.75:0.25 taxis
-def grid /X=xaxis /Y=yaxis /T=taxis xytgrid
-set grid xytgrid
-
-! Make standing waves with a period of 12 months.
-let cosT = cos(T * 3.141592653589793 / 6.0)
-let sinT = sin(T * 3.141592653589793 / 6.0)
-
-! Put a standing wave at each location.
-! The two waves are orthonormal and zero-mean over time.
let spacetime = if (i eq 1) then cosT else sinT + 1
-show grid spacetime
show func eof_stat
! Run each of the eof functions and show the results.
@@ -124,12 +140,32 @@ show func eof_space
! This is if the EOF functions are in units of the original data,
! thus the eigenvectors times the square-root of the eigenvalue.
! EOF vectors are always orthogonal to each other.
-list eof_space(spacetime, 1.0)
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
show func eof_tfunc
! Ideally sqrt(2.0) * (cosT, sinT), but may be mixed by rotation.
! TAF vectors are always orthogonal to each other.
-list eof_tfunc(spacetime, 1.0)
+let tafs = eof_tfunc(spacetime[I=1:2], 1.0)
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
+
+set mode/last ignore
! The sum over all significant EOFs of the outer product of
! EOF(i) and TAF(i) should return the zero-time-meaned data
@@ -138,10 +174,6 @@ list eof_tfunc(spacetime, 1.0)
! In this case, EOF(1) o TAF(1) + EOF(2) o TAF(2) = (cosT, sinT)
! clean-up
-can var spacetime
set grid abstract
+can var /all
can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
diff --git a/bench/bn_eof_simple2.jnl b/bench/v6jnls/bn_eof_simple2.jnl
similarity index 71%
rename from bench/bn_eof_simple2.jnl
rename to bench/v6jnls/bn_eof_simple2.jnl
index 233e1a5..c93f2be 100644
--- a/bench/bn_eof_simple2.jnl
+++ b/bench/v6jnls/bn_eof_simple2.jnl
@@ -4,6 +4,7 @@
! 7/2012
! In version 6.8 (double precision), the old eof functions are not available
! Run the script calling eofsvd functions and exit, leaving old eof function calls.
+! 11/2017 - still try to test old eof functions, if they are re-implemented
! Define four locations.
def axis /X=1:2:1 xaxis
@@ -43,9 +44,16 @@ show func eofsvd_space
! The norm^2 of an EOF should be the eigenvalue.
! The two EOFs should be orthogonal to each other.
! Rotation (mixing) of these two may occur.
-let eofs = eofsvd_space(spacetime)
-! T axis of eofsvd_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
+let eofs = eofsvd_space(spacetime[I=1:2])
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
show func eofsvd_tfunc
! Ideally:
@@ -54,9 +62,16 @@ show func eofsvd_tfunc
! The norm^2 of a TAF should be the number of time values.
! The two TAFs should be orthogonal to each other.
! Rotation (mixing) of these two may occur.
-let tafs = eofsvd_tfunc(spacetime)
-! X axis of eofsvd_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
+let tafs = eofsvd_tfunc(spacetime[I=1:2])
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
! Explanation:
! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
@@ -66,40 +81,11 @@ list tafs[I=1:2]
! = (0.0, cosT * sinT, cosT * sinT, 0.0)
! Adding these three gives the original data
-! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
-set grid abstract
-can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
-exit/script
! -----------------------------------------------
! previous commands that called eof_space, eof_stat, eof_tfunc
+! these functions all now bail out - do not work properly in double precision
-! Define four locations.
-def axis /X=1:2:1 xaxis
-def axis /Y=1:2:1 yaxis
-
-! Thinking of the time axis as number of months.
-def axis /T=0.0:23.9:0.1 taxis
-def grid /X=xaxis /Y=yaxis /T=taxis xytgrid
-set grid xytgrid
-
-! Make standing waves with a period of 12 months.
-let cosT = cos(T * 3.141592653589793 / 6.0)
-let sinT = sin(T * 3.141592653589793 / 6.0)
-
-! Put a products of the standing waves at each location.
-let spacetime12 = if (i eq 1) and (j eq 1) then cost * cost else cost * sint + 1
-let spacetime123 = if (i eq 2) and (j eq 1) then cost * sint + 2 else spacetime12
-let spacetime = if (i eq 2) and (j eq 2) then sint * sint + 3 else spacetime123
-show grid spacetime
+set mode ignore
show func eof_stat
! Two are of equal significance with eigenvalues of 0.25.
@@ -120,9 +106,16 @@ show func eof_space
! The norm^2 of an EOF should be the eigenvalue.
! The two EOFs should be orthogonal to each other.
! Rotation (mixing) of these two may occur.
-let eofs = eof_space(spacetime, 1.0)
-! T axis of eof_space is abstract, so following uses full spacetime
-list eofs[L=1:2]
+let eofs = eof_space(spacetime[I=1:2], 1.0)
+load eofs
+let v1 = eofs[I=1]
+show grid v1
+let v2 = eofs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
show func eof_tfunc
! Ideally:
@@ -132,27 +125,27 @@ show func eof_tfunc
! The two TAFs should be orthogonal to each other.
! Rotation (mixing) of these two may occur.
let tafs = eof_tfunc(spacetime, 1.0)
-! X axis of eof_tfunc is abstract, so following uses full spacetime
-list tafs[I=1:2]
+load tafs
+let v1 = tafs[I=1]
+show grid v1
+let v2 = tafs[I=2]
+show grid v2
+list dot_t(v1, v1)
+list dot_t(v1, v2)
+list dot_t(v2, v1)
+list dot_t(v2, v2)
! Explanation:
! Time series means = (0.5, 0.0, 0.0, 0.5) + (0, 1, 2, 3)
! EOF1 * TAF1 = (0.5 * cos2T, 0.0, 0.0, -0.5 * cos2T)
! = (cosT^2 - 0.5, 0.0, 0.0, sinT^2 - 0.5)
-! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
+ ! EOF2 * TAF2 = (0.0, 0.5 * sin2T, 0.5 * sin2T, 0.0)
! = (0.0, cosT * sinT, cosT * sinT, 0.0)
! Adding these three gives the original data
-! clean-up
-can var tafs
-can var eofs
-can var spacetime
-can var spacetime123
-can var spacetime12
+set mode/last ignore
+
+! clean-up
set grid abstract
+can var /all
can grid xytgrid
-can axis taxis
-can axis yaxis
-can axis xaxis
-
-
diff --git a/bench/bn_expressions_6d.jnl b/bench/v6jnls/bn_expressions_6d.jnl
similarity index 100%
rename from bench/bn_expressions_6d.jnl
rename to bench/v6jnls/bn_expressions_6d.jnl
diff --git a/bench/bn_f_tax_fcns.jnl b/bench/v6jnls/bn_f_tax_fcns.jnl
similarity index 100%
rename from bench/bn_f_tax_fcns.jnl
rename to bench/v6jnls/bn_f_tax_fcns.jnl
diff --git a/bench/bn_fifty_files.jnl b/bench/v6jnls/bn_fifty_files.jnl
similarity index 100%
rename from bench/bn_fifty_files.jnl
rename to bench/v6jnls/bn_fifty_files.jnl
diff --git a/bench/bn_floatstr.jnl b/bench/v6jnls/bn_floatstr.jnl
similarity index 100%
rename from bench/bn_floatstr.jnl
rename to bench/v6jnls/bn_floatstr.jnl
diff --git a/bench/bn_floatstr_extended.jnl b/bench/v6jnls/bn_floatstr_extended.jnl
similarity index 100%
rename from bench/bn_floatstr_extended.jnl
rename to bench/v6jnls/bn_floatstr_extended.jnl
diff --git a/bench/bn_fmrc.jnl b/bench/v6jnls/bn_fmrc.jnl
similarity index 100%
rename from bench/bn_fmrc.jnl
rename to bench/v6jnls/bn_fmrc.jnl
diff --git a/bench/bn_global_atts.jnl b/bench/v6jnls/bn_global_atts.jnl
similarity index 87%
rename from bench/bn_global_atts.jnl
rename to bench/v6jnls/bn_global_atts.jnl
index e5c9d70..73b44b6 100644
--- a/bench/bn_global_atts.jnl
+++ b/bench/v6jnls/bn_global_atts.jnl
@@ -3,7 +3,7 @@
cancel mode upcase
-sp cp global.nc global_copy.nc
+sp cp data/global.nc global_copy.nc
use global_copy.nc
! Lon in 0-360
let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
@@ -11,13 +11,13 @@ define attribute/output lon360.ioos_category = "Location"
define attribute/output lon360.standard_name = "Longitude"
define attribute/output lon360.history = "added to test_save_dsg.nc"
save/quiet/append/file=global_copy.nc lon360
-sp ncdump -h global.nc
+sp ncdump -h data/global.nc
sp ncdump -h global_copy.nc
! This dataset has global attributes history and Conventions that include
! a Ferret version and CF version that Ferret will replace.
-sp ncgen -o anew_global.nc anew_global.cdl
+sp ncgen -o anew_global.nc data/anew_global.cdl
use anew_global.nc
sh att .
let var = 8
diff --git a/bench/bn_grads_z.jnl b/bench/v6jnls/bn_grads_z.jnl
similarity index 100%
rename from bench/bn_grads_z.jnl
rename to bench/v6jnls/bn_grads_z.jnl
diff --git a/bench/bn_ifv.jnl b/bench/v6jnls/bn_ifv.jnl
similarity index 100%
rename from bench/bn_ifv.jnl
rename to bench/v6jnls/bn_ifv.jnl
diff --git a/bench/bn_interpolate_6d.jnl b/bench/v6jnls/bn_interpolate_6d.jnl
similarity index 100%
rename from bench/bn_interpolate_6d.jnl
rename to bench/v6jnls/bn_interpolate_6d.jnl
diff --git a/bench/bn_interpolate_6d.sub b/bench/v6jnls/bn_interpolate_6d.sub
similarity index 100%
rename from bench/bn_interpolate_6d.sub
rename to bench/v6jnls/bn_interpolate_6d.sub
diff --git a/bench/bn_isdepth.jnl b/bench/v6jnls/bn_isdepth.jnl
similarity index 100%
rename from bench/bn_isdepth.jnl
rename to bench/v6jnls/bn_isdepth.jnl
diff --git a/bench/bn_keep_axisnames.jnl b/bench/v6jnls/bn_keep_axisnames.jnl
similarity index 100%
rename from bench/bn_keep_axisnames.jnl
rename to bench/v6jnls/bn_keep_axisnames.jnl
diff --git a/bench/bn_key_label_minmax.jnl b/bench/v6jnls/bn_key_label_minmax.jnl
similarity index 100%
rename from bench/bn_key_label_minmax.jnl
rename to bench/v6jnls/bn_key_label_minmax.jnl
diff --git a/bench/bn_labnum_calendar.jnl b/bench/v6jnls/bn_labnum_calendar.jnl
similarity index 100%
rename from bench/bn_labnum_calendar.jnl
rename to bench/v6jnls/bn_labnum_calendar.jnl
diff --git a/bench/bn_last_error.jnl b/bench/v6jnls/bn_last_error.jnl
similarity index 100%
rename from bench/bn_last_error.jnl
rename to bench/v6jnls/bn_last_error.jnl
diff --git a/bench/bn_last_go_file.jnl b/bench/v6jnls/bn_last_go_file.jnl
similarity index 100%
rename from bench/bn_last_go_file.jnl
rename to bench/v6jnls/bn_last_go_file.jnl
diff --git a/bench/bn_legend_labels.jnl b/bench/v6jnls/bn_legend_labels.jnl
similarity index 100%
rename from bench/bn_legend_labels.jnl
rename to bench/v6jnls/bn_legend_labels.jnl
diff --git a/bench/bn_let_remote.jnl b/bench/v6jnls/bn_let_remote.jnl
similarity index 100%
rename from bench/bn_let_remote.jnl
rename to bench/v6jnls/bn_let_remote.jnl
diff --git a/bench/bn_letd_attributes.jnl b/bench/v6jnls/bn_letd_attributes.jnl
similarity index 100%
rename from bench/bn_letd_attributes.jnl
rename to bench/v6jnls/bn_letd_attributes.jnl
diff --git a/bench/bn_linecolors.jnl b/bench/v6jnls/bn_linecolors.jnl
similarity index 100%
rename from bench/bn_linecolors.jnl
rename to bench/v6jnls/bn_linecolors.jnl
diff --git a/bench/bn_list_clim_axes.jnl b/bench/v6jnls/bn_list_clim_axes.jnl
similarity index 100%
rename from bench/bn_list_clim_axes.jnl
rename to bench/v6jnls/bn_list_clim_axes.jnl
diff --git a/bench/bn_lon_lat_time_string.jnl b/bench/v6jnls/bn_lon_lat_time_string.jnl
similarity index 100%
rename from bench/bn_lon_lat_time_string.jnl
rename to bench/v6jnls/bn_lon_lat_time_string.jnl
diff --git a/bench/bn_long_grid_names.jnl b/bench/v6jnls/bn_long_grid_names.jnl
similarity index 100%
rename from bench/bn_long_grid_names.jnl
rename to bench/v6jnls/bn_long_grid_names.jnl
diff --git a/bench/bn_long_lists.jnl b/bench/v6jnls/bn_long_lists.jnl
similarity index 100%
rename from bench/bn_long_lists.jnl
rename to bench/v6jnls/bn_long_lists.jnl
diff --git a/bench/bn_long_revision_num.jnl b/bench/v6jnls/bn_long_revision_num.jnl
similarity index 100%
rename from bench/bn_long_revision_num.jnl
rename to bench/v6jnls/bn_long_revision_num.jnl
diff --git a/bench/bn_long_symnames.jnl b/bench/v6jnls/bn_long_symnames.jnl
similarity index 100%
rename from bench/bn_long_symnames.jnl
rename to bench/v6jnls/bn_long_symnames.jnl
diff --git a/bench/bn_lsl_lowpass.jnl b/bench/v6jnls/bn_lsl_lowpass.jnl
similarity index 100%
rename from bench/bn_lsl_lowpass.jnl
rename to bench/v6jnls/bn_lsl_lowpass.jnl
diff --git a/bench/bn_median.jnl b/bench/v6jnls/bn_median.jnl
similarity index 100%
rename from bench/bn_median.jnl
rename to bench/v6jnls/bn_median.jnl
diff --git a/bench/bn_memory_symbol.jnl b/bench/v6jnls/bn_memory_symbol.jnl
similarity index 100%
rename from bench/bn_memory_symbol.jnl
rename to bench/v6jnls/bn_memory_symbol.jnl
diff --git a/bench/bn_min_max_smoothers.jnl b/bench/v6jnls/bn_min_max_smoothers.jnl
similarity index 100%
rename from bench/bn_min_max_smoothers.jnl
rename to bench/v6jnls/bn_min_max_smoothers.jnl
diff --git a/bench/bn_mode_nlevels.jnl b/bench/v6jnls/bn_mode_nlevels.jnl
similarity index 100%
rename from bench/bn_mode_nlevels.jnl
rename to bench/v6jnls/bn_mode_nlevels.jnl
diff --git a/bench/bn_mode_nodata_lab.jnl b/bench/v6jnls/bn_mode_nodata_lab.jnl
similarity index 100%
rename from bench/bn_mode_nodata_lab.jnl
rename to bench/v6jnls/bn_mode_nodata_lab.jnl
diff --git a/bench/bn_modnbd.jnl b/bench/v6jnls/bn_modnbd.jnl
similarity index 100%
rename from bench/bn_modnbd.jnl
rename to bench/v6jnls/bn_modnbd.jnl
diff --git a/bench/bn_multi_decade.jnl b/bench/v6jnls/bn_multi_decade.jnl
similarity index 100%
rename from bench/bn_multi_decade.jnl
rename to bench/v6jnls/bn_multi_decade.jnl
diff --git a/bench/bn_n_open_dsets_sym.jnl b/bench/v6jnls/bn_n_open_dsets_sym.jnl
similarity index 100%
rename from bench/bn_n_open_dsets_sym.jnl
rename to bench/v6jnls/bn_n_open_dsets_sym.jnl
diff --git a/bench/bn_nco_append.jnl b/bench/v6jnls/bn_nco_append.jnl
similarity index 100%
rename from bench/bn_nco_append.jnl
rename to bench/v6jnls/bn_nco_append.jnl
diff --git a/bench/bn_netcdf4.jnl b/bench/v6jnls/bn_netcdf4.jnl
similarity index 100%
rename from bench/bn_netcdf4.jnl
rename to bench/v6jnls/bn_netcdf4.jnl
diff --git a/bench/bn_no_valid_on_plot.jnl b/bench/v6jnls/bn_no_valid_on_plot.jnl
similarity index 100%
rename from bench/bn_no_valid_on_plot.jnl
rename to bench/v6jnls/bn_no_valid_on_plot.jnl
diff --git a/bench/bn_nobounds.jnl b/bench/v6jnls/bn_nobounds.jnl
similarity index 100%
rename from bench/bn_nobounds.jnl
rename to bench/v6jnls/bn_nobounds.jnl
diff --git a/bench/bn_outtype.jnl b/bench/v6jnls/bn_outtype.jnl
similarity index 100%
rename from bench/bn_outtype.jnl
rename to bench/v6jnls/bn_outtype.jnl
diff --git a/bench/bn_permute_ascii.jnl b/bench/v6jnls/bn_permute_ascii.jnl
similarity index 100%
rename from bench/bn_permute_ascii.jnl
rename to bench/v6jnls/bn_permute_ascii.jnl
diff --git a/bench/bn_plot_along.jnl b/bench/v6jnls/bn_plot_along.jnl
similarity index 100%
rename from bench/bn_plot_along.jnl
rename to bench/v6jnls/bn_plot_along.jnl
diff --git a/bench/bn_plot_color_only.jnl b/bench/v6jnls/bn_plot_color_only.jnl
similarity index 100%
rename from bench/bn_plot_color_only.jnl
rename to bench/v6jnls/bn_plot_color_only.jnl
diff --git a/bench/bn_plot_decimate.jnl b/bench/v6jnls/bn_plot_decimate.jnl
similarity index 100%
rename from bench/bn_plot_decimate.jnl
rename to bench/v6jnls/bn_plot_decimate.jnl
diff --git a/bench/bn_plot_ribbon_gaploc.jnl b/bench/v6jnls/bn_plot_ribbon_gaploc.jnl
similarity index 100%
rename from bench/bn_plot_ribbon_gaploc.jnl
rename to bench/v6jnls/bn_plot_ribbon_gaploc.jnl
diff --git a/bench/bn_polygon_log.jnl b/bench/v6jnls/bn_polygon_log.jnl
similarity index 100%
rename from bench/bn_polygon_log.jnl
rename to bench/v6jnls/bn_polygon_log.jnl
diff --git a/bench/bn_proleptic_gregorian_calendar.jnl b/bench/v6jnls/bn_proleptic_gregorian_calendar.jnl
similarity index 100%
rename from bench/bn_proleptic_gregorian_calendar.jnl
rename to bench/v6jnls/bn_proleptic_gregorian_calendar.jnl
diff --git a/bench/bn_randu2_randn2.jnl b/bench/v6jnls/bn_randu2_randn2.jnl
similarity index 100%
rename from bench/bn_randu2_randn2.jnl
rename to bench/v6jnls/bn_randu2_randn2.jnl
diff --git a/bench/bn_regrid_6d.jnl b/bench/v6jnls/bn_regrid_6d.jnl
similarity index 100%
rename from bench/bn_regrid_6d.jnl
rename to bench/v6jnls/bn_regrid_6d.jnl
diff --git a/bench/bn_regrid_transforms_6d.jnl b/bench/v6jnls/bn_regrid_transforms_6d.jnl
similarity index 100%
rename from bench/bn_regrid_transforms_6d.jnl
rename to bench/v6jnls/bn_regrid_transforms_6d.jnl
diff --git a/bench/bn_repeated_coords.jnl b/bench/v6jnls/bn_repeated_coords.jnl
similarity index 100%
rename from bench/bn_repeated_coords.jnl
rename to bench/v6jnls/bn_repeated_coords.jnl
diff --git a/bench/bn_repl_9999999.jnl b/bench/v6jnls/bn_repl_9999999.jnl
similarity index 100%
rename from bench/bn_repl_9999999.jnl
rename to bench/v6jnls/bn_repl_9999999.jnl
diff --git a/bench/bn_return_defined.jnl b/bench/v6jnls/bn_return_defined.jnl
similarity index 100%
rename from bench/bn_return_defined.jnl
rename to bench/v6jnls/bn_return_defined.jnl
diff --git a/bench/bn_return_xmod_tmod.jnl b/bench/v6jnls/bn_return_xmod_tmod.jnl
similarity index 100%
rename from bench/bn_return_xmod_tmod.jnl
rename to bench/v6jnls/bn_return_xmod_tmod.jnl
diff --git a/bench/bn_ribbon_plot.jnl b/bench/v6jnls/bn_ribbon_plot.jnl
similarity index 100%
rename from bench/bn_ribbon_plot.jnl
rename to bench/v6jnls/bn_ribbon_plot.jnl
diff --git a/bench/bn_samplexyt.jnl b/bench/v6jnls/bn_samplexyt.jnl
similarity index 100%
rename from bench/bn_samplexyt.jnl
rename to bench/v6jnls/bn_samplexyt.jnl
diff --git a/bench/bn_save_justdim.jnl b/bench/v6jnls/bn_save_justdim.jnl
similarity index 100%
rename from bench/bn_save_justdim.jnl
rename to bench/v6jnls/bn_save_justdim.jnl
diff --git a/bench/bn_scat2grid_bin.jnl b/bench/v6jnls/bn_scat2grid_bin.jnl
similarity index 100%
rename from bench/bn_scat2grid_bin.jnl
rename to bench/v6jnls/bn_scat2grid_bin.jnl
diff --git a/bench/bn_set_axis_name.jnl b/bench/v6jnls/bn_set_axis_name.jnl
similarity index 100%
rename from bench/bn_set_axis_name.jnl
rename to bench/v6jnls/bn_set_axis_name.jnl
diff --git a/bench/bn_set_axis_regular.jnl b/bench/v6jnls/bn_set_axis_regular.jnl
similarity index 100%
rename from bench/bn_set_axis_regular.jnl
rename to bench/v6jnls/bn_set_axis_regular.jnl
diff --git a/bench/bn_set_cancel_redirect.jnl b/bench/v6jnls/bn_set_cancel_redirect.jnl
similarity index 100%
rename from bench/bn_set_cancel_redirect.jnl
rename to bench/v6jnls/bn_set_cancel_redirect.jnl
diff --git a/bench/bn_set_strides.jnl b/bench/v6jnls/bn_set_strides.jnl
similarity index 96%
rename from bench/bn_set_strides.jnl
rename to bench/v6jnls/bn_set_strides.jnl
index 39c2060..bbe925e 100644
--- a/bench/bn_set_strides.jnl
+++ b/bench/v6jnls/bn_set_strides.jnl
@@ -7,7 +7,7 @@
! unrelated axes already defined, which get in the way of
! seeing the desired output.
-set mode ignore_error
+!set mode ignore_error
!..............1. ignore STRIDE = 1
use coads_climatology
@@ -23,8 +23,10 @@ use coads_climatology
set axis/stride=2/offset=1 `sst, return=xaxis`
show axis `sst,return=xaxis`
!can't stride it again
+set mode ignore_error
set axis/stride=2/offset=1 `sst, return=xaxis`
show axis `sst,return=xaxis`
+set mode/last ignore
cancel data/all
!..............3. only set STRIDE
@@ -51,13 +53,18 @@ cancel data/all
use coads_climatology
set axis/offset=1 `sst, return=xaxis`
show axis `sst,return=xaxis`
+
+set mode ignore
cancel axis/stride `sst,return=xaxis`
+set mode/last ignore
cancel data/all
!.............5. OFFSET .LE. STRIDE
use coads_climatology
+set mode ignore
set axis/stride=2/offset=4 `sst, return=xaxis`
+set mode/last ignore
cancel data/all
!.............6. SHOW GRID/DYNAMIC
@@ -68,7 +75,10 @@ cancel data/all
!.............7. cancel stride on a non-strided axis
use coads_climatology
+set mode ignore
cancel axis/stride `sst,return=xaxis`
+set mode/last ignore
+
cancel data/all
!.............8. striding on a modulo axis
@@ -133,6 +143,7 @@ can data/all
! --- 10.2 stride on a reversed axis -- YAXIS
use/order=x-yt coads_climatology
list/x=180/l=5 sst[j=1:30]
+
set axis/stride=5/offset=3 `sst,return=yaxis`
list/x=180/l=5 sst
list/x=180/l=5 sst[j=3:14:2]
diff --git a/bench/bn_set_var_name.jnl b/bench/v6jnls/bn_set_var_name.jnl
similarity index 100%
rename from bench/bn_set_var_name.jnl
rename to bench/v6jnls/bn_set_var_name.jnl
diff --git a/bench/bn_shade_trim.jnl b/bench/v6jnls/bn_shade_trim.jnl
similarity index 100%
rename from bench/bn_shade_trim.jnl
rename to bench/v6jnls/bn_shade_trim.jnl
diff --git a/bench/bn_short.sub b/bench/v6jnls/bn_short.sub
similarity index 100%
rename from bench/bn_short.sub
rename to bench/v6jnls/bn_short.sub
diff --git a/bench/bn_shortgo.jnl b/bench/v6jnls/bn_shortgo.jnl
similarity index 100%
rename from bench/bn_shortgo.jnl
rename to bench/v6jnls/bn_shortgo.jnl
diff --git a/bench/bn_shortgo2.jnl b/bench/v6jnls/bn_shortgo2.jnl
similarity index 100%
rename from bench/bn_shortgo2.jnl
rename to bench/v6jnls/bn_shortgo2.jnl
diff --git a/bench/bn_show_commands.jnl b/bench/v6jnls/bn_show_commands.jnl
similarity index 100%
rename from bench/bn_show_commands.jnl
rename to bench/v6jnls/bn_show_commands.jnl
diff --git a/bench/bn_show_noupcase.jnl b/bench/v6jnls/bn_show_noupcase.jnl
similarity index 100%
rename from bench/bn_show_noupcase.jnl
rename to bench/v6jnls/bn_show_noupcase.jnl
diff --git a/bench/bn_show_outfile.jnl b/bench/v6jnls/bn_show_outfile.jnl
similarity index 100%
rename from bench/bn_show_outfile.jnl
rename to bench/v6jnls/bn_show_outfile.jnl
diff --git a/bench/bn_show_uvar_grid.jnl b/bench/v6jnls/bn_show_uvar_grid.jnl
similarity index 100%
rename from bench/bn_show_uvar_grid.jnl
rename to bench/v6jnls/bn_show_uvar_grid.jnl
diff --git a/bench/bn_show_xml_file.jnl b/bench/v6jnls/bn_show_xml_file.jnl
similarity index 100%
rename from bench/bn_show_xml_file.jnl
rename to bench/v6jnls/bn_show_xml_file.jnl
diff --git a/bench/bn_single_colorlev.jnl b/bench/v6jnls/bn_single_colorlev.jnl
similarity index 100%
rename from bench/bn_single_colorlev.jnl
rename to bench/v6jnls/bn_single_colorlev.jnl
diff --git a/bench/bn_sort_strings.jnl b/bench/v6jnls/bn_sort_strings.jnl
similarity index 100%
rename from bench/bn_sort_strings.jnl
rename to bench/v6jnls/bn_sort_strings.jnl
diff --git a/bench/bn_spawn_size.jnl b/bench/v6jnls/bn_spawn_size.jnl
similarity index 100%
rename from bench/bn_spawn_size.jnl
rename to bench/v6jnls/bn_spawn_size.jnl
diff --git a/bench/bn_speedtest.jnl b/bench/v6jnls/bn_speedtest.jnl
similarity index 100%
rename from bench/bn_speedtest.jnl
rename to bench/v6jnls/bn_speedtest.jnl
diff --git a/bench/bn_stddev.jnl b/bench/v6jnls/bn_stddev.jnl
similarity index 100%
rename from bench/bn_stddev.jnl
rename to bench/v6jnls/bn_stddev.jnl
diff --git a/bench/bn_strdim.jnl b/bench/v6jnls/bn_strdim.jnl
similarity index 100%
rename from bench/bn_strdim.jnl
rename to bench/v6jnls/bn_strdim.jnl
diff --git a/bench/bn_string_ngd_nbd.jnl b/bench/v6jnls/bn_string_ngd_nbd.jnl
similarity index 100%
rename from bench/bn_string_ngd_nbd.jnl
rename to bench/v6jnls/bn_string_ngd_nbd.jnl
diff --git a/bench/bn_syntax_6d.jnl b/bench/v6jnls/bn_syntax_6d.jnl
similarity index 100%
rename from bench/bn_syntax_6d.jnl
rename to bench/v6jnls/bn_syntax_6d.jnl
diff --git a/bench/bn_tab_comma_multivar.jnl b/bench/v6jnls/bn_tab_comma_multivar.jnl
similarity index 100%
rename from bench/bn_tab_comma_multivar.jnl
rename to bench/v6jnls/bn_tab_comma_multivar.jnl
diff --git a/bench/bn_tax_tstep.jnl b/bench/v6jnls/bn_tax_tstep.jnl
similarity index 100%
rename from bench/bn_tax_tstep.jnl
rename to bench/v6jnls/bn_tax_tstep.jnl
diff --git a/bench/bn_test_opendap.jnl b/bench/v6jnls/bn_test_opendap.jnl
similarity index 100%
rename from bench/bn_test_opendap.jnl
rename to bench/v6jnls/bn_test_opendap.jnl
diff --git a/bench/bn_time2d.jnl b/bench/v6jnls/bn_time2d.jnl
similarity index 100%
rename from bench/bn_time2d.jnl
rename to bench/v6jnls/bn_time2d.jnl
diff --git a/bench/bn_time_short_axes.jnl b/bench/v6jnls/bn_time_short_axes.jnl
similarity index 100%
rename from bench/bn_time_short_axes.jnl
rename to bench/v6jnls/bn_time_short_axes.jnl
diff --git a/bench/bn_transforms.jnl b/bench/v6jnls/bn_transforms.jnl
similarity index 100%
rename from bench/bn_transforms.jnl
rename to bench/v6jnls/bn_transforms.jnl
diff --git a/bench/bn_txtype_dmy.jnl b/bench/v6jnls/bn_txtype_dmy.jnl
similarity index 100%
rename from bench/bn_txtype_dmy.jnl
rename to bench/v6jnls/bn_txtype_dmy.jnl
diff --git a/bench/bn_unquoted_args.jnl b/bench/v6jnls/bn_unquoted_args.jnl
similarity index 100%
rename from bench/bn_unquoted_args.jnl
rename to bench/v6jnls/bn_unquoted_args.jnl
diff --git a/bench/bn_var_hist_levels.jnl b/bench/v6jnls/bn_var_hist_levels.jnl
similarity index 100%
rename from bench/bn_var_hist_levels.jnl
rename to bench/v6jnls/bn_var_hist_levels.jnl
diff --git a/bench/bn_varcontext_attributes.jnl b/bench/v6jnls/bn_varcontext_attributes.jnl
similarity index 100%
rename from bench/bn_varcontext_attributes.jnl
rename to bench/v6jnls/bn_varcontext_attributes.jnl
diff --git a/bench/bn_variance.jnl b/bench/v6jnls/bn_variance.jnl
similarity index 100%
rename from bench/bn_variance.jnl
rename to bench/v6jnls/bn_variance.jnl
diff --git a/bench/bn_variance_large.jnl b/bench/v6jnls/bn_variance_large.jnl
similarity index 100%
rename from bench/bn_variance_large.jnl
rename to bench/v6jnls/bn_variance_large.jnl
diff --git a/bench/bn_vec_mod.jnl b/bench/v6jnls/bn_vec_mod.jnl
similarity index 100%
rename from bench/bn_vec_mod.jnl
rename to bench/v6jnls/bn_vec_mod.jnl
diff --git a/bench/bn_vector_symbols.jnl b/bench/v6jnls/bn_vector_symbols.jnl
similarity index 100%
rename from bench/bn_vector_symbols.jnl
rename to bench/v6jnls/bn_vector_symbols.jnl
diff --git a/bench/bn_vtree.jnl b/bench/v6jnls/bn_vtree.jnl
similarity index 100%
rename from bench/bn_vtree.jnl
rename to bench/v6jnls/bn_vtree.jnl
diff --git a/bench/bn_vtree.sub b/bench/v6jnls/bn_vtree.sub
similarity index 100%
rename from bench/bn_vtree.sub
rename to bench/v6jnls/bn_vtree.sub
diff --git a/bench/bn_vtree_outfile.jnl b/bench/v6jnls/bn_vtree_outfile.jnl
similarity index 100%
rename from bench/bn_vtree_outfile.jnl
rename to bench/v6jnls/bn_vtree_outfile.jnl
diff --git a/bench/bn_vtree_outfile.sub b/bench/v6jnls/bn_vtree_outfile.sub
similarity index 100%
rename from bench/bn_vtree_outfile.sub
rename to bench/v6jnls/bn_vtree_outfile.sub
diff --git a/bench/bn_vtree_regrid.jnl b/bench/v6jnls/bn_vtree_regrid.jnl
similarity index 100%
rename from bench/bn_vtree_regrid.jnl
rename to bench/v6jnls/bn_vtree_regrid.jnl
diff --git a/bench/bn_wgt_transform.jnl b/bench/v6jnls/bn_wgt_transform.jnl
similarity index 100%
rename from bench/bn_wgt_transform.jnl
rename to bench/v6jnls/bn_wgt_transform.jnl
diff --git a/bench/bn_window_title.jnl b/bench/v6jnls/bn_window_title.jnl
similarity index 100%
rename from bench/bn_window_title.jnl
rename to bench/v6jnls/bn_window_title.jnl
diff --git a/bench/bn_write_integer_att.jnl b/bench/v6jnls/bn_write_integer_att.jnl
similarity index 100%
rename from bench/bn_write_integer_att.jnl
rename to bench/v6jnls/bn_write_integer_att.jnl
diff --git a/bench/bn_xml_header.jnl b/bench/v6jnls/bn_xml_header.jnl
similarity index 100%
rename from bench/bn_xml_header.jnl
rename to bench/v6jnls/bn_xml_header.jnl
diff --git a/bench/bn_xml_repl.jnl b/bench/v6jnls/bn_xml_repl.jnl
similarity index 100%
rename from bench/bn_xml_repl.jnl
rename to bench/v6jnls/bn_xml_repl.jnl
diff --git a/bench/err600_check_bounds_regular.jnl b/bench/v6jnls/err600_check_bounds_regular.jnl
similarity index 100%
rename from bench/err600_check_bounds_regular.jnl
rename to bench/v6jnls/err600_check_bounds_regular.jnl
diff --git a/bench/err600_ferret_axis_names.jnl b/bench/v6jnls/err600_ferret_axis_names.jnl
similarity index 100%
rename from bench/err600_ferret_axis_names.jnl
rename to bench/v6jnls/err600_ferret_axis_names.jnl
diff --git a/bench/err600_if_comments_tab.jnl b/bench/v6jnls/err600_if_comments_tab.jnl
similarity index 100%
rename from bench/err600_if_comments_tab.jnl
rename to bench/v6jnls/err600_if_comments_tab.jnl
diff --git a/bench/err600_let_d.jnl b/bench/v6jnls/err600_let_d.jnl
similarity index 100%
rename from bench/err600_let_d.jnl
rename to bench/v6jnls/err600_let_d.jnl
diff --git a/bench/err600_long_bounds_name.jnl b/bench/v6jnls/err600_long_bounds_name.jnl
similarity index 100%
rename from bench/err600_long_bounds_name.jnl
rename to bench/v6jnls/err600_long_bounds_name.jnl
diff --git a/bench/err600_long_symbol_string.jnl b/bench/v6jnls/err600_long_symbol_string.jnl
similarity index 100%
rename from bench/err600_long_symbol_string.jnl
rename to bench/v6jnls/err600_long_symbol_string.jnl
diff --git a/bench/err600_missing_flag.jnl b/bench/v6jnls/err600_missing_flag.jnl
similarity index 100%
rename from bench/err600_missing_flag.jnl
rename to bench/v6jnls/err600_missing_flag.jnl
diff --git a/bench/err600_nc_des_order.jnl b/bench/v6jnls/err600_nc_des_order.jnl
similarity index 100%
rename from bench/err600_nc_des_order.jnl
rename to bench/v6jnls/err600_nc_des_order.jnl
diff --git a/bench/err600_reset_redefine_axis.jnl b/bench/v6jnls/err600_reset_redefine_axis.jnl
similarity index 100%
rename from bench/err600_reset_redefine_axis.jnl
rename to bench/v6jnls/err600_reset_redefine_axis.jnl
diff --git a/bench/err600_returnsize.jnl b/bench/v6jnls/err600_returnsize.jnl
similarity index 100%
rename from bench/err600_returnsize.jnl
rename to bench/v6jnls/err600_returnsize.jnl
diff --git a/bench/err600_save_two.jnl b/bench/v6jnls/err600_save_two.jnl
similarity index 100%
rename from bench/err600_save_two.jnl
rename to bench/v6jnls/err600_save_two.jnl
diff --git a/bench/err600_set_var_title.jnl b/bench/v6jnls/err600_set_var_title.jnl
similarity index 100%
rename from bench/err600_set_var_title.jnl
rename to bench/v6jnls/err600_set_var_title.jnl
diff --git a/bench/err600_tab_comma_missingdat.jnl b/bench/v6jnls/err600_tab_comma_missingdat.jnl
similarity index 100%
rename from bench/err600_tab_comma_missingdat.jnl
rename to bench/v6jnls/err600_tab_comma_missingdat.jnl
diff --git a/bench/err600_upcase.jnl b/bench/v6jnls/err600_upcase.jnl
similarity index 100%
rename from bench/err600_upcase.jnl
rename to bench/v6jnls/err600_upcase.jnl
diff --git a/bench/err600_var_label.jnl b/bench/v6jnls/err600_var_label.jnl
similarity index 100%
rename from bench/err600_var_label.jnl
rename to bench/v6jnls/err600_var_label.jnl
diff --git a/bench/err600_vec_aspect.jnl b/bench/v6jnls/err600_vec_aspect.jnl
similarity index 100%
rename from bench/err600_vec_aspect.jnl
rename to bench/v6jnls/err600_vec_aspect.jnl
diff --git a/bench/err601_check_missing_3arg.jnl b/bench/v6jnls/err601_check_missing_3arg.jnl
similarity index 100%
rename from bench/err601_check_missing_3arg.jnl
rename to bench/v6jnls/err601_check_missing_3arg.jnl
diff --git a/bench/err601_index_111.jnl b/bench/v6jnls/err601_index_111.jnl
similarity index 100%
rename from bench/err601_index_111.jnl
rename to bench/v6jnls/err601_index_111.jnl
diff --git a/bench/err601_irregular_axis.jnl b/bench/v6jnls/err601_irregular_axis.jnl
similarity index 100%
rename from bench/err601_irregular_axis.jnl
rename to bench/v6jnls/err601_irregular_axis.jnl
diff --git a/bench/err601_missing_string_element.jnl b/bench/v6jnls/err601_missing_string_element.jnl
similarity index 100%
rename from bench/err601_missing_string_element.jnl
rename to bench/v6jnls/err601_missing_string_element.jnl
diff --git a/bench/err601_sho_ax_xml_calendar.jnl b/bench/v6jnls/err601_sho_ax_xml_calendar.jnl
similarity index 100%
rename from bench/err601_sho_ax_xml_calendar.jnl
rename to bench/v6jnls/err601_sho_ax_xml_calendar.jnl
diff --git a/bench/err602_curvi_modulo_cut.jnl b/bench/v6jnls/err602_curvi_modulo_cut.jnl
similarity index 100%
rename from bench/err602_curvi_modulo_cut.jnl
rename to bench/v6jnls/err602_curvi_modulo_cut.jnl
diff --git a/bench/err602_list_prec.jnl b/bench/v6jnls/err602_list_prec.jnl
similarity index 100%
rename from bench/err602_list_prec.jnl
rename to bench/v6jnls/err602_list_prec.jnl
diff --git a/bench/err602_shade_line_lev.jnl b/bench/v6jnls/err602_shade_line_lev.jnl
similarity index 100%
rename from bench/err602_shade_line_lev.jnl
rename to bench/v6jnls/err602_shade_line_lev.jnl
diff --git a/bench/err604_irreg_axis.jnl b/bench/v6jnls/err604_irreg_axis.jnl
similarity index 100%
rename from bench/err604_irreg_axis.jnl
rename to bench/v6jnls/err604_irreg_axis.jnl
diff --git a/bench/err605_show_func.jnl b/bench/v6jnls/err605_show_func.jnl
similarity index 100%
rename from bench/err605_show_func.jnl
rename to bench/v6jnls/err605_show_func.jnl
diff --git a/bench/err607_axis_minmax_syms.jnl b/bench/v6jnls/err607_axis_minmax_syms.jnl
similarity index 100%
rename from bench/err607_axis_minmax_syms.jnl
rename to bench/v6jnls/err607_axis_minmax_syms.jnl
diff --git a/bench/err607_lev_errmsg.jnl b/bench/v6jnls/err607_lev_errmsg.jnl
similarity index 100%
rename from bench/err607_lev_errmsg.jnl
rename to bench/v6jnls/err607_lev_errmsg.jnl
diff --git a/bench/err607_set_new_history_att.jnl b/bench/v6jnls/err607_set_new_history_att.jnl
similarity index 100%
rename from bench/err607_set_new_history_att.jnl
rename to bench/v6jnls/err607_set_new_history_att.jnl
diff --git a/bench/err607_show_var_xml.jnl b/bench/v6jnls/err607_show_var_xml.jnl
similarity index 100%
rename from bench/err607_show_var_xml.jnl
rename to bench/v6jnls/err607_show_var_xml.jnl
diff --git a/bench/err608_bug1556.jnl b/bench/v6jnls/err608_bug1556.jnl
similarity index 100%
rename from bench/err608_bug1556.jnl
rename to bench/v6jnls/err608_bug1556.jnl
diff --git a/bench/err608_precision_neg_numbers.jnl b/bench/v6jnls/err608_precision_neg_numbers.jnl
similarity index 100%
rename from bench/err608_precision_neg_numbers.jnl
rename to bench/v6jnls/err608_precision_neg_numbers.jnl
diff --git a/bench/err611_axislab.jnl b/bench/v6jnls/err611_axislab.jnl
similarity index 100%
rename from bench/err611_axislab.jnl
rename to bench/v6jnls/err611_axislab.jnl
diff --git a/bench/err611_context_after_error.jnl b/bench/v6jnls/err611_context_after_error.jnl
similarity index 100%
rename from bench/err611_context_after_error.jnl
rename to bench/v6jnls/err611_context_after_error.jnl
diff --git a/bench/err611_convert_missing_type.jnl b/bench/v6jnls/err611_convert_missing_type.jnl
similarity index 100%
rename from bench/err611_convert_missing_type.jnl
rename to bench/v6jnls/err611_convert_missing_type.jnl
diff --git a/bench/err611_digit_filename.jnl b/bench/v6jnls/err611_digit_filename.jnl
similarity index 100%
rename from bench/err611_digit_filename.jnl
rename to bench/v6jnls/err611_digit_filename.jnl
diff --git a/bench/err611_ef_string_result.jnl b/bench/v6jnls/err611_ef_string_result.jnl
similarity index 100%
rename from bench/err611_ef_string_result.jnl
rename to bench/v6jnls/err611_ef_string_result.jnl
diff --git a/bench/err611_exit_if.jnl b/bench/v6jnls/err611_exit_if.jnl
similarity index 100%
rename from bench/err611_exit_if.jnl
rename to bench/v6jnls/err611_exit_if.jnl
diff --git a/bench/err611_irregular_axis.jnl b/bench/v6jnls/err611_irregular_axis.jnl
similarity index 100%
rename from bench/err611_irregular_axis.jnl
rename to bench/v6jnls/err611_irregular_axis.jnl
diff --git a/bench/err611_isize_gc_fcns.jnl b/bench/v6jnls/err611_isize_gc_fcns.jnl
similarity index 100%
rename from bench/err611_isize_gc_fcns.jnl
rename to bench/v6jnls/err611_isize_gc_fcns.jnl
diff --git a/bench/err611_ov_ax.jnl b/bench/v6jnls/err611_ov_ax.jnl
similarity index 100%
rename from bench/err611_ov_ax.jnl
rename to bench/v6jnls/err611_ov_ax.jnl
diff --git a/bench/err611_parse_semicolon.jnl b/bench/v6jnls/err611_parse_semicolon.jnl
similarity index 100%
rename from bench/err611_parse_semicolon.jnl
rename to bench/v6jnls/err611_parse_semicolon.jnl
diff --git a/bench/err611_polygons.jnl b/bench/v6jnls/err611_polygons.jnl
similarity index 100%
rename from bench/err611_polygons.jnl
rename to bench/v6jnls/err611_polygons.jnl
diff --git a/bench/err611_return_precision.jnl b/bench/v6jnls/err611_return_precision.jnl
similarity index 100%
rename from bench/err611_return_precision.jnl
rename to bench/v6jnls/err611_return_precision.jnl
diff --git a/bench/err611_save_from_desc.jnl b/bench/v6jnls/err611_save_from_desc.jnl
similarity index 100%
rename from bench/err611_save_from_desc.jnl
rename to bench/v6jnls/err611_save_from_desc.jnl
diff --git a/bench/err611_save_irreg.jnl b/bench/v6jnls/err611_save_irreg.jnl
similarity index 100%
rename from bench/err611_save_irreg.jnl
rename to bench/v6jnls/err611_save_irreg.jnl
diff --git a/bench/err611_set_uvar_outtyp.jnl b/bench/v6jnls/err611_set_uvar_outtyp.jnl
similarity index 100%
rename from bench/err611_set_uvar_outtyp.jnl
rename to bench/v6jnls/err611_set_uvar_outtyp.jnl
diff --git a/bench/err611_set_var_ez.jnl b/bench/v6jnls/err611_set_var_ez.jnl
similarity index 100%
rename from bench/err611_set_var_ez.jnl
rename to bench/v6jnls/err611_set_var_ez.jnl
diff --git a/bench/err611_shade_fill_levs.jnl b/bench/v6jnls/err611_shade_fill_levs.jnl
similarity index 100%
rename from bench/err611_shade_fill_levs.jnl
rename to bench/v6jnls/err611_shade_fill_levs.jnl
diff --git a/bench/err611_wrong_fineaxis_range.jnl b/bench/v6jnls/err611_wrong_fineaxis_range.jnl
similarity index 100%
rename from bench/err611_wrong_fineaxis_range.jnl
rename to bench/v6jnls/err611_wrong_fineaxis_range.jnl
diff --git a/bench/err618_julday.jnl b/bench/v6jnls/err618_julday.jnl
similarity index 100%
rename from bench/err618_julday.jnl
rename to bench/v6jnls/err618_julday.jnl
diff --git a/bench/err61_360_calendar.jnl b/bench/v6jnls/err61_360_calendar.jnl
similarity index 100%
rename from bench/err61_360_calendar.jnl
rename to bench/v6jnls/err61_360_calendar.jnl
diff --git a/bench/err61_context_scalar_strings.jnl b/bench/v6jnls/err61_context_scalar_strings.jnl
similarity index 100%
rename from bench/err61_context_scalar_strings.jnl
rename to bench/v6jnls/err61_context_scalar_strings.jnl
diff --git a/bench/err61_contour_subspan_reps.jnl b/bench/v6jnls/err61_contour_subspan_reps.jnl
similarity index 100%
rename from bench/err61_contour_subspan_reps.jnl
rename to bench/v6jnls/err61_contour_subspan_reps.jnl
diff --git a/bench/err61_exit_script.jnl b/bench/v6jnls/err61_exit_script.jnl
similarity index 100%
rename from bench/err61_exit_script.jnl
rename to bench/v6jnls/err61_exit_script.jnl
diff --git a/bench/err61_new_attr_on_axis.jnl b/bench/v6jnls/err61_new_attr_on_axis.jnl
similarity index 100%
rename from bench/err61_new_attr_on_axis.jnl
rename to bench/v6jnls/err61_new_attr_on_axis.jnl
diff --git a/bench/err61_poly_shade_over_noaxes.jnl b/bench/v6jnls/err61_poly_shade_over_noaxes.jnl
similarity index 100%
rename from bench/err61_poly_shade_over_noaxes.jnl
rename to bench/v6jnls/err61_poly_shade_over_noaxes.jnl
diff --git a/bench/err61_show_dat_var_xml.jnl b/bench/v6jnls/err61_show_dat_var_xml.jnl
similarity index 100%
rename from bench/err61_show_dat_var_xml.jnl
rename to bench/v6jnls/err61_show_dat_var_xml.jnl
diff --git a/bench/err61_write_bounds.jnl b/bench/v6jnls/err61_write_bounds.jnl
similarity index 100%
rename from bench/err61_write_bounds.jnl
rename to bench/v6jnls/err61_write_bounds.jnl
diff --git a/bench/err62_append_irreg_to_reg.jnl b/bench/v6jnls/err62_append_irreg_to_reg.jnl
similarity index 100%
rename from bench/err62_append_irreg_to_reg.jnl
rename to bench/v6jnls/err62_append_irreg_to_reg.jnl
diff --git a/bench/err62_axis_stride_off.jnl b/bench/v6jnls/err62_axis_stride_off.jnl
similarity index 100%
rename from bench/err62_axis_stride_off.jnl
rename to bench/v6jnls/err62_axis_stride_off.jnl
diff --git a/bench/err62_compound_string_conditional.jnl b/bench/v6jnls/err62_compound_string_conditional.jnl
similarity index 100%
rename from bench/err62_compound_string_conditional.jnl
rename to bench/v6jnls/err62_compound_string_conditional.jnl
diff --git a/bench/err62_contourbug.jnl b/bench/v6jnls/err62_contourbug.jnl
similarity index 100%
rename from bench/err62_contourbug.jnl
rename to bench/v6jnls/err62_contourbug.jnl
diff --git a/bench/err62_cos_lat_uncentered.jnl b/bench/v6jnls/err62_cos_lat_uncentered.jnl
similarity index 100%
rename from bench/err62_cos_lat_uncentered.jnl
rename to bench/v6jnls/err62_cos_lat_uncentered.jnl
diff --git a/bench/err62_if_inside_repeat.jnl b/bench/v6jnls/err62_if_inside_repeat.jnl
similarity index 100%
rename from bench/err62_if_inside_repeat.jnl
rename to bench/v6jnls/err62_if_inside_repeat.jnl
diff --git a/bench/err62_levset.jnl b/bench/v6jnls/err62_levset.jnl
similarity index 100%
rename from bench/err62_levset.jnl
rename to bench/v6jnls/err62_levset.jnl
diff --git a/bench/err62_one_point_bounds.jnl b/bench/v6jnls/err62_one_point_bounds.jnl
similarity index 100%
rename from bench/err62_one_point_bounds.jnl
rename to bench/v6jnls/err62_one_point_bounds.jnl
diff --git a/bench/err62_reset_after_inf.jnl b/bench/v6jnls/err62_reset_after_inf.jnl
similarity index 100%
rename from bench/err62_reset_after_inf.jnl
rename to bench/v6jnls/err62_reset_after_inf.jnl
diff --git a/bench/err62_reversed_up.jnl b/bench/v6jnls/err62_reversed_up.jnl
similarity index 100%
rename from bench/err62_reversed_up.jnl
rename to bench/v6jnls/err62_reversed_up.jnl
diff --git a/bench/err62_samplexy.jnl b/bench/v6jnls/err62_samplexy.jnl
similarity index 100%
rename from bench/err62_samplexy.jnl
rename to bench/v6jnls/err62_samplexy.jnl
diff --git a/bench/err62_save_missingcoordvar.jnl b/bench/v6jnls/err62_save_missingcoordvar.jnl
similarity index 100%
rename from bench/err62_save_missingcoordvar.jnl
rename to bench/v6jnls/err62_save_missingcoordvar.jnl
diff --git a/bench/err62_string_write_nc.jnl b/bench/v6jnls/err62_string_write_nc.jnl
similarity index 100%
rename from bench/err62_string_write_nc.jnl
rename to bench/v6jnls/err62_string_write_nc.jnl
diff --git a/bench/err62_thick_tic_time_axis.jnl b/bench/v6jnls/err62_thick_tic_time_axis.jnl
similarity index 100%
rename from bench/err62_thick_tic_time_axis.jnl
rename to bench/v6jnls/err62_thick_tic_time_axis.jnl
diff --git a/bench/err62_title_curvi_plot.jnl b/bench/v6jnls/err62_title_curvi_plot.jnl
similarity index 100%
rename from bench/err62_title_curvi_plot.jnl
rename to bench/v6jnls/err62_title_curvi_plot.jnl
diff --git a/bench/err63_days1900toydmhms.jnl b/bench/v6jnls/err63_days1900toydmhms.jnl
similarity index 100%
rename from bench/err63_days1900toydmhms.jnl
rename to bench/v6jnls/err63_days1900toydmhms.jnl
diff --git a/bench/err63_delim_E.jnl b/bench/v6jnls/err63_delim_E.jnl
similarity index 100%
rename from bench/err63_delim_E.jnl
rename to bench/v6jnls/err63_delim_E.jnl
diff --git a/bench/err63_log_vaxis.jnl b/bench/v6jnls/err63_log_vaxis.jnl
similarity index 100%
rename from bench/err63_log_vaxis.jnl
rename to bench/v6jnls/err63_log_vaxis.jnl
diff --git a/bench/err64_packed_data.jnl b/bench/v6jnls/err64_packed_data.jnl
similarity index 100%
rename from bench/err64_packed_data.jnl
rename to bench/v6jnls/err64_packed_data.jnl
diff --git a/bench/err64_parse_equals.jnl b/bench/v6jnls/err64_parse_equals.jnl
similarity index 100%
rename from bench/err64_parse_equals.jnl
rename to bench/v6jnls/err64_parse_equals.jnl
diff --git a/bench/err64_polymark_over_calendar.jnl b/bench/v6jnls/err64_polymark_over_calendar.jnl
similarity index 100%
rename from bench/err64_polymark_over_calendar.jnl
rename to bench/v6jnls/err64_polymark_over_calendar.jnl
diff --git a/bench/err64_regrid_noleap.jnl b/bench/v6jnls/err64_regrid_noleap.jnl
similarity index 100%
rename from bench/err64_regrid_noleap.jnl
rename to bench/v6jnls/err64_regrid_noleap.jnl
diff --git a/bench/err64_return_precision.jnl b/bench/v6jnls/err64_return_precision.jnl
similarity index 100%
rename from bench/err64_return_precision.jnl
rename to bench/v6jnls/err64_return_precision.jnl
diff --git a/bench/err64_shakey_missingdata.jnl b/bench/v6jnls/err64_shakey_missingdata.jnl
similarity index 100%
rename from bench/err64_shakey_missingdata.jnl
rename to bench/v6jnls/err64_shakey_missingdata.jnl
diff --git a/bench/err64_very_small_latlon.jnl b/bench/v6jnls/err64_very_small_latlon.jnl
similarity index 100%
rename from bench/err64_very_small_latlon.jnl
rename to bench/v6jnls/err64_very_small_latlon.jnl
diff --git a/bench/err65_averages.jnl b/bench/v6jnls/err65_averages.jnl
similarity index 100%
rename from bench/err65_averages.jnl
rename to bench/v6jnls/err65_averages.jnl
diff --git a/bench/err65_dots_in_dashes.jnl b/bench/v6jnls/err65_dots_in_dashes.jnl
similarity index 100%
rename from bench/err65_dots_in_dashes.jnl
rename to bench/v6jnls/err65_dots_in_dashes.jnl
diff --git a/bench/err65_read_epic_cdf.jnl b/bench/v6jnls/err65_read_epic_cdf.jnl
similarity index 100%
rename from bench/err65_read_epic_cdf.jnl
rename to bench/v6jnls/err65_read_epic_cdf.jnl
diff --git a/bench/err664_tax_fcns.jnl b/bench/v6jnls/err664_tax_fcns.jnl
similarity index 100%
rename from bench/err664_tax_fcns.jnl
rename to bench/v6jnls/err664_tax_fcns.jnl
diff --git a/bench/err664_xml_keep_case.jnl b/bench/v6jnls/err664_xml_keep_case.jnl
similarity index 100%
rename from bench/err664_xml_keep_case.jnl
rename to bench/v6jnls/err664_xml_keep_case.jnl
diff --git a/bench/err664_xml_one_point_axis.jnl b/bench/v6jnls/err664_xml_one_point_axis.jnl
similarity index 100%
rename from bench/err664_xml_one_point_axis.jnl
rename to bench/v6jnls/err664_xml_one_point_axis.jnl
diff --git a/bench/err665_centered_lev.jnl b/bench/v6jnls/err665_centered_lev.jnl
similarity index 100%
rename from bench/err665_centered_lev.jnl
rename to bench/v6jnls/err665_centered_lev.jnl
diff --git a/bench/err665_din.jnl b/bench/v6jnls/err665_din.jnl
similarity index 100%
rename from bench/err665_din.jnl
rename to bench/v6jnls/err665_din.jnl
diff --git a/bench/err665_hours_since_T.jnl b/bench/v6jnls/err665_hours_since_T.jnl
similarity index 100%
rename from bench/err665_hours_since_T.jnl
rename to bench/v6jnls/err665_hours_since_T.jnl
diff --git a/bench/err665_sum_4d_labels.jnl b/bench/v6jnls/err665_sum_4d_labels.jnl
similarity index 100%
rename from bench/err665_sum_4d_labels.jnl
rename to bench/v6jnls/err665_sum_4d_labels.jnl
diff --git a/bench/err667_5d_netcdf.jnl b/bench/v6jnls/err667_5d_netcdf.jnl
similarity index 100%
rename from bench/err667_5d_netcdf.jnl
rename to bench/v6jnls/err667_5d_netcdf.jnl
diff --git a/bench/err667_att_too_long.jnl b/bench/v6jnls/err667_att_too_long.jnl
similarity index 100%
rename from bench/err667_att_too_long.jnl
rename to bench/v6jnls/err667_att_too_long.jnl
diff --git a/bench/err667_dup_axnames.jnl b/bench/v6jnls/err667_dup_axnames.jnl
similarity index 100%
rename from bench/err667_dup_axnames.jnl
rename to bench/v6jnls/err667_dup_axnames.jnl
diff --git a/bench/err667_mode_desperate.jnl b/bench/v6jnls/err667_mode_desperate.jnl
similarity index 100%
rename from bench/err667_mode_desperate.jnl
rename to bench/v6jnls/err667_mode_desperate.jnl
diff --git a/bench/err667_show_var_twice.jnl b/bench/v6jnls/err667_show_var_twice.jnl
similarity index 100%
rename from bench/err667_show_var_twice.jnl
rename to bench/v6jnls/err667_show_var_twice.jnl
diff --git a/bench/err667_string_if.jnl b/bench/v6jnls/err667_string_if.jnl
similarity index 100%
rename from bench/err667_string_if.jnl
rename to bench/v6jnls/err667_string_if.jnl
diff --git a/bench/err66_all_missing_lev_v.jnl b/bench/v6jnls/err66_all_missing_lev_v.jnl
similarity index 100%
rename from bench/err66_all_missing_lev_v.jnl
rename to bench/v6jnls/err66_all_missing_lev_v.jnl
diff --git a/bench/err672_axis_label_prec.jnl b/bench/v6jnls/err672_axis_label_prec.jnl
similarity index 100%
rename from bench/err672_axis_label_prec.jnl
rename to bench/v6jnls/err672_axis_label_prec.jnl
diff --git a/bench/err672_axis_order.jnl b/bench/v6jnls/err672_axis_order.jnl
similarity index 80%
rename from bench/err672_axis_order.jnl
rename to bench/v6jnls/err672_axis_order.jnl
index 43e4bfc..879a0d5 100644
--- a/bench/err672_axis_order.jnl
+++ b/bench/v6jnls/err672_axis_order.jnl
@@ -3,7 +3,7 @@
use err67_axis_order.nc
-sp cp err67_axis_order.nc err67_axis_order_copy.nc
+sp cp data/err67_axis_order.nc err67_axis_order_copy.nc
use err67_axis_order_copy.nc
sh dat
diff --git a/bench/err672_dset_cx.jnl b/bench/v6jnls/err672_dset_cx.jnl
similarity index 100%
rename from bench/err672_dset_cx.jnl
rename to bench/v6jnls/err672_dset_cx.jnl
diff --git a/bench/err672_long_show_axis.jnl b/bench/v6jnls/err672_long_show_axis.jnl
similarity index 100%
rename from bench/err672_long_show_axis.jnl
rename to bench/v6jnls/err672_long_show_axis.jnl
diff --git a/bench/err672_runoff_page.jnl b/bench/v6jnls/err672_runoff_page.jnl
similarity index 100%
rename from bench/err672_runoff_page.jnl
rename to bench/v6jnls/err672_runoff_page.jnl
diff --git a/bench/err672_samplexy_modulo.jnl b/bench/v6jnls/err672_samplexy_modulo.jnl
similarity index 100%
rename from bench/err672_samplexy_modulo.jnl
rename to bench/v6jnls/err672_samplexy_modulo.jnl
diff --git a/bench/err672_stray_line.jnl b/bench/v6jnls/err672_stray_line.jnl
similarity index 100%
rename from bench/err672_stray_line.jnl
rename to bench/v6jnls/err672_stray_line.jnl
diff --git a/bench/err672_subscr_precision.jnl b/bench/v6jnls/err672_subscr_precision.jnl
similarity index 100%
rename from bench/err672_subscr_precision.jnl
rename to bench/v6jnls/err672_subscr_precision.jnl
diff --git a/bench/err672_tax_functions_prec.jnl b/bench/v6jnls/err672_tax_functions_prec.jnl
similarity index 100%
rename from bench/err672_tax_functions_prec.jnl
rename to bench/v6jnls/err672_tax_functions_prec.jnl
diff --git a/bench/err672_varnames.jnl b/bench/v6jnls/err672_varnames.jnl
similarity index 100%
rename from bench/err672_varnames.jnl
rename to bench/v6jnls/err672_varnames.jnl
diff --git a/bench/err672_vert_axislabel.jnl b/bench/v6jnls/err672_vert_axislabel.jnl
similarity index 100%
rename from bench/err672_vert_axislabel.jnl
rename to bench/v6jnls/err672_vert_axislabel.jnl
diff --git a/bench/err67_nrst_trans.jnl b/bench/v6jnls/err67_nrst_trans.jnl
similarity index 100%
rename from bench/err67_nrst_trans.jnl
rename to bench/v6jnls/err67_nrst_trans.jnl
diff --git a/bench/err67_regridding_dyn.jnl b/bench/v6jnls/err67_regridding_dyn.jnl
similarity index 100%
rename from bench/err67_regridding_dyn.jnl
rename to bench/v6jnls/err67_regridding_dyn.jnl
diff --git a/bench/err67_reverse_bounds.jnl b/bench/v6jnls/err67_reverse_bounds.jnl
similarity index 100%
rename from bench/err67_reverse_bounds.jnl
rename to bench/v6jnls/err67_reverse_bounds.jnl
diff --git a/bench/err67_save_append_open.jnl b/bench/v6jnls/err67_save_append_open.jnl
similarity index 100%
rename from bench/err67_save_append_open.jnl
rename to bench/v6jnls/err67_save_append_open.jnl
diff --git a/bench/err67_tax_modtime.jnl b/bench/v6jnls/err67_tax_modtime.jnl
similarity index 100%
rename from bench/err67_tax_modtime.jnl
rename to bench/v6jnls/err67_tax_modtime.jnl
diff --git a/bench/err681_dims_direction.jnl b/bench/v6jnls/err681_dims_direction.jnl
similarity index 100%
rename from bench/err681_dims_direction.jnl
rename to bench/v6jnls/err681_dims_direction.jnl
diff --git a/bench/err682_append_packed.jnl b/bench/v6jnls/err682_append_packed.jnl
similarity index 100%
rename from bench/err682_append_packed.jnl
rename to bench/v6jnls/err682_append_packed.jnl
diff --git a/bench/err682_axis_no_clue.jnl b/bench/v6jnls/err682_axis_no_clue.jnl
similarity index 100%
rename from bench/err682_axis_no_clue.jnl
rename to bench/v6jnls/err682_axis_no_clue.jnl
diff --git a/bench/err682_grid_merge.jnl b/bench/v6jnls/err682_grid_merge.jnl
similarity index 100%
rename from bench/err682_grid_merge.jnl
rename to bench/v6jnls/err682_grid_merge.jnl
diff --git a/bench/err682_if_yes_exit.jnl b/bench/v6jnls/err682_if_yes_exit.jnl
similarity index 100%
rename from bench/err682_if_yes_exit.jnl
rename to bench/v6jnls/err682_if_yes_exit.jnl
diff --git a/bench/err682_scale_no_offset.jnl b/bench/v6jnls/err682_scale_no_offset.jnl
similarity index 100%
rename from bench/err682_scale_no_offset.jnl
rename to bench/v6jnls/err682_scale_no_offset.jnl
diff --git a/bench/err682_shrink_axlab.jnl b/bench/v6jnls/err682_shrink_axlab.jnl
similarity index 100%
rename from bench/err682_shrink_axlab.jnl
rename to bench/v6jnls/err682_shrink_axlab.jnl
diff --git a/bench/err682_use_no_quotes.jnl b/bench/v6jnls/err682_use_no_quotes.jnl
similarity index 100%
rename from bench/err682_use_no_quotes.jnl
rename to bench/v6jnls/err682_use_no_quotes.jnl
diff --git a/bench/err682_xact_high_prec.jnl b/bench/v6jnls/err682_xact_high_prec.jnl
similarity index 100%
rename from bench/err682_xact_high_prec.jnl
rename to bench/v6jnls/err682_xact_high_prec.jnl
diff --git a/bench/err6842_context_shape.jnl b/bench/v6jnls/err6842_context_shape.jnl
similarity index 100%
rename from bench/err6842_context_shape.jnl
rename to bench/v6jnls/err6842_context_shape.jnl
diff --git a/bench/err684_FillValue_xml.jnl b/bench/v6jnls/err684_FillValue_xml.jnl
similarity index 100%
rename from bench/err684_FillValue_xml.jnl
rename to bench/v6jnls/err684_FillValue_xml.jnl
diff --git a/bench/err684_axticlab.jnl b/bench/v6jnls/err684_axticlab.jnl
similarity index 100%
rename from bench/err684_axticlab.jnl
rename to bench/v6jnls/err684_axticlab.jnl
diff --git a/bench/err684_context_shape.jnl b/bench/v6jnls/err684_context_shape.jnl
similarity index 100%
rename from bench/err684_context_shape.jnl
rename to bench/v6jnls/err684_context_shape.jnl
diff --git a/bench/err684_define_grid.jnl b/bench/v6jnls/err684_define_grid.jnl
similarity index 100%
rename from bench/err684_define_grid.jnl
rename to bench/v6jnls/err684_define_grid.jnl
diff --git a/bench/err684_degC_axlab.jnl b/bench/v6jnls/err684_degC_axlab.jnl
similarity index 100%
rename from bench/err684_degC_axlab.jnl
rename to bench/v6jnls/err684_degC_axlab.jnl
diff --git a/bench/err684_delimited_precision.jnl b/bench/v6jnls/err684_delimited_precision.jnl
similarity index 95%
rename from bench/err684_delimited_precision.jnl
rename to bench/v6jnls/err684_delimited_precision.jnl
index 2ed95a0..2cb9953 100644
--- a/bench/err684_delimited_precision.jnl
+++ b/bench/v6jnls/err684_delimited_precision.jnl
@@ -4,7 +4,7 @@
! Data has numeric, longitude, and latitude values needing double precision.
! The seconds portion of time is also now read with double precision
-sp cat delim_prec.dat
+sp cat data/delim_prec.dat
! Delimited read, automatically detect data types
set data/ez/format=delim/del=" " delim_prec.dat
diff --git a/bench/err684_dotstart.jnl b/bench/v6jnls/err684_dotstart.jnl
similarity index 100%
rename from bench/err684_dotstart.jnl
rename to bench/v6jnls/err684_dotstart.jnl
diff --git a/bench/err684_evnt_z.jnl b/bench/v6jnls/err684_evnt_z.jnl
similarity index 100%
rename from bench/err684_evnt_z.jnl
rename to bench/v6jnls/err684_evnt_z.jnl
diff --git a/bench/err684_label_quotes.jnl b/bench/v6jnls/err684_label_quotes.jnl
similarity index 100%
rename from bench/err684_label_quotes.jnl
rename to bench/v6jnls/err684_label_quotes.jnl
diff --git a/bench/err684_line_plot_zero.jnl b/bench/v6jnls/err684_line_plot_zero.jnl
similarity index 100%
rename from bench/err684_line_plot_zero.jnl
rename to bench/v6jnls/err684_line_plot_zero.jnl
diff --git a/bench/err684_null_stringwrite.jnl b/bench/v6jnls/err684_null_stringwrite.jnl
similarity index 100%
rename from bench/err684_null_stringwrite.jnl
rename to bench/v6jnls/err684_null_stringwrite.jnl
diff --git a/bench/err684_packed_output.jnl b/bench/v6jnls/err684_packed_output.jnl
similarity index 100%
rename from bench/err684_packed_output.jnl
rename to bench/v6jnls/err684_packed_output.jnl
diff --git a/bench/err684_repeated_coordindates.jnl b/bench/v6jnls/err684_repeated_coordindates.jnl
similarity index 100%
rename from bench/err684_repeated_coordindates.jnl
rename to bench/v6jnls/err684_repeated_coordindates.jnl
diff --git a/bench/err684_save_expression.jnl b/bench/v6jnls/err684_save_expression.jnl
similarity index 100%
rename from bench/err684_save_expression.jnl
rename to bench/v6jnls/err684_save_expression.jnl
diff --git a/bench/err684_save_subset.jnl b/bench/v6jnls/err684_save_subset.jnl
similarity index 100%
rename from bench/err684_save_subset.jnl
rename to bench/v6jnls/err684_save_subset.jnl
diff --git a/bench/err684_string_dim_name.jnl b/bench/v6jnls/err684_string_dim_name.jnl
similarity index 100%
rename from bench/err684_string_dim_name.jnl
rename to bench/v6jnls/err684_string_dim_name.jnl
diff --git a/bench/err684_tax_fcns.jnl b/bench/v6jnls/err684_tax_fcns.jnl
similarity index 100%
rename from bench/err684_tax_fcns.jnl
rename to bench/v6jnls/err684_tax_fcns.jnl
diff --git a/bench/err684_vfine_to_coarse.jnl b/bench/v6jnls/err684_vfine_to_coarse.jnl
similarity index 100%
rename from bench/err684_vfine_to_coarse.jnl
rename to bench/v6jnls/err684_vfine_to_coarse.jnl
diff --git a/bench/err685_lowercaseAxis.jnl b/bench/v6jnls/err685_lowercaseAxis.jnl
similarity index 100%
rename from bench/err685_lowercaseAxis.jnl
rename to bench/v6jnls/err685_lowercaseAxis.jnl
diff --git a/bench/err685_ppl_palette.jnl b/bench/v6jnls/err685_ppl_palette.jnl
similarity index 100%
rename from bench/err685_ppl_palette.jnl
rename to bench/v6jnls/err685_ppl_palette.jnl
diff --git a/bench/err685_redefine_uvar_att.jnl b/bench/v6jnls/err685_redefine_uvar_att.jnl
similarity index 100%
rename from bench/err685_redefine_uvar_att.jnl
rename to bench/v6jnls/err685_redefine_uvar_att.jnl
diff --git a/bench/err685_ribbon_by_val.jnl b/bench/v6jnls/err685_ribbon_by_val.jnl
similarity index 100%
rename from bench/err685_ribbon_by_val.jnl
rename to bench/v6jnls/err685_ribbon_by_val.jnl
diff --git a/bench/err685_samplexy.jnl b/bench/v6jnls/err685_samplexy.jnl
similarity index 100%
rename from bench/err685_samplexy.jnl
rename to bench/v6jnls/err685_samplexy.jnl
diff --git a/bench/err685_shade_set.jnl b/bench/v6jnls/err685_shade_set.jnl
similarity index 100%
rename from bench/err685_shade_set.jnl
rename to bench/v6jnls/err685_shade_set.jnl
diff --git a/bench/err685_show_grid_e.jnl b/bench/v6jnls/err685_show_grid_e.jnl
similarity index 100%
rename from bench/err685_show_grid_e.jnl
rename to bench/v6jnls/err685_show_grid_e.jnl
diff --git a/bench/err685_use_no_extension.jnl b/bench/v6jnls/err685_use_no_extension.jnl
similarity index 95%
rename from bench/err685_use_no_extension.jnl
rename to bench/v6jnls/err685_use_no_extension.jnl
index 9407931..6096e58 100644
--- a/bench/err685_use_no_extension.jnl
+++ b/bench/v6jnls/err685_use_no_extension.jnl
@@ -2,7 +2,7 @@
! but .des was not being tried.
! The directory contains files with all three extensions
-sp ls duplicate.*
+sp ls data/duplicate.*
! The one that's used is .nc
use duplicate
diff --git a/bench/err686_cancel_invalid_var.jnl b/bench/v6jnls/err686_cancel_invalid_var.jnl
similarity index 100%
rename from bench/err686_cancel_invalid_var.jnl
rename to bench/v6jnls/err686_cancel_invalid_var.jnl
diff --git a/bench/err686_dup_axnames.jnl b/bench/v6jnls/err686_dup_axnames.jnl
similarity index 100%
rename from bench/err686_dup_axnames.jnl
rename to bench/v6jnls/err686_dup_axnames.jnl
diff --git a/bench/err686_faxis_label.jnl b/bench/v6jnls/err686_faxis_label.jnl
similarity index 100%
rename from bench/err686_faxis_label.jnl
rename to bench/v6jnls/err686_faxis_label.jnl
diff --git a/bench/err686_individual_levels.jnl b/bench/v6jnls/err686_individual_levels.jnl
similarity index 100%
rename from bench/err686_individual_levels.jnl
rename to bench/v6jnls/err686_individual_levels.jnl
diff --git a/bench/err686_long_list_varnames.jnl b/bench/v6jnls/err686_long_list_varnames.jnl
similarity index 100%
rename from bench/err686_long_list_varnames.jnl
rename to bench/v6jnls/err686_long_list_varnames.jnl
diff --git a/bench/err686_redef_ascii_att.jnl b/bench/v6jnls/err686_redef_ascii_att.jnl
similarity index 100%
rename from bench/err686_redef_ascii_att.jnl
rename to bench/v6jnls/err686_redef_ascii_att.jnl
diff --git a/bench/err686_set_var_name.jnl b/bench/v6jnls/err686_set_var_name.jnl
similarity index 100%
rename from bench/err686_set_var_name.jnl
rename to bench/v6jnls/err686_set_var_name.jnl
diff --git a/bench/err686_sho_nonexist_att.jnl b/bench/v6jnls/err686_sho_nonexist_att.jnl
similarity index 100%
rename from bench/err686_sho_nonexist_att.jnl
rename to bench/v6jnls/err686_sho_nonexist_att.jnl
diff --git a/bench/err686_show_xml_letd.jnl b/bench/v6jnls/err686_show_xml_letd.jnl
similarity index 100%
rename from bench/err686_show_xml_letd.jnl
rename to bench/v6jnls/err686_show_xml_letd.jnl
diff --git a/bench/err691_bnds_case.jnl b/bench/v6jnls/err691_bnds_case.jnl
similarity index 100%
rename from bench/err691_bnds_case.jnl
rename to bench/v6jnls/err691_bnds_case.jnl
diff --git a/bench/err691_pt_in_poly.jnl b/bench/v6jnls/err691_pt_in_poly.jnl
similarity index 100%
rename from bench/err691_pt_in_poly.jnl
rename to bench/v6jnls/err691_pt_in_poly.jnl
diff --git a/bench/err691_substring_arg.jnl b/bench/v6jnls/err691_substring_arg.jnl
similarity index 100%
rename from bench/err691_substring_arg.jnl
rename to bench/v6jnls/err691_substring_arg.jnl
diff --git a/bench/err693_attr_in_gcfcn.jnl b/bench/v6jnls/err693_attr_in_gcfcn.jnl
similarity index 100%
rename from bench/err693_attr_in_gcfcn.jnl
rename to bench/v6jnls/err693_attr_in_gcfcn.jnl
diff --git a/bench/err693_edit_useratt.jnl b/bench/v6jnls/err693_edit_useratt.jnl
similarity index 100%
rename from bench/err693_edit_useratt.jnl
rename to bench/v6jnls/err693_edit_useratt.jnl
diff --git a/bench/err693_ef_axis_precision.jnl b/bench/v6jnls/err693_ef_axis_precision.jnl
similarity index 100%
rename from bench/err693_ef_axis_precision.jnl
rename to bench/v6jnls/err693_ef_axis_precision.jnl
diff --git a/bench/err693_fcn_of_attvar.jnl b/bench/v6jnls/err693_fcn_of_attvar.jnl
similarity index 100%
rename from bench/err693_fcn_of_attvar.jnl
rename to bench/v6jnls/err693_fcn_of_attvar.jnl
diff --git a/bench/err693_frame_types.jnl b/bench/v6jnls/err693_frame_types.jnl
similarity index 100%
rename from bench/err693_frame_types.jnl
rename to bench/v6jnls/err693_frame_types.jnl
diff --git a/bench/err693_if_then_flow_1368.jnl b/bench/v6jnls/err693_if_then_flow_1368.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1368.jnl
rename to bench/v6jnls/err693_if_then_flow_1368.jnl
diff --git a/bench/err693_if_then_flow_1446.jnl b/bench/v6jnls/err693_if_then_flow_1446.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1446.jnl
rename to bench/v6jnls/err693_if_then_flow_1446.jnl
diff --git a/bench/err693_if_then_flow_1681.jnl b/bench/v6jnls/err693_if_then_flow_1681.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1681.jnl
rename to bench/v6jnls/err693_if_then_flow_1681.jnl
diff --git a/bench/err693_if_then_flow_1706.jnl b/bench/v6jnls/err693_if_then_flow_1706.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1706.jnl
rename to bench/v6jnls/err693_if_then_flow_1706.jnl
diff --git a/bench/err693_if_then_flow_1860.jnl b/bench/v6jnls/err693_if_then_flow_1860.jnl
similarity index 100%
rename from bench/err693_if_then_flow_1860.jnl
rename to bench/v6jnls/err693_if_then_flow_1860.jnl
diff --git a/bench/err693_if_then_flow_2211.jnl b/bench/v6jnls/err693_if_then_flow_2211.jnl
similarity index 100%
rename from bench/err693_if_then_flow_2211.jnl
rename to bench/v6jnls/err693_if_then_flow_2211.jnl
diff --git a/bench/err693_if_then_flow_2214.jnl b/bench/v6jnls/err693_if_then_flow_2214.jnl
similarity index 100%
rename from bench/err693_if_then_flow_2214.jnl
rename to bench/v6jnls/err693_if_then_flow_2214.jnl
diff --git a/bench/err693_inconsistent_quote.jnl b/bench/v6jnls/err693_inconsistent_quote.jnl
similarity index 100%
rename from bench/err693_inconsistent_quote.jnl
rename to bench/v6jnls/err693_inconsistent_quote.jnl
diff --git a/bench/err693_isize_and_gcfcn.jnl b/bench/v6jnls/err693_isize_and_gcfcn.jnl
similarity index 100%
rename from bench/err693_isize_and_gcfcn.jnl
rename to bench/v6jnls/err693_isize_and_gcfcn.jnl
diff --git a/bench/err693_isready_dyn_grid_crash.jnl b/bench/v6jnls/err693_isready_dyn_grid_crash.jnl
similarity index 100%
rename from bench/err693_isready_dyn_grid_crash.jnl
rename to bench/v6jnls/err693_isready_dyn_grid_crash.jnl
diff --git a/bench/err693_isready_hang.jnl b/bench/v6jnls/err693_isready_hang.jnl
similarity index 100%
rename from bench/err693_isready_hang.jnl
rename to bench/v6jnls/err693_isready_hang.jnl
diff --git a/bench/err693_lev_nv_over.jnl b/bench/v6jnls/err693_lev_nv_over.jnl
similarity index 100%
rename from bench/err693_lev_nv_over.jnl
rename to bench/v6jnls/err693_lev_nv_over.jnl
diff --git a/bench/err693_line_over_axis.jnl b/bench/v6jnls/err693_line_over_axis.jnl
similarity index 100%
rename from bench/err693_line_over_axis.jnl
rename to bench/v6jnls/err693_line_over_axis.jnl
diff --git a/bench/err693_list_missing.jnl b/bench/v6jnls/err693_list_missing.jnl
similarity index 100%
rename from bench/err693_list_missing.jnl
rename to bench/v6jnls/err693_list_missing.jnl
diff --git a/bench/err693_parse_curly.jnl b/bench/v6jnls/err693_parse_curly.jnl
similarity index 100%
rename from bench/err693_parse_curly.jnl
rename to bench/v6jnls/err693_parse_curly.jnl
diff --git a/bench/err693_parse_curly.sub b/bench/v6jnls/err693_parse_curly.sub
similarity index 100%
rename from bench/err693_parse_curly.sub
rename to bench/v6jnls/err693_parse_curly.sub
diff --git a/bench/err693_redef_rec_axis.jnl b/bench/v6jnls/err693_redef_rec_axis.jnl
similarity index 100%
rename from bench/err693_redef_rec_axis.jnl
rename to bench/v6jnls/err693_redef_rec_axis.jnl
diff --git a/bench/err693_repeat_err.jnl b/bench/v6jnls/err693_repeat_err.jnl
similarity index 100%
rename from bench/err693_repeat_err.jnl
rename to bench/v6jnls/err693_repeat_err.jnl
diff --git a/bench/err693_ribbon_scale.jnl b/bench/v6jnls/err693_ribbon_scale.jnl
similarity index 100%
rename from bench/err693_ribbon_scale.jnl
rename to bench/v6jnls/err693_ribbon_scale.jnl
diff --git a/bench/err693_ribbon_start_missing.jnl b/bench/v6jnls/err693_ribbon_start_missing.jnl
similarity index 100%
rename from bench/err693_ribbon_start_missing.jnl
rename to bench/v6jnls/err693_ribbon_start_missing.jnl
diff --git a/bench/err693_save_packed.jnl b/bench/v6jnls/err693_save_packed.jnl
similarity index 100%
rename from bench/err693_save_packed.jnl
rename to bench/v6jnls/err693_save_packed.jnl
diff --git a/bench/err693_scalar_grids.jnl b/bench/v6jnls/err693_scalar_grids.jnl
similarity index 100%
rename from bench/err693_scalar_grids.jnl
rename to bench/v6jnls/err693_scalar_grids.jnl
diff --git a/bench/err693_shape.jnl b/bench/v6jnls/err693_shape.jnl
similarity index 100%
rename from bench/err693_shape.jnl
rename to bench/v6jnls/err693_shape.jnl
diff --git a/bench/err693_shf_subscr.jnl b/bench/v6jnls/err693_shf_subscr.jnl
similarity index 100%
rename from bench/err693_shf_subscr.jnl
rename to bench/v6jnls/err693_shf_subscr.jnl
diff --git a/bench/err693_shift_w_region.jnl b/bench/v6jnls/err693_shift_w_region.jnl
similarity index 100%
rename from bench/err693_shift_w_region.jnl
rename to bench/v6jnls/err693_shift_w_region.jnl
diff --git a/bench/err693_std4d.jnl b/bench/v6jnls/err693_std4d.jnl
similarity index 100%
rename from bench/err693_std4d.jnl
rename to bench/v6jnls/err693_std4d.jnl
diff --git a/bench/err693_string_results.jnl b/bench/v6jnls/err693_string_results.jnl
similarity index 100%
rename from bench/err693_string_results.jnl
rename to bench/v6jnls/err693_string_results.jnl
diff --git a/bench/err693_subspan_trans.jnl b/bench/v6jnls/err693_subspan_trans.jnl
similarity index 100%
rename from bench/err693_subspan_trans.jnl
rename to bench/v6jnls/err693_subspan_trans.jnl
diff --git a/bench/err693_undetected_regrid_dset.jnl b/bench/v6jnls/err693_undetected_regrid_dset.jnl
similarity index 100%
rename from bench/err693_undetected_regrid_dset.jnl
rename to bench/v6jnls/err693_undetected_regrid_dset.jnl
diff --git a/bench/err693_upcase_quoted_name.jnl b/bench/v6jnls/err693_upcase_quoted_name.jnl
similarity index 100%
rename from bench/err693_upcase_quoted_name.jnl
rename to bench/v6jnls/err693_upcase_quoted_name.jnl
diff --git a/bench/err694_longname_showdat.jnl b/bench/v6jnls/err694_longname_showdat.jnl
similarity index 85%
rename from bench/err694_longname_showdat.jnl
rename to bench/v6jnls/err694_longname_showdat.jnl
index 1565260..fa0e894 100644
--- a/bench/err694_longname_showdat.jnl
+++ b/bench/v6jnls/err694_longname_showdat.jnl
@@ -3,7 +3,7 @@
!
! Make a file whose name starts the same as file with long name.
sp rm WestCoastCarbon_9d9c_f562_77b5_5.nc
-sp ln -s WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
+sp ln -s data/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc WestCoastCarbon_9d9c_f562_77b5_5.nc
use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
diff --git a/bench/err694_shf_missing.jnl b/bench/v6jnls/err694_shf_missing.jnl
similarity index 100%
rename from bench/err694_shf_missing.jnl
rename to bench/v6jnls/err694_shf_missing.jnl
diff --git a/bench/err695_bounds_match_axis.jnl b/bench/v6jnls/err695_bounds_match_axis.jnl
similarity index 100%
rename from bench/err695_bounds_match_axis.jnl
rename to bench/v6jnls/err695_bounds_match_axis.jnl
diff --git a/bench/err695_grave_prec.jnl b/bench/v6jnls/err695_grave_prec.jnl
similarity index 100%
rename from bench/err695_grave_prec.jnl
rename to bench/v6jnls/err695_grave_prec.jnl
diff --git a/bench/err695_show_dat_nodata.jnl b/bench/v6jnls/err695_show_dat_nodata.jnl
similarity index 100%
rename from bench/err695_show_dat_nodata.jnl
rename to bench/v6jnls/err695_show_dat_nodata.jnl
diff --git a/bench/err696_2d_time_overlay.jnl b/bench/v6jnls/err696_2d_time_overlay.jnl
similarity index 100%
rename from bench/err696_2d_time_overlay.jnl
rename to bench/v6jnls/err696_2d_time_overlay.jnl
diff --git a/bench/err696_annotate_numeric.jnl b/bench/v6jnls/err696_annotate_numeric.jnl
similarity index 100%
rename from bench/err696_annotate_numeric.jnl
rename to bench/v6jnls/err696_annotate_numeric.jnl
diff --git a/bench/err696_argument_blanks.jnl b/bench/v6jnls/err696_argument_blanks.jnl
similarity index 100%
rename from bench/err696_argument_blanks.jnl
rename to bench/v6jnls/err696_argument_blanks.jnl
diff --git a/bench/err696_argument_blanks_sub.jnl b/bench/v6jnls/err696_argument_blanks_sub.jnl
similarity index 100%
rename from bench/err696_argument_blanks_sub.jnl
rename to bench/v6jnls/err696_argument_blanks_sub.jnl
diff --git a/bench/err696_centerlab_restore.jnl b/bench/v6jnls/err696_centerlab_restore.jnl
similarity index 100%
rename from bench/err696_centerlab_restore.jnl
rename to bench/v6jnls/err696_centerlab_restore.jnl
diff --git a/bench/err696_contour_conset.jnl b/bench/v6jnls/err696_contour_conset.jnl
similarity index 100%
rename from bench/err696_contour_conset.jnl
rename to bench/v6jnls/err696_contour_conset.jnl
diff --git a/bench/err696_def_att.jnl b/bench/v6jnls/err696_def_att.jnl
similarity index 100%
rename from bench/err696_def_att.jnl
rename to bench/v6jnls/err696_def_att.jnl
diff --git a/bench/err696_def_ax_edges.jnl b/bench/v6jnls/err696_def_ax_edges.jnl
similarity index 100%
rename from bench/err696_def_ax_edges.jnl
rename to bench/v6jnls/err696_def_ax_edges.jnl
diff --git a/bench/err696_def_ax_f.jnl b/bench/v6jnls/err696_def_ax_f.jnl
similarity index 100%
rename from bench/err696_def_ax_f.jnl
rename to bench/v6jnls/err696_def_ax_f.jnl
diff --git a/bench/err696_e_component_mem_crptn.jnl b/bench/v6jnls/err696_e_component_mem_crptn.jnl
similarity index 100%
rename from bench/err696_e_component_mem_crptn.jnl
rename to bench/v6jnls/err696_e_component_mem_crptn.jnl
diff --git a/bench/err696_ft_calendars.jnl b/bench/v6jnls/err696_ft_calendars.jnl
similarity index 100%
rename from bench/err696_ft_calendars.jnl
rename to bench/v6jnls/err696_ft_calendars.jnl
diff --git a/bench/err696_hovmuller_mod_fill.jnl b/bench/v6jnls/err696_hovmuller_mod_fill.jnl
similarity index 100%
rename from bench/err696_hovmuller_mod_fill.jnl
rename to bench/v6jnls/err696_hovmuller_mod_fill.jnl
diff --git a/bench/err696_mem_err_report.jnl b/bench/v6jnls/err696_mem_err_report.jnl
similarity index 100%
rename from bench/err696_mem_err_report.jnl
rename to bench/v6jnls/err696_mem_err_report.jnl
diff --git a/bench/err696_mod_sub_fln.jnl b/bench/v6jnls/err696_mod_sub_fln.jnl
similarity index 100%
rename from bench/err696_mod_sub_fln.jnl
rename to bench/v6jnls/err696_mod_sub_fln.jnl
diff --git a/bench/err696_mode_cal_f.jnl b/bench/v6jnls/err696_mode_cal_f.jnl
similarity index 100%
rename from bench/err696_mode_cal_f.jnl
rename to bench/v6jnls/err696_mode_cal_f.jnl
diff --git a/bench/err696_multiple_slashes.jnl b/bench/v6jnls/err696_multiple_slashes.jnl
similarity index 100%
rename from bench/err696_multiple_slashes.jnl
rename to bench/v6jnls/err696_multiple_slashes.jnl
diff --git a/bench/err696_only_inf_lev.jnl b/bench/v6jnls/err696_only_inf_lev.jnl
similarity index 100%
rename from bench/err696_only_inf_lev.jnl
rename to bench/v6jnls/err696_only_inf_lev.jnl
diff --git a/bench/err696_plot_ax_ppl.jnl b/bench/v6jnls/err696_plot_ax_ppl.jnl
similarity index 100%
rename from bench/err696_plot_ax_ppl.jnl
rename to bench/v6jnls/err696_plot_ax_ppl.jnl
diff --git a/bench/err696_poly_over_label.jnl b/bench/v6jnls/err696_poly_over_label.jnl
similarity index 100%
rename from bench/err696_poly_over_label.jnl
rename to bench/v6jnls/err696_poly_over_label.jnl
diff --git a/bench/err696_red_keylab.jnl b/bench/v6jnls/err696_red_keylab.jnl
similarity index 100%
rename from bench/err696_red_keylab.jnl
rename to bench/v6jnls/err696_red_keylab.jnl
diff --git a/bench/err696_repeat_escapes.jnl b/bench/v6jnls/err696_repeat_escapes.jnl
similarity index 100%
rename from bench/err696_repeat_escapes.jnl
rename to bench/v6jnls/err696_repeat_escapes.jnl
diff --git a/bench/err696_return_prec.jnl b/bench/v6jnls/err696_return_prec.jnl
similarity index 100%
rename from bench/err696_return_prec.jnl
rename to bench/v6jnls/err696_return_prec.jnl
diff --git a/bench/err696_return_type.jnl b/bench/v6jnls/err696_return_type.jnl
similarity index 100%
rename from bench/err696_return_type.jnl
rename to bench/v6jnls/err696_return_type.jnl
diff --git a/bench/err696_save_noupcase.jnl b/bench/v6jnls/err696_save_noupcase.jnl
similarity index 100%
rename from bench/err696_save_noupcase.jnl
rename to bench/v6jnls/err696_save_noupcase.jnl
diff --git a/bench/err696_shade_subspan_clim.jnl b/bench/v6jnls/err696_shade_subspan_clim.jnl
similarity index 100%
rename from bench/err696_shade_subspan_clim.jnl
rename to bench/v6jnls/err696_shade_subspan_clim.jnl
diff --git a/bench/err696_singlevec_over.jnl b/bench/v6jnls/err696_singlevec_over.jnl
similarity index 100%
rename from bench/err696_singlevec_over.jnl
rename to bench/v6jnls/err696_singlevec_over.jnl
diff --git a/bench/err696_subspan_mod_in_expr.jnl b/bench/v6jnls/err696_subspan_mod_in_expr.jnl
similarity index 100%
rename from bench/err696_subspan_mod_in_expr.jnl
rename to bench/v6jnls/err696_subspan_mod_in_expr.jnl
diff --git a/bench/err696_subspan_mod_strides.jnl b/bench/v6jnls/err696_subspan_mod_strides.jnl
similarity index 100%
rename from bench/err696_subspan_mod_strides.jnl
rename to bench/v6jnls/err696_subspan_mod_strides.jnl
diff --git a/bench/err696_subspan_transforms.jnl b/bench/v6jnls/err696_subspan_transforms.jnl
similarity index 100%
rename from bench/err696_subspan_transforms.jnl
rename to bench/v6jnls/err696_subspan_transforms.jnl
diff --git a/bench/err696_time_overlay.jnl b/bench/v6jnls/err696_time_overlay.jnl
similarity index 100%
rename from bench/err696_time_overlay.jnl
rename to bench/v6jnls/err696_time_overlay.jnl
diff --git a/bench/err696_write_no_dim.jnl b/bench/v6jnls/err696_write_no_dim.jnl
similarity index 100%
rename from bench/err696_write_no_dim.jnl
rename to bench/v6jnls/err696_write_no_dim.jnl
diff --git a/bench/err69_arg_type_error.jnl b/bench/v6jnls/err69_arg_type_error.jnl
similarity index 100%
rename from bench/err69_arg_type_error.jnl
rename to bench/v6jnls/err69_arg_type_error.jnl
diff --git a/bench/err69_bad_bounds.jnl b/bench/v6jnls/err69_bad_bounds.jnl
similarity index 100%
rename from bench/err69_bad_bounds.jnl
rename to bench/v6jnls/err69_bad_bounds.jnl
diff --git a/bench/err69_const_array.jnl b/bench/v6jnls/err69_const_array.jnl
similarity index 100%
rename from bench/err69_const_array.jnl
rename to bench/v6jnls/err69_const_array.jnl
diff --git a/bench/err69_countervar_context.jnl b/bench/v6jnls/err69_countervar_context.jnl
similarity index 100%
rename from bench/err69_countervar_context.jnl
rename to bench/v6jnls/err69_countervar_context.jnl
diff --git a/bench/err69_ens_badvalue.jnl b/bench/v6jnls/err69_ens_badvalue.jnl
similarity index 100%
rename from bench/err69_ens_badvalue.jnl
rename to bench/v6jnls/err69_ens_badvalue.jnl
diff --git a/bench/err69_fill_trans.jnl b/bench/v6jnls/err69_fill_trans.jnl
similarity index 100%
rename from bench/err69_fill_trans.jnl
rename to bench/v6jnls/err69_fill_trans.jnl
diff --git a/bench/err69_isready_and_regridding.jnl b/bench/v6jnls/err69_isready_and_regridding.jnl
similarity index 100%
rename from bench/err69_isready_and_regridding.jnl
rename to bench/v6jnls/err69_isready_and_regridding.jnl
diff --git a/bench/err69_isready_bugs.jnl b/bench/v6jnls/err69_isready_bugs.jnl
similarity index 100%
rename from bench/err69_isready_bugs.jnl
rename to bench/v6jnls/err69_isready_bugs.jnl
diff --git a/bench/err69_isready_status_errmsgs.jnl b/bench/v6jnls/err69_isready_status_errmsgs.jnl
similarity index 100%
rename from bench/err69_isready_status_errmsgs.jnl
rename to bench/v6jnls/err69_isready_status_errmsgs.jnl
diff --git a/bench/err69_label_backspace.jnl b/bench/v6jnls/err69_label_backspace.jnl
similarity index 100%
rename from bench/err69_label_backspace.jnl
rename to bench/v6jnls/err69_label_backspace.jnl
diff --git a/bench/err69_letd_dsetnum.jnl b/bench/v6jnls/err69_letd_dsetnum.jnl
similarity index 100%
rename from bench/err69_letd_dsetnum.jnl
rename to bench/v6jnls/err69_letd_dsetnum.jnl
diff --git a/bench/err69_levels_v.jnl b/bench/v6jnls/err69_levels_v.jnl
similarity index 100%
rename from bench/err69_levels_v.jnl
rename to bench/v6jnls/err69_levels_v.jnl
diff --git a/bench/err69_load_big_grid.jnl b/bench/v6jnls/err69_load_big_grid.jnl
similarity index 100%
rename from bench/err69_load_big_grid.jnl
rename to bench/v6jnls/err69_load_big_grid.jnl
diff --git a/bench/err69_long_string_to_xml.jnl b/bench/v6jnls/err69_long_string_to_xml.jnl
similarity index 100%
rename from bench/err69_long_string_to_xml.jnl
rename to bench/v6jnls/err69_long_string_to_xml.jnl
diff --git a/bench/err69_multi_label_ascii.jnl b/bench/v6jnls/err69_multi_label_ascii.jnl
similarity index 100%
rename from bench/err69_multi_label_ascii.jnl
rename to bench/v6jnls/err69_multi_label_ascii.jnl
diff --git a/bench/err69_plot_vs_labs.jnl b/bench/v6jnls/err69_plot_vs_labs.jnl
similarity index 100%
rename from bench/err69_plot_vs_labs.jnl
rename to bench/v6jnls/err69_plot_vs_labs.jnl
diff --git a/bench/err69_repl_scinot.jnl b/bench/v6jnls/err69_repl_scinot.jnl
similarity index 100%
rename from bench/err69_repl_scinot.jnl
rename to bench/v6jnls/err69_repl_scinot.jnl
diff --git a/bench/err69_ribbon_by_levels.jnl b/bench/v6jnls/err69_ribbon_by_levels.jnl
similarity index 100%
rename from bench/err69_ribbon_by_levels.jnl
rename to bench/v6jnls/err69_ribbon_by_levels.jnl
diff --git a/bench/err69_ribbon_histogram.jnl b/bench/v6jnls/err69_ribbon_histogram.jnl
similarity index 100%
rename from bench/err69_ribbon_histogram.jnl
rename to bench/v6jnls/err69_ribbon_histogram.jnl
diff --git a/bench/err69_vtree_and_uvar_regrid.jnl b/bench/v6jnls/err69_vtree_and_uvar_regrid.jnl
similarity index 100%
rename from bench/err69_vtree_and_uvar_regrid.jnl
rename to bench/v6jnls/err69_vtree_and_uvar_regrid.jnl
diff --git a/bench/err69_vtree_cancel_axis.jnl b/bench/v6jnls/err69_vtree_cancel_axis.jnl
similarity index 100%
rename from bench/err69_vtree_cancel_axis.jnl
rename to bench/v6jnls/err69_vtree_cancel_axis.jnl
diff --git a/bench/err69_write_attribute.jnl b/bench/v6jnls/err69_write_attribute.jnl
similarity index 100%
rename from bench/err69_write_attribute.jnl
rename to bench/v6jnls/err69_write_attribute.jnl
diff --git a/bench/xml_header_script.jnl b/bench/v6jnls/xml_header_script.jnl
similarity index 100%
rename from bench/xml_header_script.jnl
rename to bench/v6jnls/xml_header_script.jnl
diff --git a/bench/xml_use_coads.jnl b/bench/v6jnls/xml_use_coads.jnl
similarity index 100%
rename from bench/xml_use_coads.jnl
rename to bench/v6jnls/xml_use_coads.jnl
diff --git a/bench/xml_use_numstring.jnl b/bench/v6jnls/xml_use_numstring.jnl
similarity index 100%
rename from bench/xml_use_numstring.jnl
rename to bench/v6jnls/xml_use_numstring.jnl
diff --git a/bench/bn710_bug_fixes.jnl b/bench/v7jnls/bn710_bug_fixes.jnl
similarity index 100%
rename from bench/bn710_bug_fixes.jnl
rename to bench/v7jnls/bn710_bug_fixes.jnl
diff --git a/bench/bn720_bug_fixes.jnl b/bench/v7jnls/bn720_bug_fixes.jnl
similarity index 100%
rename from bench/bn720_bug_fixes.jnl
rename to bench/v7jnls/bn720_bug_fixes.jnl
diff --git a/bench/bn721_bug_fixes.jnl b/bench/v7jnls/bn721_bug_fixes.jnl
similarity index 100%
rename from bench/bn721_bug_fixes.jnl
rename to bench/v7jnls/bn721_bug_fixes.jnl
diff --git a/bench/v7jnls/bn722_bug_fixes.jnl b/bench/v7jnls/bn722_bug_fixes.jnl
new file mode 100644
index 0000000..1f3c0c6
--- /dev/null
+++ b/bench/v7jnls/bn722_bug_fixes.jnl
@@ -0,0 +1,31 @@
+! bn721_bug_fixes.jnl
+! test various fixes that went into version 7.22
+! 9/17 *acm*
+!
+
+GO bn_reset
+GO err721_dynamic_gather
+
+GO bn_reset
+GO err721_polymark_log
+
+GO bn_reset
+GO err721_letd_with_grave
+
+GO bn_reset
+GO err721_color_levels
+
+GO bn_reset
+GO err721_dup_labels
+
+GO bn_reset
+GO err721_plotuv
+
+GO bn_reset
+GO err721_ascii_size
+
+GO bn_reset
+GO err721_dot_grid
+
+GO bn_reset
+GO err721_stride_size
diff --git a/bench/bn_agg_member_syntax.jnl b/bench/v7jnls/bn_agg_member_syntax.jnl
similarity index 97%
rename from bench/bn_agg_member_syntax.jnl
rename to bench/v7jnls/bn_agg_member_syntax.jnl
index 24f69b1..2409544 100644
--- a/bench/bn_agg_member_syntax.jnl
+++ b/bench/v7jnls/bn_agg_member_syntax.jnl
@@ -46,7 +46,7 @@ show data 5.3
cancel data/all
! Tests for Ensembles
-let files = SPAWN("ls -1 ens*.nc")
+let files = SPAWN("ls -1 data/ens*.nc")
ensemble my_ens = files
sh data/members my_ens
diff --git a/bench/bn_aggregate_u.jnl b/bench/v7jnls/bn_aggregate_u.jnl
similarity index 100%
rename from bench/bn_aggregate_u.jnl
rename to bench/v7jnls/bn_aggregate_u.jnl
diff --git a/bench/bn_ave_of_ave.jnl b/bench/v7jnls/bn_ave_of_ave.jnl
similarity index 100%
rename from bench/bn_ave_of_ave.jnl
rename to bench/v7jnls/bn_ave_of_ave.jnl
diff --git a/bench/bn_cache_management.jnl b/bench/v7jnls/bn_cache_management.jnl
similarity index 100%
rename from bench/bn_cache_management.jnl
rename to bench/v7jnls/bn_cache_management.jnl
diff --git a/bench/bn_compressed_gather.jnl b/bench/v7jnls/bn_compressed_gather.jnl
similarity index 99%
rename from bench/bn_compressed_gather.jnl
rename to bench/v7jnls/bn_compressed_gather.jnl
index 775ae55..f8892dd 100644
--- a/bench/bn_compressed_gather.jnl
+++ b/bench/v7jnls/bn_compressed_gather.jnl
@@ -215,3 +215,6 @@ LIST/PREC=12 xyz[x=@std,y=@std,z=@std]
! ... test irregular axes (unequal weighting) and see how significant are
! the changes in results from old Ferret (particularly on @var)
+
+! clean up
+set mem/siz=25.6 ! return to the default setting
diff --git a/bench/bn_compressed_gather.sub b/bench/v7jnls/bn_compressed_gather.sub
similarity index 100%
rename from bench/bn_compressed_gather.sub
rename to bench/v7jnls/bn_compressed_gather.sub
diff --git a/bench/bn_delim_datetime.jnl b/bench/v7jnls/bn_delim_datetime.jnl
similarity index 100%
rename from bench/bn_delim_datetime.jnl
rename to bench/v7jnls/bn_delim_datetime.jnl
diff --git a/bench/bn_dot_product.jnl b/bench/v7jnls/bn_dot_product.jnl
similarity index 100%
rename from bench/bn_dot_product.jnl
rename to bench/v7jnls/bn_dot_product.jnl
diff --git a/bench/bn_dynamic_gather.jnl b/bench/v7jnls/bn_dynamic_gather.jnl
similarity index 97%
rename from bench/bn_dynamic_gather.jnl
rename to bench/v7jnls/bn_dynamic_gather.jnl
index 52d9faa..b5adcd2 100644
--- a/bench/bn_dynamic_gather.jnl
+++ b/bench/v7jnls/bn_dynamic_gather.jnl
@@ -97,3 +97,6 @@ SET MODE IGNORE
SET MODE FRUGAL:95
SET MODE/LAST IGNORE
+
+! clean up
+set mem/siz=25.6 ! return to the default setting
diff --git a/bench/bn_dynamic_gather.sub b/bench/v7jnls/bn_dynamic_gather.sub
similarity index 100%
rename from bench/bn_dynamic_gather.sub
rename to bench/v7jnls/bn_dynamic_gather.sub
diff --git a/bench/bn_ez_noupcase.jnl b/bench/v7jnls/bn_ez_noupcase.jnl
similarity index 100%
rename from bench/bn_ez_noupcase.jnl
rename to bench/v7jnls/bn_ez_noupcase.jnl
diff --git a/bench/v7jnls/bn_huge_axis.jnl b/bench/v7jnls/bn_huge_axis.jnl
new file mode 100644
index 0000000..9c495ca
--- /dev/null
+++ b/bench/v7jnls/bn_huge_axis.jnl
@@ -0,0 +1,26 @@
+! bn_huge_axis
+! 9/14/17 Dynamic coordinate storage
+! Defining extra-long coordinate axes, and save to a file
+! Use a dataset with extra-long coordinate axis.
+
+! Previously this would have given a program-limit-reached error
+let yy = if y[j=1:900000] eq 10 then 10.1 else y[j=1:900000]
+define axis/y longyax = yy
+
+let/bad=0 var = y[gy=longyax]
+
+list/j=5:15 var
+save/clobber/file=a.nc/outtype=int var
+
+! Previously issued a limit-on-storage-for-coordinates error
+can var/all
+can axis longyax
+
+use a
+show dat
+list/j=5:15 var
+list/j=899995:9000000 var
+
+! clean up. Remove our huge file
+cancel data/all
+sp rm a.nc
diff --git a/bench/bn_iin_regrid.jnl b/bench/v7jnls/bn_iin_regrid.jnl
similarity index 100%
rename from bench/bn_iin_regrid.jnl
rename to bench/v7jnls/bn_iin_regrid.jnl
diff --git a/bench/bn_plot_vs_with_time.jnl b/bench/v7jnls/bn_plot_vs_with_time.jnl
similarity index 100%
rename from bench/bn_plot_vs_with_time.jnl
rename to bench/v7jnls/bn_plot_vs_with_time.jnl
diff --git a/bench/v7jnls/bn_save_as_global.jnl b/bench/v7jnls/bn_save_as_global.jnl
new file mode 100644
index 0000000..92c5747
--- /dev/null
+++ b/bench/v7jnls/bn_save_as_global.jnl
@@ -0,0 +1,54 @@
+! bn_save_asglobal
+! 11/2017
+! Simple command to save a variable as a global attribute.
+! Works on an existing or a new file.
+
+! Write to a new file. Gets the default global attributes.
+
+can mode upcase
+let my_extra_attribute = "Extra attribute: This file is just attributes to start with"
+save/asglobal/clobber/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+
+! Or write new attributes to a file that has data
+
+use coads_climatology
+save/clobber/file=a.nc sst[x=150:170,y=0:10]
+let my_extra_attribute = "Extra attribute: Adding to a file with existing data and attributes"
+save/asglobal/append/file=a.nc my_extra_attribute
+sp ncdump -h a.nc
+
+! Create an attribute from a file variable
+
+use maize_1
+save/append/file=a.nc/j=4/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+
+! A second write of the same attribute overwrites the attribute values
+! (append here is saying dont start a new file)
+
+save/append/file=a.nc/j=5/outtype=float/asglobal maize_yield
+sp ncdump -h a.nc
+
+! Allow for various /OUTTYPE as in any SAVE command
+let another = {1, 2, 3.1}
+save/append/file=a.nc/outtype=INT/asglobal another
+sp ncdump -h a.nc
+
+
+! Intentional errors
+set mode ignore
+set data 1
+
+! String attributes may only be single-valued
+let multistring = {"a", "b", "c", "", "e"}
+save/asglobal/append/file=a.nc multistring
+
+! Refuse to write multi-dimensioned attributes y-t
+save/append/asglobal/x=150/outtype=float/file=a.nc sst
+
+! Also arbitrarily refuse to write more than a list of 100 values.
+set mode ignore
+save/append/asglobal/y=10/L=2/outtype=float/file=a.nc sst
+
+set mode /last upcase
diff --git a/bench/bn_spawn_fail.jnl b/bench/v7jnls/bn_spawn_fail.jnl
similarity index 68%
rename from bench/bn_spawn_fail.jnl
rename to bench/v7jnls/bn_spawn_fail.jnl
index 2f7622b..4b9e4c7 100644
--- a/bench/bn_spawn_fail.jnl
+++ b/bench/v7jnls/bn_spawn_fail.jnl
@@ -5,7 +5,7 @@
! 8/2016 *acm*
sp ls notafile.nowhere
-sp grep "this text is not in the file" bn_all.jnl
+sp grep "this text is not in the file" genjnls/bn_all.jnl
sp rm nothing.dat
-sp grep modulus non_COARDS.cdl
+sp grep modulus data/non_COARDS.cdl
sp cp nofile.dat not_either.dat
diff --git a/bench/bn_stat_precision.jnl b/bench/v7jnls/bn_stat_precision.jnl
similarity index 100%
rename from bench/bn_stat_precision.jnl
rename to bench/v7jnls/bn_stat_precision.jnl
diff --git a/bench/bn_transp_choose.jnl b/bench/v7jnls/bn_transp_choose.jnl
similarity index 100%
rename from bench/bn_transp_choose.jnl
rename to bench/v7jnls/bn_transp_choose.jnl
diff --git a/bench/bn_true_monthly.jnl b/bench/v7jnls/bn_true_monthly.jnl
similarity index 100%
rename from bench/bn_true_monthly.jnl
rename to bench/v7jnls/bn_true_monthly.jnl
diff --git a/bench/v7jnls/bn_tseries_modulo.jnl b/bench/v7jnls/bn_tseries_modulo.jnl
new file mode 100644
index 0000000..077d889
--- /dev/null
+++ b/bench/v7jnls/bn_tseries_modulo.jnl
@@ -0,0 +1,46 @@
+! bn_tseries_modulo.jnl
+! 9/2017 TSERIES aggregations
+!
+! If a time axis lies within year 0 or year 1 they are seen by ferret
+! as modulo. For a tseries aggregation, if the entire aggregated axis
+! is still modulo, then mark it as such, but otherwise it is not modulo.
+!
+! The time axes for these files both lie within year 0.
+! The aggregation has a modulo time axis.
+
+tseries heat_0a.nc, heat_0b.nc
+show grid total_ocean_sens_heat
+
+! The file heat_01 lies in year 1 so the total TSERIES length is longer than a year.
+
+can dat/all
+tseries heat_0a.nc, heat_0b.nc, heat_01.nc
+show grid total_ocean_sens_heat
+
+! Here is the example reported by Russ Fiedler, 9/5/17, on the Ferret list.
+! A file in year 1 and a file in year 2 were previously made into a 24-month
+! axis which was marked as modulo.
+
+can dat/all
+tseries heat_00.nc, heat_01.nc
+show grid total_ocean_sens_heat
+
+
+! What happens with files that are members of our descriptor examples?
+! (coads_clim.003 needed changing to have the same time-axis name)
+
+tseries coads_clim_irreg = coads_clim.001, coads_clim.003
+show grid sst
+list/x=180/y=0 sst
+
+! This descriptor file lists the same datasets, which each contain two
+! timesteps, but it lists S_START = S_END on the second set so it reads
+! just one timestep from coads_clim.003
+
+! The descriptor-file code does not mark the axis as modulo.
+! (Not changing this at this time.)
+
+can data/all
+use coads_clim_irreg.des
+show grid sst
+list/x=180/y=0 sst
diff --git a/bench/err700_aggT_5d.jnl b/bench/v7jnls/err700_aggT_5d.jnl
similarity index 100%
rename from bench/err700_aggT_5d.jnl
rename to bench/v7jnls/err700_aggT_5d.jnl
diff --git a/bench/err700_aggregate_from_fmrc.jnl b/bench/v7jnls/err700_aggregate_from_fmrc.jnl
similarity index 100%
rename from bench/err700_aggregate_from_fmrc.jnl
rename to bench/v7jnls/err700_aggregate_from_fmrc.jnl
diff --git a/bench/err700_aggt_dup_grids.jnl b/bench/v7jnls/err700_aggt_dup_grids.jnl
similarity index 100%
rename from bench/err700_aggt_dup_grids.jnl
rename to bench/v7jnls/err700_aggt_dup_grids.jnl
diff --git a/bench/err700_attribute_parsing.jnl b/bench/v7jnls/err700_attribute_parsing.jnl
similarity index 100%
rename from bench/err700_attribute_parsing.jnl
rename to bench/v7jnls/err700_attribute_parsing.jnl
diff --git a/bench/err700_ax_horiz.jnl b/bench/v7jnls/err700_ax_horiz.jnl
similarity index 100%
rename from bench/err700_ax_horiz.jnl
rename to bench/v7jnls/err700_ax_horiz.jnl
diff --git a/bench/err700_axis_dates.jnl b/bench/v7jnls/err700_axis_dates.jnl
similarity index 100%
rename from bench/err700_axis_dates.jnl
rename to bench/v7jnls/err700_axis_dates.jnl
diff --git a/bench/err700_clim_attr_expression.jnl b/bench/v7jnls/err700_clim_attr_expression.jnl
similarity index 100%
rename from bench/err700_clim_attr_expression.jnl
rename to bench/v7jnls/err700_clim_attr_expression.jnl
diff --git a/bench/err700_coords.jnl b/bench/v7jnls/err700_coords.jnl
similarity index 100%
rename from bench/err700_coords.jnl
rename to bench/v7jnls/err700_coords.jnl
diff --git a/bench/err700_decimate.jnl b/bench/v7jnls/err700_decimate.jnl
similarity index 100%
rename from bench/err700_decimate.jnl
rename to bench/v7jnls/err700_decimate.jnl
diff --git a/bench/err700_define_1pt_axis.jnl b/bench/v7jnls/err700_define_1pt_axis.jnl
similarity index 100%
rename from bench/err700_define_1pt_axis.jnl
rename to bench/v7jnls/err700_define_1pt_axis.jnl
diff --git a/bench/err700_fmrcdiag.jnl b/bench/v7jnls/err700_fmrcdiag.jnl
similarity index 99%
rename from bench/err700_fmrcdiag.jnl
rename to bench/v7jnls/err700_fmrcdiag.jnl
index a6f406f..02e410f 100644
--- a/bench/err700_fmrcdiag.jnl
+++ b/bench/v7jnls/err700_fmrcdiag.jnl
@@ -21,7 +21,9 @@ FRAME /FILE=forecast_actual.gif
! using actual should show single color on horizontal
!
LET /TITLE="actual (diag view)" diagview = actual[gt(tf_times)=tf_cal_t]
+
SHOW GRID diagview
+
LIST /WIDTH=600 /X=120W/Y=50N/Z=50 diagview
SHADE /X=120W/Y=50N/Z=50 diagview
FRAME /FILE=forecast_diagview.gif
diff --git a/bench/err700_inherit_all.jnl b/bench/v7jnls/err700_inherit_all.jnl
similarity index 100%
rename from bench/err700_inherit_all.jnl
rename to bench/v7jnls/err700_inherit_all.jnl
diff --git a/bench/err700_key.jnl b/bench/v7jnls/err700_key.jnl
similarity index 100%
rename from bench/err700_key.jnl
rename to bench/v7jnls/err700_key.jnl
diff --git a/bench/err700_legend_labels.jnl b/bench/v7jnls/err700_legend_labels.jnl
similarity index 100%
rename from bench/err700_legend_labels.jnl
rename to bench/v7jnls/err700_legend_labels.jnl
diff --git a/bench/err700_lev_del_symb.jnl b/bench/v7jnls/err700_lev_del_symb.jnl
similarity index 100%
rename from bench/err700_lev_del_symb.jnl
rename to bench/v7jnls/err700_lev_del_symb.jnl
diff --git a/bench/err700_levels_one_level.jnl b/bench/v7jnls/err700_levels_one_level.jnl
similarity index 100%
rename from bench/err700_levels_one_level.jnl
rename to bench/v7jnls/err700_levels_one_level.jnl
diff --git a/bench/err700_list_comma.jnl b/bench/v7jnls/err700_list_comma.jnl
similarity index 100%
rename from bench/err700_list_comma.jnl
rename to bench/v7jnls/err700_list_comma.jnl
diff --git a/bench/err700_modulo.jnl b/bench/v7jnls/err700_modulo.jnl
similarity index 100%
rename from bench/err700_modulo.jnl
rename to bench/v7jnls/err700_modulo.jnl
diff --git a/bench/err700_reg_axis_check.jnl b/bench/v7jnls/err700_reg_axis_check.jnl
similarity index 100%
rename from bench/err700_reg_axis_check.jnl
rename to bench/v7jnls/err700_reg_axis_check.jnl
diff --git a/bench/err700_ribbon_vlog.jnl b/bench/v7jnls/err700_ribbon_vlog.jnl
similarity index 100%
rename from bench/err700_ribbon_vlog.jnl
rename to bench/v7jnls/err700_ribbon_vlog.jnl
diff --git a/bench/err700_samplexy_subspan_modulo.jnl b/bench/v7jnls/err700_samplexy_subspan_modulo.jnl
similarity index 100%
rename from bench/err700_samplexy_subspan_modulo.jnl
rename to bench/v7jnls/err700_samplexy_subspan_modulo.jnl
diff --git a/bench/err700_save_mod_att.jnl b/bench/v7jnls/err700_save_mod_att.jnl
similarity index 100%
rename from bench/err700_save_mod_att.jnl
rename to bench/v7jnls/err700_save_mod_att.jnl
diff --git a/bench/err700_shade_singlecell.jnl b/bench/v7jnls/err700_shade_singlecell.jnl
similarity index 100%
rename from bench/err700_shade_singlecell.jnl
rename to bench/v7jnls/err700_shade_singlecell.jnl
diff --git a/bench/err700_time_overlay.jnl b/bench/v7jnls/err700_time_overlay.jnl
similarity index 100%
rename from bench/err700_time_overlay.jnl
rename to bench/v7jnls/err700_time_overlay.jnl
diff --git a/bench/err700_timegrat.jnl b/bench/v7jnls/err700_timegrat.jnl
similarity index 100%
rename from bench/err700_timegrat.jnl
rename to bench/v7jnls/err700_timegrat.jnl
diff --git a/bench/err700_unclosed_if.jnl b/bench/v7jnls/err700_unclosed_if.jnl
similarity index 100%
rename from bench/err700_unclosed_if.jnl
rename to bench/v7jnls/err700_unclosed_if.jnl
diff --git a/bench/err700_vs_plot_axes.jnl b/bench/v7jnls/err700_vs_plot_axes.jnl
similarity index 100%
rename from bench/err700_vs_plot_axes.jnl
rename to bench/v7jnls/err700_vs_plot_axes.jnl
diff --git a/bench/err71_2d_ave_miss0.jnl b/bench/v7jnls/err71_2d_ave_miss0.jnl
similarity index 100%
rename from bench/err71_2d_ave_miss0.jnl
rename to bench/v7jnls/err71_2d_ave_miss0.jnl
diff --git a/bench/err71_colorlevs.jnl b/bench/v7jnls/err71_colorlevs.jnl
similarity index 100%
rename from bench/err71_colorlevs.jnl
rename to bench/v7jnls/err71_colorlevs.jnl
diff --git a/bench/err71_err_attrib_overrun.jnl b/bench/v7jnls/err71_err_attrib_overrun.jnl
similarity index 100%
rename from bench/err71_err_attrib_overrun.jnl
rename to bench/v7jnls/err71_err_attrib_overrun.jnl
diff --git a/bench/err71_expr_w_const.jnl b/bench/v7jnls/err71_expr_w_const.jnl
similarity index 100%
rename from bench/err71_expr_w_const.jnl
rename to bench/v7jnls/err71_expr_w_const.jnl
diff --git a/bench/err71_isready_unknown.jnl b/bench/v7jnls/err71_isready_unknown.jnl
similarity index 100%
rename from bench/err71_isready_unknown.jnl
rename to bench/v7jnls/err71_isready_unknown.jnl
diff --git a/bench/err71_plotvs_mode_label.jnl b/bench/v7jnls/err71_plotvs_mode_label.jnl
similarity index 100%
rename from bench/err71_plotvs_mode_label.jnl
rename to bench/v7jnls/err71_plotvs_mode_label.jnl
diff --git a/bench/err71_point_average.jnl b/bench/v7jnls/err71_point_average.jnl
similarity index 100%
rename from bench/err71_point_average.jnl
rename to bench/v7jnls/err71_point_average.jnl
diff --git a/bench/err71_ppl_sho_empty.jnl b/bench/v7jnls/err71_ppl_sho_empty.jnl
similarity index 100%
rename from bench/err71_ppl_sho_empty.jnl
rename to bench/v7jnls/err71_ppl_sho_empty.jnl
diff --git a/bench/err71_prec_return.jnl b/bench/v7jnls/err71_prec_return.jnl
similarity index 100%
rename from bench/err71_prec_return.jnl
rename to bench/v7jnls/err71_prec_return.jnl
diff --git a/bench/err71_read_delim.jnl b/bench/v7jnls/err71_read_delim.jnl
similarity index 100%
rename from bench/err71_read_delim.jnl
rename to bench/v7jnls/err71_read_delim.jnl
diff --git a/bench/err71_repeat_paren.jnl b/bench/v7jnls/err71_repeat_paren.jnl
similarity index 100%
rename from bench/err71_repeat_paren.jnl
rename to bench/v7jnls/err71_repeat_paren.jnl
diff --git a/bench/err71_save_bounds.jnl b/bench/v7jnls/err71_save_bounds.jnl
similarity index 100%
rename from bench/err71_save_bounds.jnl
rename to bench/v7jnls/err71_save_bounds.jnl
diff --git a/bench/err71_save_rigid.jnl b/bench/v7jnls/err71_save_rigid.jnl
similarity index 100%
rename from bench/err71_save_rigid.jnl
rename to bench/v7jnls/err71_save_rigid.jnl
diff --git a/bench/err71_set_redirect.jnl b/bench/v7jnls/err71_set_redirect.jnl
similarity index 100%
rename from bench/err71_set_redirect.jnl
rename to bench/v7jnls/err71_set_redirect.jnl
diff --git a/bench/err71_string_and_if.jnl b/bench/v7jnls/err71_string_and_if.jnl
similarity index 100%
rename from bench/err71_string_and_if.jnl
rename to bench/v7jnls/err71_string_and_if.jnl
diff --git a/bench/err71_user_var_attrib.jnl b/bench/v7jnls/err71_user_var_attrib.jnl
similarity index 100%
rename from bench/err71_user_var_attrib.jnl
rename to bench/v7jnls/err71_user_var_attrib.jnl
diff --git a/bench/err71_uvar_strides.jnl b/bench/v7jnls/err71_uvar_strides.jnl
similarity index 100%
rename from bench/err71_uvar_strides.jnl
rename to bench/v7jnls/err71_uvar_strides.jnl
diff --git a/bench/err71_vs_constant.jnl b/bench/v7jnls/err71_vs_constant.jnl
similarity index 100%
rename from bench/err71_vs_constant.jnl
rename to bench/v7jnls/err71_vs_constant.jnl
diff --git a/bench/err71_vs_lon_over.jnl b/bench/v7jnls/err71_vs_lon_over.jnl
similarity index 100%
rename from bench/err71_vs_lon_over.jnl
rename to bench/v7jnls/err71_vs_lon_over.jnl
diff --git a/bench/v7jnls/err721_ascii_size.jnl b/bench/v7jnls/err721_ascii_size.jnl
new file mode 100644
index 0000000..72fc5a2
--- /dev/null
+++ b/bench/v7jnls/err721_ascii_size.jnl
@@ -0,0 +1,9 @@
+! err721_ascii_size.jnl
+! ACM 10/25/2017 Ticket 2567
+! Initializing an EZ dataset mis-counts the size until data is loaded
+
+file/var="t1,t2"/skip=1 err721_ascii_size.dat
+show data
+say `t1,return=iend`
+load t1
+say `t1,return=iend`
diff --git a/bench/v7jnls/err721_color_levels.jnl b/bench/v7jnls/err721_color_levels.jnl
new file mode 100644
index 0000000..1700536
--- /dev/null
+++ b/bench/v7jnls/err721_color_levels.jnl
@@ -0,0 +1,11 @@
+! err721_color_levels
+! 10/11/2017 ACM
+! Ticket 2564, setting up color palette and levels for the second
+! plot caused a STOP in PyFerret or in Ferret the gks error message
+! gsetcolourrep() 96 Colour is outside range [0,1]
+
+
+let fcn = 0.5*COS(J[j=1:100]/30)+SIN(K[k=1:100]/20)
+fill/pal=land_sea_values/lev=vc 7000*fcn
+
+fill/pal=ocean_temp_bounds/lev=(-2,35,2) 18.5*fcn
diff --git a/bench/v7jnls/err721_dot_grid.jnl b/bench/v7jnls/err721_dot_grid.jnl
new file mode 100644
index 0000000..ba05a7c
--- /dev/null
+++ b/bench/v7jnls/err721_dot_grid.jnl
@@ -0,0 +1,43 @@
+! err721_dot_grid
+
+!!!! using dot_t(v1,v2) works fine
+
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot_t(v1,v2)
+
+show grid dp
+
+list dp
+
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
+
+!!!! using dot(v1,v2,4) gives the correct results
+
+def axis /X=1.0:3.0:1.0 xaxis
+def axis /T=0.0:59.75:0.25 taxis_dc
+def grid /X=xaxis /T=taxis_dc xtgrid
+set grid xtgrid
+let v1 = X * sin(T)
+let v2 = X * cos(T)
+let dp = dot(v1,v2,4)
+
+! It would be nice if this showed the right grid with NO t axis.
+show grid dp
+list dp
+
+! but, at least cancel axis taxis_dc is ok
+! Previously the "can axis taxis_dc" failed.
+can var /all
+set grid abstract
+can grid xtgrid
+can axis xaxis
+can axis taxis_dc
diff --git a/bench/v7jnls/err721_dup_labels.jnl b/bench/v7jnls/err721_dup_labels.jnl
new file mode 100644
index 0000000..3bcc544
--- /dev/null
+++ b/bench/v7jnls/err721_dup_labels.jnl
@@ -0,0 +1,26 @@
+! err721_dup_labels.jnl
+! ticket 2565
+! 10/13/17 ACM
+
+set mode logo
+use err721_dup_labels.nc
+
+! Draw time plot
+plot new_val
+ppl list labels
+
+! Overlay plots should add only the new labels needed. Ferret has
+! always redrawn them all, which was harmless. Now, only draw the
+! ones needed for each new /overlay
+
+plot/over/vs/line/color=green/title="deployment mean" {284.375, 285.5}, {3472.8, 3472.8}
+ppl list labels
+plot/over/vs/line/color=red/title="HC mean" {284.375, 285.5}, {3472.9, 3472.9}
+ppl list labels
+plot/over/vs/line/color=purple/nolab {284.42, 284.42}, {3472.6, 3473.1}
+
+! This caused labels below the plot way over to the right by the line
+plot/over/vs/line/color=purple/title="purple" {285.4, 285.4}, {3472.6, 3473.1}
+ppl list labels
+
+set mode/last logo
diff --git a/bench/v7jnls/err721_dynamic_gather.jnl b/bench/v7jnls/err721_dynamic_gather.jnl
new file mode 100644
index 0000000..741e182
--- /dev/null
+++ b/bench/v7jnls/err721_dynamic_gather.jnl
@@ -0,0 +1,32 @@
+! err72_dynamic_gather.jnl
+! 9/25/2017 Ticket 2561
+! Combination of two transforms, and
+
+cancel data/all
+cancel memory
+
+! dataset from bn_dynamic_gather.jnl
+use tmp/test_dyn_mem.nc
+
+! w/ default amount of memory this doesn't need a split-gather
+! This result is correct
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+show memory/diag
+
+! Now use smaller memory, so it'll split/gather in the T
+! direction. The answer in v7.2 was wrong.
+cancel memory
+set mem/siz=10
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@sum]
+show memory/diag
+
+! With an even smaller amount of memory, a different
+! incorrect result was listed with v7.2.
+cancel memory
+set mem/siz=1
+list/nohead v1000[x=@ave,y=@ave,k=@sum,L=@SUM]
+sh mem/diag
+
+set mem/siz=25.6 ! return to the default setting
+
+
diff --git a/bench/v7jnls/err721_letd_with_grave.jnl b/bench/v7jnls/err721_letd_with_grave.jnl
new file mode 100644
index 0000000..298b5ab
--- /dev/null
+++ b/bench/v7jnls/err721_letd_with_grave.jnl
@@ -0,0 +1,13 @@
+! err721_letd_with_grave
+! 10/6/17 ACM
+! See ticket 2563. Error parsing the grave-accent expr
+! because of the quotes around datset path and name.
+
+use "data/proleptic_gregorian.nc"
+
+! This is fine
+let/d="data/proleptic_gregorian.nc" var1 = my_data + 1
+
+! This resulted in an error
+let/d="data/proleptic_gregorian.nc" var2 = my_data - `my_data[L=@ave]`
+show data
diff --git a/bench/v7jnls/err721_plotuv.jnl b/bench/v7jnls/err721_plotuv.jnl
new file mode 100644
index 0000000..75aaa3e
--- /dev/null
+++ b/bench/v7jnls/err721_plotuv.jnl
@@ -0,0 +1,19 @@
+! err721_plotuv.jnl
+! Ticket 2566: text size of zero causes graphics library errors
+!
+
+if ($program_name"0|PyFerret>1|*>0") then set text/font=arial
+
+! In PyFerret with -nodisplay a Cairo error on the zero-length
+! text size caused an ERROR and exit. Without -nodisplay it
+! issued errors and used some nominal size
+
+use coads_climatology
+let uwnd = sst
+let vwnd = -1*sst
+
+plot/set/x=180/y=0 uwnd,vwnd
+ppl axlsze,0,0
+ ppl plotuv 0,1
+
+if ($program_name"0|PyFerret>1|*>0") then cancel text
diff --git a/bench/v7jnls/err721_polymark_log.jnl b/bench/v7jnls/err721_polymark_log.jnl
new file mode 100644
index 0000000..9f43421
--- /dev/null
+++ b/bench/v7jnls/err721_polymark_log.jnl
@@ -0,0 +1,39 @@
+
+! err721_polymark_log.jnl
+! Ticket 2562, polymark and other polygons over log axis.
+! 9/26/17 ACM
+
+let frqs = {0.01,0.011,0.012,0.013,0.014,0.015,0.025,0.026,0.027,0.028,\
+0.029,0.03,0.031,0.032,0.033,0.08,0.108,0.135,0.193,0.194,0.195,0.196,\
+0.197,0.227,0.228,0.229,0.255,0.256,0.31,0.311,0.312,0.362,0.363,0.364}
+
+let phas = {61.099,68.796,79.686,80.292, 104.212, 121.192,93.757,\
+102.549,115.240,112.831,103.433,102.032,105.109,104.216,93.173,-7.041,\
+-133.985,-162.018,161.157,154.128,146.717,140.252,132.944,-29.014,\
+-34.848,-38.376,-109.836,-119.620,12.858,17.047,22.327,-167.776,-169.991,-165.467}
+
+! Plots with /HLOG
+set v ul
+plot/hlog/vs/vlim=-180:180:45/nolabs/hlim=0.001:0.1 frqs,phas
+go polymark poly/hlog/over/nolabs/nokey/line/pal=red frqs, phas 1 square 0.6
+
+! more dynamic range
+set v ur
+let frq2 = XCAT(frqs, 10*frqs)
+let phas2 = XCAT(phas,phas)
+plot/hlog/vs/vlim=-180:180:45/nolabs frq2, phas2
+go polymark poly/hlog/over/nolabs/nokey/line/pal=green frq2, phas2 1 delta 0.8
+
+! more decades still
+set v ll
+let var3 = XCAT(0.1*frqs, frq2)
+let phas3 = XCAT(phas,phas2)
+plot/hlog/vs/vlim=-180:180:45/nolabs var3, phas3
+go polymark poly/hlog/over/nolabs/nokey/line/pal=purple_light var3, phas3 1 star 1.1
+
+! /VLOG
+set v lr
+plot/vlog/vs/hlim=-180:180:45/nolabs phas3, var3
+go polymark poly/vlog/over/nolabs/nokey/line/pal=blue_light phas3, var3 1 circle 0.7
+
+! Note /VLOG/HLOG together make a blank plot. Not worrying about that now.
diff --git a/bench/v7jnls/err721_stride_size.jnl b/bench/v7jnls/err721_stride_size.jnl
new file mode 100644
index 0000000..46d5235
--- /dev/null
+++ b/bench/v7jnls/err721_stride_size.jnl
@@ -0,0 +1,32 @@
+! err721_stride_size.jnl
+! SHOW DATA and RETURN=isize were
+! not updated with new size on a SET AXIS/STRIDE
+! *ACM* 11/29/2017 github issue 1843
+
+use coads_climatology
+set axis/stride=5 `sst,return=xaxis`
+
+! Should show new size for x axis
+show grid sst
+say `sst,return=isize`
+
+! Restore axis, back to size 180
+cancel axis/stride `sst,return=xaxis`
+show grid sst
+say `sst,return=isize`
+
+! Irregular axis
+
+USE truemonth.nc
+say `var,return=lsize`
+SET AXIS/STRIDE=12/OFFSET=0 `var,return=taxis` ! every January
+LIST var
+say `var,return=lsize`
+
+can axis/stride `var,return=taxis`
+sh grid var
+SET AXIS/STRIDE=12/OFFSET=2 `var,return=taxis` ! every March
+say `var,return=lsize`
+list var
+say `var,return=lsize`
+
diff --git a/bench/err72_atts_as_vars.jnl b/bench/v7jnls/err72_atts_as_vars.jnl
similarity index 100%
rename from bench/err72_atts_as_vars.jnl
rename to bench/v7jnls/err72_atts_as_vars.jnl
diff --git a/bench/err72_sum_in_x.jnl b/bench/v7jnls/err72_sum_in_x.jnl
similarity index 100%
rename from bench/err72_sum_in_x.jnl
rename to bench/v7jnls/err72_sum_in_x.jnl
diff --git a/bench/unclosed_if.sub b/bench/v7jnls/unclosed_if.sub
similarity index 100%
rename from bench/unclosed_if.sub
rename to bench/v7jnls/unclosed_if.sub
diff --git a/bin/ferret_paths_template.csh b/bin/ferret_paths_template.csh
index ebef303..a2332e4 100644
--- a/bin/ferret_paths_template.csh
+++ b/bin/ferret_paths_template.csh
@@ -1,5 +1,5 @@
##
-## Environment settings for Ferret for csh users.
+## Environment settings for Ferret for C-shell users.
## Source this file before running ferret ('source ferret_paths.csh')
##
@@ -11,52 +11,21 @@ setenv FER_DIR "/usr/local/ferret"
## the directory you created for the FERRET demonstration data files (30+ Mbytes).
setenv FER_DSETS "${FER_DIR}/fer_dsets"
-## Web browser for your system used in some "go" scripts
-setenv FER_WEB_BROWSER "firefox"
-
-## If "java -version" does not run from the command prompt,
-## or does not report a java 1.6.x version, the environment
-## variable JAVA_HOME needs to be defined in order to run
-## the ThreddsBrowser GUI. The directory defined by this
-## environment variable contains the java executable (version
-## 1.6.x) in the bin subdirectory (ie, bin/java).
-if ( ! $?JAVA_HOME ) then
- ## try some common locations;
- if ( -x "/usr/java/latest/bin/java" ) then
- setenv JAVA_HOME "/usr/java/latest"
- else if ( -x "/usr/lib/jvm/java-1.6.0-sun/bin/java" ) then
- setenv JAVA_HOME "/usr/lib/jvm/java-1.6.0-sun"
- else if ( -x "/usr/lib/jvm/java-6-sun/bin/java" ) then
- setenv JAVA_HOME "/usr/lib/jvm/java-6-sun"
- endif
- ## or comment the above out and just set your own location
- # setenv JAVA_HOME "/my/java-1.6/home"
-endif
## =========== The remainder of this file should not need modification ===========
## =========== unless you want to add custom directories or sites to ===========
## =========== the Ferret's defaults. ===========
-## Prepend ${FER_DIR}/bin to ${PATH}
-## System Manager: If you prefer not to modify PATH here, you may comment
-## out these lines and execute the file $FER_DIR/bin/install_ferret_links
-## which will create ferret links in /usr/local/bin.
+## Add ${FER_DIR}/bin to the beginning of ${PATH}
if ( "${PATH}" !~ "*${FER_DIR}/bin*" ) then
setenv PATH "${FER_DIR}/bin:${PATH}"
rehash
endif
-## Space-separated list of default sites for ThreddsBrowser
-## (SET /DATA /BROWSE or its alias OPEN)
-## Assigned in this unusual way to make it easy to add/delete/rearrange sites.
-setenv FER_DATA_THREDDS ""
-setenv FER_DATA_THREDDS "${FER_DATA_THREDDS} http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml"
-setenv FER_DATA_THREDDS "${FER_DATA_THREDDS} ${FER_DSETS}"
-
## Space-separated lists of directories examined when searching
-## for (data, descriptor, grid, go-script) files without path components
-setenv FER_DATA ". ${FER_DSETS}/data ${FER_DIR}/go ${FER_DIR}/examples"
+## for data, descriptor, grid, go-script files without path components
+setenv FER_DATA ". ${FER_DSETS}/data ${FER_DIR}/contrib"
setenv FER_DESCR ". ${FER_DSETS}/descr"
setenv FER_GRIDS ". ${FER_DSETS}/grids"
setenv FER_GO ". ${FER_DIR}/go ${FER_DIR}/examples ${FER_DIR}/contrib"
@@ -75,11 +44,6 @@ setenv FER_FONTS "${FER_DIR}/ppl/fonts"
## Directory for Ferret fonts (old)
setenv PLOTFONTS "${FER_DIR}/ppl/fonts"
-## Directory containing threddsBrowser.jar and toolsUI.jar for ThreddsBrowser
-setenv FER_LIBS "${FER_DIR}/lib"
-
-setenv FER_DAT "${FER_DIR}"
-
## Faddpath: a tool to quickly add paths to the search lists
alias Faddpath 'if ( "\!*" != "" ) then \
setenv FER_GO "$FER_GO \!*" \
diff --git a/bin/ferret_paths_template.sh b/bin/ferret_paths_template.sh
index 498ea8e..4932dd7 100644
--- a/bin/ferret_paths_template.sh
+++ b/bin/ferret_paths_template.sh
@@ -1,5 +1,5 @@
##
-## Environment settings for Ferret for bash users.
+## Environment settings for Ferret for Bourne-shell users.
## Source this file before running ferret ('. ferret_paths.sh')
##
@@ -11,52 +11,20 @@ export FER_DIR="/usr/local/ferret"
## the directory you created for the FERRET demonstration data files (30+ Mbytes).
export FER_DSETS="${FER_DIR}/fer_dsets"
-## Web browser for your system used in some "go" scripts
-export FER_WEB_BROWSER="firefox"
-
-## If "java -version" does not run from the command prompt,
-## or does not report a java 1.6.x version, the environment
-## variable JAVA_HOME needs to be defined in order to run
-## the ThreddsBrowser GUI. The directory defined by this
-## environment variable contains the java executable (version
-## 1.6.x) in the bin subdirectory (ie, bin/java).
-if [ -z "$JAVA_HOME" ]; then
- ## try some common locations;
- if [ -x "/usr/java/latest/bin/java" ]; then
- export JAVA_HOME="/usr/java/latest"
- elif [ -x "/usr/lib/jvm/java-1.6.0-sun/bin/java" ]; then
- export JAVA_HOME="/usr/lib/jvm/java-1.6.0-sun"
- elif [ -x "/usr/lib/jvm/java-6-sun/bin/java" ]; then
- export JAVA_HOME="/usr/lib/jvm/java-6-sun"
- fi
- ## or comment the above out and just set your own location
- # export JAVA_HOME="/my/java-1.6/home"
-fi
-
## =========== The remainder of this file should not need modification ===========
## =========== unless you want to add custom directories or sites to ===========
## =========== the Ferret's defaults. ===========
-## Prepend ${FER_DIR}/bin to ${PATH}
-## System Manager: If you prefer not to modify PATH here, you may comment
-## out these lines and execute the file $FER_DIR/bin/install_ferret_links
-## which will create ferret links in /usr/local/bin.
+## Add ${FER_DIR}/bin to the beginning of ${PATH}
if ! echo "${PATH}" | grep -q "${FER_DIR}/bin"; then
export PATH="${FER_DIR}/bin:${PATH}"
fi
-## Space-separated list of default sites for ThreddsBrowser
-## (SET /DATA /BROWSE or its alias OPEN)
-## Assigned in this unusual way to make it easy to add/delete/rearrange sites.
-export FER_DATA_THREDDS=""
-export FER_DATA_THREDDS="${FER_DATA_THREDDS} http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml"
-export FER_DATA_THREDDS="${FER_DATA_THREDDS} ${FER_DSETS}"
-
## Space-separated lists of directories examined when searching
-## for (data, descriptor, grid, go-script) files without path components
-export FER_DATA=". ${FER_DSETS}/data ${FER_DIR}/go ${FER_DIR}/examples"
+## for data, descriptor, grid, go-script files without path components
+export FER_DATA=". ${FER_DSETS}/data ${FER_DIR}/contrib"
export FER_DESCR=". ${FER_DSETS}/descr"
export FER_GRIDS=". ${FER_DSETS}/grids"
export FER_GO=". ${FER_DIR}/go ${FER_DIR}/examples ${FER_DIR}/contrib"
@@ -75,12 +43,6 @@ export FER_FONTS="${FER_DIR}/ppl/fonts"
## Directory for Ferret fonts (old)
export PLOTFONTS="${FER_DIR}/ppl/fonts"
-## Directory containing threddsBrowser.jar and toolsUI.jar for ThreddsBrowser
-export FER_LIBS="${FER_DIR}/lib"
-
-## Ferret directory (old)
-export FER_DAT="${FER_DIR}"
-
## Faddpath: a tool to quickly add paths to the search lists
Faddpath() { if [ -n "$*" ]
then
diff --git a/bin/make_environment_tar b/bin/make_environment_tar
index c666ff7..763484f 100755
--- a/bin/make_environment_tar
+++ b/bin/make_environment_tar
@@ -93,7 +93,7 @@ else
svn checkout -q ${repository}/palettes
endif
-# Move files into thier proper position
+# Move files into their proper position
echo "Doing a bit of rearranging"
mv jnls/* .
rm -rf jnls
diff --git a/bin/make_executable_tar b/bin/make_executable_tar
index 8290e25..f3ae14f 100755
--- a/bin/make_executable_tar
+++ b/bin/make_executable_tar
@@ -112,28 +112,6 @@ mkdir ${temp_dir}/ppl
mkdir ${temp_dir}/ppl/fonts
${mycp} ${fer_files} ${temp_dir}/ppl/fonts
-# Copy threddsBrowser/threddsBrowser.jar
-set tb_jar = ${ferret_dir}/threddsBrowser/threddsBrowser.jar
-if ( ! -r ${tb_jar} ) then
- echo "No threddsBrowser.jar file found ${ferret_dir}/threddsBrowser"
- echo "Installation of threddsBrowser.jar skipped"
- echo ""
-else
- mkdir ${temp_dir}/lib
- ${mycp} ${tb_jar} ${temp_dir}/lib
-# Copy threddsBrowser/toolsUI/toolsUI-4.1.jar
- set toolsui_jar = ${ferret_dir}/threddsBrowser/toolsUI/toolsUI-4.1.jar
- if ( ! -r ${toolsui_jar} ) then
- echo "No toolsUI-4.1.jar file found ${ferret_dir}/threddsBrowser/toolsUI"
- echo ""
- exit 1
- endif
- ${mycp} ${toolsui_jar} ${temp_dir}/lib
-# Create a symbolic link to the toolsUI-4.1.jar file
- cd ${temp_dir}/lib
- ${mylns} toolsUI-4.1.jar toolsUI.jar
-endif
-
# Copy pyferret files
if ( "${pyferret_dir}" != "" ) then
set python_dirs = ${pyferret_dir}/lib/python*
diff --git a/fer/Makefile b/fer/Makefile
index 8e07cc8..80582e1 100644
--- a/fer/Makefile
+++ b/fer/Makefile
@@ -36,6 +36,7 @@
# V702 1/17 *sh* dynamic mem mgmt for trac #2369 calls mem from ccr so had to
# stick another mem at tthe end of the FERLIBS list. Ugly solution.
# Also shifted fmt after mem so that the new LIFINT8 gets picked up
+# V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
#
# include platform specific macro definitions
#
diff --git a/fer/ccr/SOURCE_FILES b/fer/ccr/SOURCE_FILES
index fa142f1..f7ea4c2 100644
--- a/fer/ccr/SOURCE_FILES
+++ b/fer/ccr/SOURCE_FILES
@@ -28,6 +28,8 @@ free_dyn_mem.c\
get_c_pointer.c\
get_c_string.c\
get_c_string_len.c\
+get_edgmem.c\
+get_linemem.c\
get_max_c_string_len.c\
get_mr_mem.c\
get_ws_mem.c\
@@ -40,12 +42,12 @@ linux_routines_c.c\
list.c\
nullify_mr.c\
nullify_ws.c\
+nullify_linemem.c\
put_frame.c\
recover_cached_2d_array_point.c\
recover_cached_full_array.c\
replaceable_bad_flags.c \
replace_bad_data_sub.c \
-run_thredds_browser.c\
save_arg_pointers.c\
save_c_string.c\
set_nan.c\
diff --git a/fer/ccr/get_edgmem.c b/fer/ccr/get_edgmem.c
new file mode 100644
index 0000000..ece2e8b
--- /dev/null
+++ b/fer/ccr/get_edgmem.c
@@ -0,0 +1,40 @@
+/*
+ *
+ * Allocate c heap storage needed for the storage of Ferret mrs
+ * and pass the pointer to it to an FORTRAN 90
+ * routine that will save it in COMMON
+ *
+ * V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+ * Following main-memory dynamic allocation methods
+ *
+ */
+
+#include <stdlib.h>
+#include "ferret.h"
+#include "FerMem.h"
+
+void FORTRAN(get_edgmem)( double *index, long *alen, int *status )
+
+/*
+ input - index: Ferret line number in which to store the array pointer
+ input - alen: array length
+ output - status flag
+*/
+
+{
+
+ double *pointer;
+
+ pointer = (double *) FerMem_Malloc(sizeof(double) * (*alen), __FILE__, __LINE__);
+
+ if (pointer)
+ {
+ FORTRAN(store_edge_ptr) (index, alen, pointer);
+ *status = 3;
+ }
+ else
+ *status = 0;
+
+ return;
+}
+
diff --git a/fer/ccr/get_linemem.c b/fer/ccr/get_linemem.c
new file mode 100644
index 0000000..2a29571
--- /dev/null
+++ b/fer/ccr/get_linemem.c
@@ -0,0 +1,40 @@
+/*
+ *
+ * Allocate c heap storage needed for the storage of Ferret mrs
+ * and pass the pointer to it to an FORTRAN 90
+ * routine that will save it in COMMON
+ *
+ * V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+ * Following main-memory dynamic allocation methods
+ *
+ */
+
+#include <stdlib.h>
+#include "ferret.h"
+#include "FerMem.h"
+
+void FORTRAN(get_linemem)( double *index, long *alen, int *status )
+
+/*
+ input - index: Ferret line number in which to store the array pointer
+ input - alen: array length
+ output - status flag
+*/
+
+{
+
+ double *pointer;
+
+ pointer = (double *) FerMem_Malloc(sizeof(double) * (*alen), __FILE__, __LINE__);
+
+ if (pointer)
+ {
+ FORTRAN(store_line_ptr) (index, alen, pointer);
+ *status = 3;
+ }
+ else
+ *status = 0;
+
+ return;
+}
+
diff --git a/fer/ccr/nullify_linemem.c b/fer/ccr/nullify_linemem.c
new file mode 100644
index 0000000..ed9b267
--- /dev/null
+++ b/fer/ccr/nullify_linemem.c
@@ -0,0 +1,30 @@
+/*
+ * use gcc -c nullify_linemem.c
+ *
+ * set the F90 array pointer to null
+ *
+ * V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+ *
+ */
+
+
+#include <stdlib.h>
+#include "ferret.h"
+
+
+void FORTRAN(nullify_linemem)( int *iaxis, int *line_or_edge )
+
+/*
+ input - mr: Ferret iaxis index at which to store the array pointer
+*/
+
+{
+
+ double *nul_ptr;
+
+ nul_ptr = (double *) NULL;
+
+ FORTRAN(store_nul_line_ptr) (iaxis, line_or_edge, nul_ptr);
+
+ return;
+}
diff --git a/fer/ccr/perl_read.c b/fer/ccr/perl_read.c
index 386fe4d..726756b 100644
--- a/fer/ccr/perl_read.c
+++ b/fer/ccr/perl_read.c
@@ -1,5 +1,6 @@
#include <stdio.h>
#include <stdlib.h>
+#include "ferret.h"
#include "binaryRead.h"
int FORTRAN(pl_read_var)(float *mem, int *lengths){
diff --git a/fer/ccr/run_thredds_browser.c b/fer/ccr/run_thredds_browser.c
deleted file mode 100644
index 77c4ce1..0000000
--- a/fer/ccr/run_thredds_browser.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "run_thredds_browser.h"
-
-/*
- * Interface to the FORTRAN function:
- * INTEGER FUNCTION RUN_THREDDS_BROWSER(DATASET_NAME, ERR_WARN_MSG)
- * CHARACTER*(*) DATASET_NAME, ERR_WARN_MSG
- * where the return value is the actual length of the name in DATASET_NAME
- * if successful, 0 if canceled, -1 if error. (See runThreddsBrowser)
- * Assumes DATASET_NAME and ERR_WARN_MSG are blank-filled when passed
- * to this function. Does not do bounds checking.
- *
- * Assumes Holerith strings are passed as a char array with a max string
- * length appended to the end of the argument list. Also assumes the C
- * name is the single underscore appended to the lower-cased FORTRAN name.
- */
-int run_thredds_browser_(char dataset_name[], char err_warn_msg[], int max_len_dataset_name, int max_len_err_warn_msg) {
- int len_dataset_name;
-
- /* Run the browser */
- len_dataset_name = runThreddsBrowser(dataset_name, err_warn_msg);
-
- /* Replace the null terminators with blanks */
- dataset_name[strlen(dataset_name)] = ' ';
- err_warn_msg[strlen(err_warn_msg)] = ' ';
-
- /* Return the return value from runThreddsBrowser */
- return len_dataset_name;
-}
-
-/*
- * Verifies access to Java 6 or later (version 1.6+) and runs the ThreddsBrowser Java
- * application. Writes the dataset name output from ThreddsBrowser to datasetName and
- * any warning messages are written to errWarn. The length of datasetName is returned.
- * If the user cancels out of the ThreddsBrowser, datasetName is empty and zero is
- * returned. If an error occurs, datasetName is empty, -1 is returned and an error
- * message is written to errWarn.
- *
- * Requires the environment variable FER_LIBS and the jar files
- * ${FER_LIBS}/threddsBrowser.jar (from the ThreddsBrowser Java project) and
- * ${FER_LIBS}/toolsUI.jar (from http://www.unidata.ucar.edu/software/netcdf-java/)
- */
-int runThreddsBrowser(char datasetName[], char errWarn[]) {
- char *envVal;
- char javaExeName[FILENAME_MAX];
- int version;
- char errMsg[256];
- char classPath[2*FILENAME_MAX];
- char *argvStack[5];
- FILE *pipeFile;
- pid_t childPid;
- char output[2*FILENAME_MAX];
- char *strptr;
-
- datasetName[0] = '\0';
- errWarn[0] = '\0';
-
- /* Check if JAVA_HOME is defined and reasonable */
- envVal = getenv("JAVA_HOME");
- if ( envVal != NULL ) {
- snprintf(javaExeName, FILENAME_MAX, "%s/bin/java", envVal);
- version = getJavaVersion(javaExeName, errMsg);
- if ( version == -1 ) {
- strcat(errWarn, errMsg);
- strcat(errWarn, "WARNING: Ignoring environment variable JAVA_HOME (invalid path)\n");
- envVal = NULL;
- }
- else if ( version < 6 ) {
- strcat(errWarn, "WARNING: Ignoring environment variable JAVA_HOME (java version too old)\n");
- envVal = NULL;
- }
- }
-
- /* JAVA_HOME either undefined or unacceptable, so try java without a path */
- if ( envVal == NULL ) {
- strcpy(javaExeName, "java");
- version = getJavaVersion(javaExeName, errMsg);
- if ( version == -1 ) {
- strcat(errWarn, errMsg);
- }
- if ( version < 6 ) {
- strcat(errWarn, "ERROR: unable to find version 6 (or later) of Java\n");
- return -1;
- }
- }
-
- /* Create the class path for the jar files needed */
- envVal = getenv("FER_LIBS");
- if ( envVal == NULL ) {
- strcat(errWarn, "ERROR: environment variable FER_LIBS is not defined\n");
- return -1;
- }
- snprintf(classPath, 2*FILENAME_MAX, "%s/threddsBrowser.jar:%s/toolsUI.jar", envVal, envVal);
-
- /* Run the ThreddsBrowser application */
- argvStack[0] = javaExeName;
- argvStack[1] = "-classpath";
- argvStack[2] = classPath;
- argvStack[3] = "gov.noaa.pmel.ferret.threddsBrowser.ThreddsBrowser";
- argvStack[4] = NULL;
-
- pipeFile = executableOutput(argvStack, &childPid, errMsg);
- if ( pipeFile == NULL ) {
- strcat(errWarn, errMsg);
- return -1;
- }
-
- /* Get the dataset name */
- while ( fgets(output, 2*FILENAME_MAX, pipeFile) != NULL ) {
- if ( strncmp(output, "USE \"", 5) == 0 ) {
- /* get the contents between the double quotes */
- strptr = strrchr(output, '"');
- if ( strptr > output + 4 ) {
- *strptr = '\0';
- strcpy(datasetName, output + 5);
- }
- }
- else {
- strcat(errWarn, output);
- }
- }
-
- /* Close the read end of the pipe and reap the child process */
- fclose(pipeFile);
- waitpid(childPid, NULL, 0);
-
- return strlen(datasetName);
-}
-
-/*
- * Return the Java version of the given java executable. The version is obtained
- * from parsing the output from running the java executable with the "-version"
- * flag. So a version string of "1.5.0_05" will return 5 and "1.6.0_20" will return 6.
- * If an error occurs, -1 is returned and an error message is written to errMsg.
- */
-int getJavaVersion(char javaExeName[], char errMsg[]) {
- char *argvStack[3];
- FILE *pipeFile;
- pid_t childPid;
- char output[FILENAME_MAX];
- int versionNum;
- int major, minor, revision, build;
-
- /* Run this java executable with the -version flag */
- argvStack[0] = javaExeName;
- argvStack[1] = "-version";
- argvStack[2] = NULL;
- pipeFile = executableOutput(argvStack, &childPid, errMsg);
- if ( pipeFile == NULL ) {
- return -1;
- }
-
- /* Get the version number string - note that this is printed to stderr */
- versionNum = -1;
- while ( fgets(output, FILENAME_MAX, pipeFile) != NULL ) {
- if ( sscanf(output, "java version \"%d.%d.%d_%d", &major, &minor, &revision, &build) == 4 ) {
- /* if 1.x, the version is the x */
- if ( major == 1 ) {
- versionNum = minor;
- }
- }
- }
-
- /* Close the read end of the pipe and reap the child process */
- fclose(pipeFile);
- waitpid(childPid, NULL, 0);
-
- if ( versionNum == -1 )
- strcpy(errMsg, "Unable to interpret the Java version\n");
- return versionNum;
-}
-
-/*
- * Forks off a child process that becomes the executable given by exeArgv,
- * which matches the argv array given as the second argument to execvp.
- * The first argument to execvp will be exeArgv[0]. On success, the PID of
- * the child process will be returned in childPidPtr, and a FILE is returned
- * from which the combined stdout and stderr output of the execuable can be
- * read. On error, NULL is returned, the value in childPidPtr is unchanged,
- * an error message is written to errMsg, and any child process which might
- * have been created has been killed using SIGTERM and reaped.
- */
-FILE *executableOutput(char *exeArgv[], pid_t *childPidPtr, char errMsg[]) {
- int fildes[2];
- pid_t childPid;
- FILE *outFile;
-
- if ( pipe(fildes) != 0 ) {
- sprintf(errMsg, "Unable to create a pipe: %s\n", strerror(errno));
- return NULL;
- }
-
- childPid = fork();
- if ( childPid < 0 ) {
- /* error - this is the parent and there is no child */
- sprintf(errMsg, "Unable to fork off a child process: %s\n", strerror(errno));
- close(fildes[0]);
- close(fildes[1]);
- return NULL;
- }
-
- if ( childPid == 0 ) {
- /* child which never returns - close the read end of the pipe */
- close(fildes[0]);
-
- /* redirect stdout and stderr to the writing end of the pipe */
- if ( (dup2(fildes[1], 1) < 0) || (dup2(fildes[1], 2) < 0) )
- exit(1);
-
- /* become the program given in argsStack */
- execvp(exeArgv[0], exeArgv);
-
- /* if execvp returns, an error has occurred */
- exit(1);
- }
-
- /* parent - close the write end of the pipe */
- close(fildes[1]);
-
- /* create a FILE wrapping the reading end of the pipe */
- outFile = fdopen(fildes[0], "r");
- if ( outFile == NULL ) {
- sprintf(errMsg, "Unable to create a FILE from a pipe file descriptor: %s\n", strerror(errno));
- kill(childPid, SIGTERM);
- waitpid(childPid, NULL, 0);
- close(fildes[0]);
- return NULL;
- }
-
- /* parent records the child pid and returns a FILE wrapping the reading end of the pipe to the child */
- *childPidPtr = childPid;
- return outFile;
-}
-
diff --git a/fer/common/EF_Util.h b/fer/common/EF_Util.h
index 1930d03..3d71036 100644
--- a/fer/common/EF_Util.h
+++ b/fer/common/EF_Util.h
@@ -38,7 +38,6 @@
#define HI 1
#define ATOM_NOT_FOUND 0 /* This should match the atom_not_found parameter in ferret.parm. */
-#define FERR_OK 3 /* This should match the ferr_ok parameter in errmsg.parm. */
#define FERR_EF_ERROR 437 /* This should match the ferr_ef_error parameter in errmsg.parm. */
#define EF_VERSION 1.4
diff --git a/fer/common/binaryRead.h b/fer/common/binaryRead.h
index cf8457e..17539fa 100644
--- a/fer/common/binaryRead.h
+++ b/fer/common/binaryRead.h
@@ -1,5 +1,8 @@
#ifndef BINARYREAD_H
#define BINARYREAD_H
+
+#include "ferret.h"
+
/*
* Utility functions for reading binary data
*
@@ -17,14 +20,6 @@
#define MEM_INFO_BLOCKSIZE 1048576 /* Max mem chunk size */
#define MEM_INFO_MINTHRESH 1024 /* No closer to mmap boundary than this! */
-/* Easier way of handling single/double floating-point declarations */
-#ifdef double_p
-#define DFTYPE double
-#else
-#define DFTYPE float
-#endif
-
-
typedef struct _MemInfo {
char *data; /* Memory mapped file contents */
int relPos; /* Position relative to mem block start */
@@ -63,10 +58,6 @@ typedef struct _FileInfo {
int doSwap; /* Swap bytes */
} FileInfo;
-#ifndef FORTRAN
-#define FORTRAN(a) a##_
-#endif
-
int FORTRAN(br_add_var)(DFTYPE *data, int *doRead);
void FORTRAN(br_close)(void);
void FORTRAN(br_get_error)(char *buf);
diff --git a/fer/common/ferret.h b/fer/common/ferret.h
index 294b921..dc763a8 100644
--- a/fer/common/ferret.h
+++ b/fer/common/ferret.h
@@ -19,6 +19,7 @@
#define NFERDIMS 6
#define NFERDIMSP1 7
+#define FERR_OK 3 /* This should match the ferr_ok parameter in errmsg.parm. */
/* from XPROG_STATE COMMON */
#define TTOUT_LUN 6
@@ -59,7 +60,6 @@
FILE *executableOutput(char *exeArgv[], pid_t *childPidPtr, char errMsg[]);
void ferret_dispatch_c(char *init_command, smPtr sBuffer);
int getJavaVersion(char javaExeName[], char errMsg[]);
-int runThreddsBrowser(char datasetName[], char errWarn[]);
void set_secure(void);
void set_server(void);
@@ -111,7 +111,6 @@ void FORTRAN(recover_cached_2d_array_point)(double *array, int *dim1, int *dim2,
void FORTRAN(recover_cached_full_array)(double *array, int *alen, double **pointer_val);
int FORTRAN(replaceable_bad_flags)(DFTYPE *bad1, DFTYPE *bad2);
void FORTRAN(replace_bad_data_sub)(DFTYPE *old_bad, DFTYPE *src, int *size, DFTYPE *new_bad);
-int FORTRAN(run_thredds_browser)(char dataset_name[], char err_warn_msg[], int max_len_data_set, int max_len_err_warn_msg);
void FORTRAN(save_c_string)(char *string, int *inlen, char ***fer_ptr, int *offset, int *stat);
void FORTRAN(save_metafile_name)(char *outfile, int *length, int *bat_mode);
void FORTRAN(set_batch_graphics)(char *outfile, int *batmode);
diff --git a/fer/common/run_thredds_browser.h b/fer/common/run_thredds_browser.h
deleted file mode 100644
index 9951db9..0000000
--- a/fer/common/run_thredds_browser.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef RUNTHREDDSBROWSER_H_
-#define RUNTHREDDSBROWSER_H_
-
-#include <sys/types.h>
-#include <stdio.h>
-#include "ferret.h" /* for FORTRAN */
-
-/*
- * Interface to the FORTRAN function:
- * INTEGER FUNCTION RUN_THREDDS_BROWSER(DATASET_NAME, ERR_WARN_MSG)
- * CHARACTER*(*) DATASET_NAME, ERR_WARN_MSG
- */
-int FORTRAN(run_thredds_browser)(char dataset_name[], char err_warn_msg[], int max_len_data_set, int max_len_err_warn_msg);
-
-/* Standard C functions */
-int runThreddsBrowser(char datasetName[], char errWarn[]);
-int getJavaVersion(char javaExeName[], char errMsg[]);
-FILE *executableOutput(char *exeArgv[], pid_t *childPidPtr, char errMsg[]);
-
-#endif /* RUNTHREDDSBROWSER_H_ */
diff --git a/fer/common/slash.parm b/fer/common/slash.parm
index 5145db9..07f0086 100644
--- a/fer/common/slash.parm
+++ b/fer/common/slash.parm
@@ -71,6 +71,8 @@
* to simplify future merges of Ferret into PyFerret
* V720 *acm* 3/17 Ticket 2512: Add STAT/PRECICISION=
* V720 *acm* 5/17 Ticket 2530 add WIRE/COLOR= and draw the color with pen 1
+* V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
+* V723 *acm* 11/17 New SAVE/ASGLOBAL option to write global attribute to netCDF file
* command qualifier states
@@ -176,7 +178,8 @@
. slash_list_endian,
. slash_list_outtype,
. slash_list_curvi,
- . slash_list_layerz
+ . slash_list_layerz,
+ . slash_list_asglobal
INTEGER
. slash_set_data_ez,
@@ -193,7 +196,6 @@
. slash_set_data_swap,
. slash_set_data_tregular,
. slash_set_data_delimiters,
- . slash_set_data_browse,
. slash_set_data_strict,
.
. slash_set_var_title,
@@ -475,7 +477,8 @@
. slash_list_endian = 1+52,
. slash_list_outtype = 1+53,
. slash_list_curvi = 1+54,
- . slash_list_layerz = 1+55 )
+ . slash_list_layerz = 1+55,
+ . slash_list_asglobal = 1+56 )
PARAMETER (
. slash_set_data_ez = 1,
@@ -492,7 +495,6 @@
. slash_set_data_swap = 12,
. slash_set_data_tregular = 13,
. slash_set_data_delimiters = 14,
- . slash_set_data_browse = 15,
. slash_set_data_strict = 16,
.
. slash_set_var_title = 1,
diff --git a/fer/common/xcommand.cmn b/fer/common/xcommand.cmn
index 5992f75..6539463 100644
--- a/fer/common/xcommand.cmn
+++ b/fer/common/xcommand.cmn
@@ -54,6 +54,7 @@
* to simplify future merges of Ferret into PyFerret
* /HALFSPAC adds a half space between the degree sign and E/W or N/S
* V7 *acm* 6/12 Add Union aggregations: DEFINE DATA/AGG/U
+* V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
* PARAMETERS are used to store numbers of subcommands and qualifiers for use
@@ -439,7 +440,7 @@
. total_num_commands = 30,
. total_num_subcommands = nsub_at31 - 1,
. total_num_qualifiers = nqual_at31a - 1,
- . num_predefined_alias = 26,
+ . num_predefined_alias = 25,
. max_queries = 50 )
* declarations
diff --git a/fer/dat/xcommand_data.F b/fer/dat/xcommand_data.F
index c682e5e..717880d 100644
--- a/fer/dat/xcommand_data.F
+++ b/fer/dat/xcommand_data.F
@@ -241,6 +241,8 @@
* 3/17 Added SHOW MEMORY/DIAGNOSTIC
* V720 *acm* 3/17 Ticket 2512: Add STAT/PRECISION=
* V720 *acm* 5/17 Ticket 2530 add WIRE/COLOR=
+* V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
+* V723 *acm* 11/17 New SAVE/ASGLOBAL option to write global attribute to netCDF file
*
* !!!!!!!!!!
@@ -364,7 +366,7 @@
DATA subcommands (nsub_at1 + 6) / 'DATA' /
DATA num_qualifs (nsub_at1 + 6) / nqual1g /
DATA qualifier_pointer(nsub_at1 + 6) / nqual_at1g /
-* SET DATA/FORM/GRID/TITL/SIZE/TYPE/BROWSE
+* SET DATA/FORM/GRID/TITL/SIZE/TYPE
DATA qualifiers (nqual_at1g+0) / 'EZ' /
DATA qualifiers (nqual_at1g+1) / 'VARIABLE' /
DATA qualifiers (nqual_at1g+2) / 'TITLE' /
@@ -378,8 +380,8 @@
DATA qualifiers (nqual_at1g+10) / 'TYPE' /
DATA qualifiers (nqual_at1g+11) / 'SWAP' /
DATA qualifiers (nqual_at1g+12) / 'REGULART' /
- DATA qualifiers (nqual_at1g+13) / 'DELIMITE' /
- DATA qualifiers (nqual_at1g+14) / 'BROWSE' /
+ DATA qualifiers (nqual_at1g+13) / 'DELIMITE' /
+ DATA qualifiers (nqual_at1g+14) / '****' /
DATA qualifiers (nqual_at1g+15) / 'STRICT' /
DATA qualifiers (nqual_at1g+16) / '****' /
DATA qualifiers (nqual_at1g+17) / '****' /
@@ -1025,7 +1027,7 @@
DATA qualifiers (nqual_at5a+53)/ 'OUTTYPE'/
DATA qualifiers (nqual_at5a+54)/ 'CURVILIN'/
DATA qualifiers (nqual_at5a+55)/ 'LAYERZ'/
- DATA qualifiers (nqual_at5a+56)/ '****'/
+ DATA qualifiers (nqual_at5a+56)/ 'ASGLOBAL'/
DATA qualifiers (nqual_at5a+57)/ '****'/
DATA qualifiers (nqual_at5a+58)/ '****'/
DATA qualifiers (nqual_at5a+59)/ '****'/
@@ -1851,34 +1853,31 @@
. alias_name(19) / 'KEYMARK' /,
. alias_len(19) / 23 /,
. alias(19) / 'PPL SHAKEY 1,,,,,,,,,,' /
- . alias_name(20) / 'OPEN' /,
- . alias_len(20) / 16 /,
- . alias(20) / 'SET DATA /BROWSE' /
- . alias_name(21) / 'RIBBON' /,
- . alias_len(21) / 11 /,
- . alias(21) / 'PLOT/RIBBON' /
- . alias_name(22) / 'ENSEMBLE' /,
+ . alias_name(20) / 'RIBBON' /,
+ . alias_len(20) / 11 /,
+ . alias(20) / 'PLOT/RIBBON' /
+ . alias_name(21) / 'ENSEMBLE' /,
+ . alias_len(21) / 22 /,
+ . alias(21) / 'DEFINE DATA/AGGREGAT/E' /
+ . alias_name(22) / 'FMRC' /,
. alias_len(22) / 22 /,
- . alias(22) / 'DEFINE DATA/AGGREGAT/E' /
- . alias_name(23) / 'FMRC' /,
- . alias_len(23) / 22 /,
- . alias(23) / 'DEFINE DATA/AGGREGAT/F' /
- . alias_name(24) / 'VTREE' /,
- . alias_len(24) / 13 /,
- . alias(24) / 'SHOW VAR/TREE' /,
- . alias_name(25) / 'TSERIES' /,
+ . alias(22) / 'DEFINE DATA/AGGREGAT/F' /
+ . alias_name(23) / 'VTREE' /,
+ . alias_len(23) / 13 /,
+ . alias(23) / 'SHOW VAR/TREE' /,
+ . alias_name(24) / 'TSERIES' /,
+ . alias_len(24) / 22 /,
+ . alias(24) / 'DEFINE DATA/AGGREGAT/T' /
+ . alias_name(25) / 'UNION' /,
. alias_len(25) / 22 /,
- . alias(25) / 'DEFINE DATA/AGGREGAT/T' /
- . alias_name(26) / 'UNION' /,
- . alias_len(26) / 22 /,
- . alias(26) / 'DEFINE DATA/AGGREGAT/U' /
+ . alias(25) / 'DEFINE DATA/AGGREGAT/U' /
DATA
. (alias_name(i),i=num_predefined_alias+1,150)
- . / 124*unspecified_name4 /,
- . (alias_len(i),i=num_predefined_alias+1,150) / 124*4 /,
+ . / 125*unspecified_name4 /,
+ . (alias_len(i),i=num_predefined_alias+1,150) / 125*4 /,
. (alias(i),i=num_predefined_alias+1,150)
- . / 124*unspecified_name4 /
+ . / 125*unspecified_name4 /
DATA queries(1) / 'STATUS' /,
diff --git a/fer/dat/xrevision_data.F b/fer/dat/xrevision_data.F
index 55903ca..5b20d6a 100644
--- a/fer/dat/xrevision_data.F
+++ b/fer/dat/xrevision_data.F
@@ -138,13 +138,16 @@
* v7.12 5/11/2017
* v7.13 6/ 6/2017 fixes to tickets 2538, 2539
* v7.20 7/11/2017 7.20 release
+* v7.21 9 /2017 7.21 release
+* v7.22 9/14/2017 7.22 dnamic coordinate storage
+* v7.3 11/30/2017 Release
IMPLICIT NONE
include 'xrevision.cmn'
DATA program_name / 'FERRET' /
DATA len_program_name / 6 /
- DATA revision_level / 7.21 /
+ DATA revision_level / 7.3 /
! Note we can put a debug title in the Ferret startup header lines
! by putting a title into the Makefile: $(MAKE) "DEBUG_TITLE=beta" update
diff --git a/fer/efi/eof_space.F b/fer/efi/eof_space.F
index 0836876..c6c5db8 100644
--- a/fer/efi/eof_space.F
+++ b/fer/efi/eof_space.F
@@ -106,7 +106,12 @@
* USER CONFIGURABLE PORTION |
* |
* V
-c CALL ef_set_desc(id, 'Compute EOF spacial fields from XYT field')
+
+* These funtions aren't quite right under double precision. Tolerances
+* and epsilons need to be set correctly for double precision computation.
+
+c CALL ef_set_desc(id,
+c . 'Compute EOF spacial fields from XYT field, gappy in T')
CALL ef_set_desc(id, 'Function NOT AVAILABLE in this Ferret version')
CALL ef_set_num_args(id, 2)
diff --git a/fer/efi/eof_stat.F b/fer/efi/eof_stat.F
index 5f5c220..fb3fa21 100644
--- a/fer/efi/eof_stat.F
+++ b/fer/efi/eof_stat.F
@@ -113,9 +113,12 @@
* |
* V
- CHARACTER*100 fcn_desc
+* These funtions aren't quite right under double precision. Tolerances
+* and epsilons need to be set correctly for double precision computation.
-c 10 FORMAT ('EOF statistics from XYT field. j=1:#EOFs, ',
+c CHARACTER*100 fcn_desc
+c
+c 10 FORMAT ('EOF statistics from XYT field, gappy in T. j=1:#EOFs, ',
c . 'j=2:%variation, j=3:eigenvalues' )
c WRITE (fcn_desc, 10)
c CALL ef_set_desc(id, fcn_desc)
diff --git a/fer/efi/eof_tfunc.F b/fer/efi/eof_tfunc.F
index 5a60283..1a16782 100644
--- a/fer/efi/eof_tfunc.F
+++ b/fer/efi/eof_tfunc.F
@@ -104,8 +104,12 @@
* USER CONFIGURABLE PORTION |
* |
* V
+
+* These funtions aren't quite right under double precision. Tolerances
+* and epsilons need to be set correctly for double precision computation.
+
c CALL ef_set_desc(id,
-c . 'Compute EOF time functions from XYT field.')
+c . 'Compute EOF time functions from XYT field. gappy in T.')
CALL ef_set_desc(id, 'Function NOT AVAILABLE in this Ferret version')
CALL ef_set_num_args(id, 2)
@@ -394,7 +398,6 @@ c . 'Compute EOF time functions from XYT field.')
. iw, jw, kw, lw, mw, nw
REAL frac_timeser
-
WRITE (err_msg,*)
. 'Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC'
CALL ef_bail_out (id, err_msg)
diff --git a/fer/efi/eofsvd_space.F b/fer/efi/eofsvd_space.F
index abbd921..90e3765 100644
--- a/fer/efi/eofsvd_space.F
+++ b/fer/efi/eofsvd_space.F
@@ -88,7 +88,7 @@
* USER CONFIGURABLE PORTION |
* |
* V
- CALL ef_set_desc(id, 'Return SVD EOF spacial fields from XYT field')
+ CALL ef_set_desc(id, 'Return SVD EOF spatial fields from XYT field')
CALL ef_set_num_args(id, 1)
diff --git a/fer/gnl/SOURCE_FILES b/fer/gnl/SOURCE_FILES
index 824b8e1..2c0727b 100644
--- a/fer/gnl/SOURCE_FILES
+++ b/fer/gnl/SOURCE_FILES
@@ -42,7 +42,6 @@ escape_for_xml.F\
fill_fmrc_time_gaps.F\
finalize_ferret.F\
float2string_for_xml.F\
-get_dataset_name.F\
get_fer_command.F\
get_fvars_list_by_attname_and_val.F\
get_context_mods.F\
diff --git a/fer/gnl/build_t_agg_axis.F b/fer/gnl/build_t_agg_axis.F
index a6caecf..5d4f6a2 100644
--- a/fer/gnl/build_t_agg_axis.F
+++ b/fer/gnl/build_t_agg_axis.F
@@ -57,6 +57,7 @@
* V71 2/17 *acm* ticket 2507, When agg axis matches an existing one, fix swapping
* of axis into grids - the swap axis may be in multiple grids.
* V71 2/17 *acm* ticket 2507, further fix for when several variables have the same grid.
+* V72 8/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
IMPLICIT NONE
include 'tmap_errors.parm'
@@ -74,6 +75,8 @@
include 'xcontext.cmn'
include 'xfr_grid.cmn'
include 'interp_stack.parm'
+ include 'calendar.decl'
+ include 'calendar.cmn'
include 'netcdf.inc'
@@ -99,7 +102,7 @@
* Argument definitions
LOGICAL t_regular, use_strict
INTEGER nagfiles, dset_num, status
- INTEGER memb_nsteps(nagfiles), memb_order(nagfiles)
+ INTEGER memb_nsteps(nagfiles), memb_order(nagfiles), memb_tline(nagfiles)
REAL*8 memb_tstep_start(nagfiles), memb_tstep_end(nagfiles)
CHARACTER*512 memb_filename(nagfiles)
@@ -108,15 +111,18 @@
LOGICAL TM_DFPEQ_TOL, ITSA_TRUEMONTH_AXIS, need_midpoints, need_T0_adjust,
. swap_axes, true_month, memb_true_month
INTEGER TM_LENSTR1, TM_GET_CALENDAR_ID, TM_FIND_LIKE_DYN_LINE,
- . taxis, nsteps, max_line_available, dtype, vlen, blen,
- . i, ifile, istep, ivar, TMAP_status, isubsc1,
+ . taxis, nsteps, dtype, vlen, blen,
+ . i, ifile, istep, ivar, TMAP_status,
. cdfid, vid, bounds_id, gg, ilo, ihi, l, imemb,
. startpts(2), numpts(2), d1s, d1e, d2s, d2e,
. agg_unit_code, file_unit_code, agg_cal_id, pre_exist,
- . nsteps_trumon
- REAL TM_WORLD_AX, T0_ADJUST,
+ . nsteps_trumon, iline, sumstep, bigline
+ REAL TM_WORLD_AX, T0_ADJUST, GET_LINE_COORD, TM_WW_AXLEN,
+ . SECS_FROM_BC,
. tt, delta, highest_tstep, dfirst_delta,
- . depsilon, start, tunit, coord_hi, hdel, coord_new
+ . depsilon, start, tunit, hdel, tstep, tedge, tn,
+ . memb_sort(nagfiles), axwwlen, bc_to_t0, secsperyear,
+ . secs2start, timefac
CHARACTER LEFINT*20, lname*20, vname*64, bname*12, units_str*128,
. calendar_str*128, agg_t0_str*20, file_t0_str*20
@@ -125,13 +131,17 @@
REAL depsilon_46
PARAMETER (depsilon_46 = 2.**(-46))
+* initialize
+ DO i = 1, nagfiles
+ memb_tline(i) = unspecified_int4
+ ENDDO
+
* initialize using information from the first file of the aggregation
taxis = ds_time_axis(dset_num)
IF (taxis .EQ. mnormal) GOTO 5050 ! no time axis?
nsteps = line_dim(taxis) ! n steps in first file ... will grow
vname = line_name_orig(taxis)
vlen = TM_LENSTR1(vname)
- max_line_available = maxlinestore
dtype = unspecified_int4 ! irrelevant from older netCD
need_midpoints = .FALSE. ! assume cell edges are provided
agg_unit_code = line_unit_code(taxis)
@@ -145,238 +155,47 @@
* new.
* Was the first file found to have a true-monthly time axis?
-c true_month = ITSA_TRUEMONTH_AXIS (taxis)
+* (see old versions of this in SVN and update them, if we want to do true-month axis handling.)
+
true_month = .FALSE.
-c IF (true_month .AND. .NOT.t_regular) THEN
-c
-c* Loop through the files of the aggregation, checking for more compatible true-month axes.
-c* The time axis from member 1 is not in line_mem, so just keep reading into the next slots
-c
-c nsteps_trumon = nsteps
-c isubsc1 = next_line_mem_pos
-c
-c coord_hi = line_start(taxis) + (nsteps-1)* line_delta(taxis)
-c
-c* Translate fake true-month timestep to actual month-length step.
-c
-c CALL TM_TCOORD_TRUMONTH (taxis, coord_hi,
-c . box_middle, coord_new)
-c
-c memb_order(1) = 1
-c memb_nsteps(1) = nsteps
-c memb_tstep_start(1) = line_start(taxis)
-c memb_tstep_end (1) = coord_new
-c
-c TMLOOP: DO ifile = 2, nagfiles
-c* ... first read the length of the time axis from the file to be aggregated
-c CALL CD_QUIK_NCOPEN (dset_num, memb_filename(ifile),
-c . vname(:vlen),
-c . cdfid, vid, bounds_id,
-c . units_str, calendar_str,
-c . nsteps, TMAP_status)
-c IF (TMAP_status .NE. merr_ok) GOTO 5010
-c* ... check to see if calendar, units, and T0 are consistent with the agg axis
-c CALL CD_GET_T0(memb_filename(ifile), units_str, calendar_str,
-c . agg_cal_id, file_unit_code, file_t0_str, status)
-c
-c IF (next_line_mem_pos+nsteps .GT. max_line_available) GOTO 5100
-c
-c* ... read the array of time steps from the file and read or compute bounds
-c CALL CD_RD_R8_ARR(cdfid, vid,1, nsteps,dtype,vname(:vlen),
-c . line_mem(isubsc1), status)
-c IF ( status .NE. merr_ok ) GOTO 5010
-c
-c IF (bounds_id .NE. unspecified_int4) THEN
-c
-c startpts(1) = 1
-c startpts(2) = 1
-c numpts(1) = 1
-c numpts(2) = nsteps
-c
-c d1s = startpts(1)
-c d1e = numpts(1)
-c d2s = startpts(2)
-c d2e = numpts(2)
-c bname = 'bounds array'
-c blen = 12
-c
-c CALL CD_RD_R8_BNDS( cdfid, bounds_id,
-c . startpts, numpts, dtype, bname(:blen),
-c . line_mem(isubsc1+nsteps),
-c . d1s, d1e, d2s, d2e, status )
-c IF ( status .NE. merr_ok ) GOTO 5010
-c
-c ELSE
-c CALL TM_IRREGAX_MID( isubsc1,isubsc1 )
-c ENDIF
-c
-c CALL TM_CHECK_MONTHLY_AXIS (line_mem(isubsc1), nsteps, agg_cal_id,
-c . file_T0_str, file_unit_code, units_str,
-c . start, delta, tunit, memb_true_month)
-c
-c* Also bail on true-month if the units or t0 are different.
-c
-c need_T0_adjust = (file_unit_code .NE. agg_unit_code)
-c . .OR. (file_T0_str .NE. agg_T0_str)
-c IF (need_T0_adjust) memb_true_month = .FALSE.
-c
-c! check value of "start" relative to the stored axis -- checking sorting.
-c IF (start .LT. coord_hi) memb_true_month = .FALSE.
-c IF (start-coord_hi .GT. 2.*line_delta(taxis)) memb_true_month = .FALSE.
-c IF (delta .NE. line_delta(taxis)) memb_true_month = .FALSE.
-c
-c IF (.NOT.memb_true_month) EXIT TMLOOP ! from loop
-c
-c nsteps_trumon = nsteps_trumon + nsteps
-c coord_hi = line_start(taxis) + (nsteps_trumon-1)* line_delta(taxis)
-c
-c* Translate fake true-month timestep to actual month-length step.
-c
-c CALL TM_TCOORD_TRUMONTH (taxis, coord_hi,
-c . box_middle, coord_new)
-c
-c memb_order(ifile) = ifile
-c memb_nsteps(ifile) = nsteps
-c memb_tstep_start(ifile) = start
-c memb_tstep_end(ifile) = coord_new
-c
-c line_dim(taxis) = nsteps_trumon
-c t_regular = .TRUE.
-c
-c ENDDO TMLOOP
-c
-c* ... If some month isn't a true-mnth axis, then we will not use a true-month axis.
-c* Get the original coordinates from the first member set and continue.
-c
-c IF (true_month .AND. .NOT.memb_true_month) THEN
-c
-c t_regular = .FALSE.
-c ifile = 1
-c CALL CD_QUIK_NCOPEN (dset_num, memb_filename(ifile),
-c . vname(:vlen),
-c . cdfid, vid, bounds_id,
-c . units_str, calendar_str,
-c . nsteps, TMAP_status)
-c IF (TMAP_status .NE. merr_ok) GOTO 5010
-c* ... check to see if calendar, units, and T0 are consistent with the agg axis
-c CALL CD_GET_T0(memb_filename(ifile), units_str, calendar_str,
-c . agg_cal_id, file_unit_code, file_t0_str, status)
-c
-c* ... read the array of time steps from the file
-c CALL CD_RD_R8_ARR(cdfid, vid,1, nsteps,dtype,vname(:vlen),
-c . line_mem(isubsc1), status)
-c line_regular(taxis) = .FALSE.
-c line_unit_code(taxis) = file_unit_code
-c agg_unit_code = file_unit_code
-c line_delta(taxis) = unspecified_val8
-c
-c IF (bounds_id .NE. unspecified_int4) THEN
-c
-c startpts(1) = 1
-c startpts(2) = 1
-c numpts(1) = 1
-c numpts(2) = nsteps
-c
-c d1s = startpts(1)
-c d1e = numpts(1)
-c d2s = startpts(2)
-c d2e = numpts(2)
-c bname = 'bounds array'
-c blen = 12
-c
-c CALL CD_RD_R8_BNDS( cdfid, bounds_id,
-c . startpts, numpts, dtype, bname(:blen),
-c . line_mem(isubsc1+nsteps),
-c . d1s, d1e, d2s, d2e, status )
-c ELSE
-c CALL TM_IRREGAX_MID( isubsc1,isubsc1 )
-c ENDIF
-c
-c true_month = .FALSE.
-c ENDIF
-c
-c ENDIF ! true_month
-
-* Do some of the member sets need bounds? If so then get them for all sets.
-c IF (.NOT.t_regular .AND. line_regular(taxis)) THEN
-c need_midpoints = .TRUE.
-c DO ifile = 1, nagfiles
-c CALL CD_QUIK_NCOPEN (dset_num, memb_filename(ifile),
-c . vname(:vlen),
-c . cdfid, vid, bounds_id,
-c . units_str, calendar_str,
-c . nsteps, TMAP_status)
-c IF (bounds_id .NE. unspecified_int4) need_midpoints = .FALSE.
-c
-c ENDDO
-c IF (.NOT. need_midpoints) THEN ! fill in coordinats and bounds for first member set
-c hdel = line_delta(taxis)/2.
-c DO istep = 0, nsteps-1
-c line_mem(next_line_mem_pos+istep) = line_start(taxis)
-c . + istep*line_delta(taxis)
-c line_mem(next_line_mem_pos+nsteps+istep) =
-c . line_mem(next_line_mem_pos+istep) - hdel
-c line_mem(next_line_mem_pos+nsteps+istep+1) =
-c . line_mem(next_line_mem_pos+istep) + hdel
-c ENDDO
-c ENDIF
-c ENDIF
+* Put the first datasets timesteps into a new line. We will put the final
+* aggregated time axis into the line taxis at the end.
+
+ CALL TM_ALLO_TMP_LINE(iline, status)
+ memb_tline(1) = iline
+ CALL GET_LINE_DYNMEM (nsteps, iline, status)
+ IF (status .NE. ferr_ok) GOTO 5100
* set up for a regular or irregular T-agg axis as requested by t_regular
+
IF (t_regular .AND. .NOT.line_regular(taxis)) THEN
CALL WARN('/T_REGULAR NOT YET IMPLEMENTED')
! T_REGULAR HAS NEVER BEEN TESTED
!* ... convert the irregular t axis of 1st file into a forced-regular axis
-! line_start(taxis) = line_mem(line_subsc1(taxis))
+! line_start(taxis) = GET_LINE_COORD (lineedg(taxis)%ptr, 1)
! line_regular(taxis) = .TRUE.
-!* !! TODO: WE SHOULD REALLY GARBAGE COLLECT THE ABANDONED SPACE OCCUPIED BY
-!* THE IRREGULAR COORDINATES OF THE FIRST FILE IN THE T-AGG
-!* SEE PACK_LINE_STORAGE
-!* quik garb collect if T-axis happens to be the last one in memory
-! IF (next_line_mem_pos .EQ. line_subsc1(taxis) + nsteps) THEN
-! next_line_mem_pos = line_subsc1(taxis) ! ouch! orphan some coords
-! line_subsc1(taxis) = unspecified_int4
-! ENDIF
+
+!* !! TODO: cancel the dynamic line storage for taxis,...
+
ELSEIF (.NOT.t_regular .AND. line_regular(taxis)) THEN
* ... convert the so-far regular 1st file axis into a forced-irregular axis
- IF (next_line_mem_pos+2*line_dim(taxis)+1
- . .GT.maxlinestore) GOTO 5100
+
line_regular(taxis) = .FALSE.
- line_subsc1(taxis) = next_line_mem_pos
- DO istep = 0, nsteps-1
- line_mem(next_line_mem_pos+istep) = line_start(taxis)
- . + istep*line_delta(taxis)
+
+ DO istep = 1, nsteps
+ CALL PUT_LINE_COORD ( linemem(iline)%ptr, istep, line_start(taxis)
+ . + (istep-1)* line_delta(taxis) )
ENDDO
- line_delta(taxis) = unspecified_val8
+ line_delta(iline) = unspecified_val8
need_midpoints = .TRUE.
+
ELSEIF (.NOT.t_regular .AND. .NOT.line_regular(taxis)) THEN
-* ... make sure this axis is the last one currently stored in line_mem
- IF (next_line_mem_pos .GT. line_subsc1(taxis) + 2*nsteps + 1)
- . THEN
-* !! TODO: WE SHOULD REALLY GARBAGE COLLECT THE ABANDONED SPACE OCCUPIED BY
-* THE ORIGINAL IRREGULAR COORDINATES OF THE FIRST FILE IN THE T-AGG
-* SEE PACK_LINE_STORAGE
-* ... copy the time steps and bounds from the first file to the top
- DO istep = 0, 2*nsteps
- line_mem(next_line_mem_pos+istep)
- . = line_mem(line_subsc1(taxis)+istep)
- ENDDO
- line_subsc1(taxis) = next_line_mem_pos
- ENDIF
-* ... copy the cell boundaries to high memory in reversed order
- max_line_available = max_line_available - nsteps
- ilo = line_subsc1(taxis) + nsteps
- ihi = max_line_available + nsteps
- DO istep = 0, nsteps
- line_mem(ihi) = line_mem(ilo)
- ilo = ilo+1
- ihi = ihi-1
- ENDDO
-
+ CALL COPY_LINE_COORDS (linemem(taxis)%ptr, linemem(iline)%ptr, nsteps)
+ CALL COPY_LINE_COORDS (lineedg(taxis)%ptr, lineedg(iline)%ptr, nsteps+1)
ENDIF
-**************
+**
* Loop through the files of the aggregation, appending time step values.
* Different logic applies if the caller passed in the time axis metadata.
* Because the length of the aggregated T axis is not in general known until
@@ -386,11 +205,14 @@ c ENDIF
* of the line_mem array working backwards, copying them into their proper
* position after the cell marker coordinates are all in place.
+
+! dynamic coord storage: How to do this? define temporary lines and aggregate them when all done?
+
IF (memb_nsteps(1) .NE. unspecified_int4) THEN
!!!!! THIS LOGIC HAS NOT BEEN TESTED -- INTENDED FOR PYTHON INTERFACE
-***
+
* time metadata has been provided by caller (i.e. python program)
* note that the metadata of the first file is ignored since already read
* directly from the file, itself
@@ -404,32 +226,33 @@ c ENDIF
! ENDDO
ELSE
DO ifile = 2, nagfiles
- line_dim(taxis) = line_dim(taxis) + memb_nsteps(ifile)
- IF (next_line_mem_pos+line_dim(taxis)+memb_nsteps(ifile)
- . .GT.maxlinestore) GOTO 5100
+
IF (memb_nsteps(ifile) .GT. 1 ) THEN
delta = (memb_tstep_end(ifile) - memb_tstep_start(ifile))
. / (memb_nsteps(ifile)-1)
ELSE
delta = 0.0
ENDIF
- DO istep = 0, memb_nsteps(ifile)-1
- line_mem(next_line_mem_pos+line_dim(taxis)+istep)
- . = memb_tstep_start(ifile) + delta*istep
- ENDDO
+c DO istep = 0, memb_nsteps(ifile)-1
+c line_mem(next_line_mem_pos+line_dim(taxis)+istep)
+c . = memb_tstep_start(ifile) + delta*istep
+c untested....
+c CALL PUT_LINE_COORD ( linemem(iline)%ptr, istep, line_start(taxis)
+c . + (istep-1)* line_delta(taxis) )
+
+c ENDDO
line_dim(taxis) = line_dim(taxis) + memb_nsteps(ifile)
ENDDO
need_midpoints = .TRUE.
ENDIF
ELSE
-
-***
* time metadata has not been provided - we must read it from the files
* insert the metadata of the first file (so far opened as netCDF dataset)
- memb_nsteps (1) = nsteps
- memb_tstep_start(1) = TM_WORLD_AX(1, taxis,box_middle)
- memb_tstep_end (1) = TM_WORLD_AX(nsteps,taxis,box_middle)
+ ifile = 1
+ memb_nsteps (ifile) = nsteps
+ memb_tstep_start(ifile) = GET_LINE_COORD (linemem(iline)%ptr, 1)
+ memb_tstep_end (ifile) = GET_LINE_COORD (linemem(iline)%ptr, nsteps)
IF (t_regular) THEN
CALL WARN('/T_REGULAR NOT YET IMPLEMENTED')
@@ -466,6 +289,7 @@ c ENDIF
! IF ( status .NE. merr_ok ) GOTO 5010
! ENDDO
ELSE
+
DO ifile = 2, nagfiles
* ... first read the length of the time axis from the file to be aggregated
CALL CD_QUIK_NCOPEN (dset_num, memb_filename(ifile),
@@ -483,27 +307,29 @@ c ENDIF
. file_unit_code, file_t0_str,
. agg_unit_code, agg_t0_str, status )
memb_nsteps(ifile) = nsteps
- max_line_available = max_line_available-(nsteps+1) ! n+1 edges
- IF (next_line_mem_pos+line_dim(taxis)+nsteps
- . .GT.max_line_available) GOTO 5100
+
+* grab a temporary dynamic axis slot for it
+ CALL TM_ALLO_TMP_LINE(iline, status)
+ memb_tline(ifile) = iline
+
+ CALL GET_LINE_DYNMEM (nsteps, iline, status)
+ IF (status .NE. ferr_ok) GOTO 5100
+
* ... read the array of time steps from the file
- isubsc1 = line_subsc1(taxis)+line_dim(taxis)
CALL CD_RD_R8_ARR(cdfid, vid,1, nsteps,dtype,vname(:vlen),
- . line_mem(isubsc1), status)
+ . linemem(iline)%ptr, status)
IF ( status .NE. merr_ok ) GOTO 5010
-
-
* ... adjust the time step values to the agg-chosen "<units> since <T0>"
IF (need_T0_adjust) THEN
- DO istep = isubsc1, isubsc1+nsteps-1
- line_mem(istep) = T0_ADJUST(line_mem(istep))
+ DO istep = 1, nsteps
+ tstep = GET_LINE_COORD (linemem(iline)%ptr, istep)
+ CALL PUT_LINE_COORD ( linemem(iline)%ptr, istep, T0_ADJUST(tstep))
ENDDO
ENDIF
- line_dim(taxis) = line_dim(taxis) + nsteps
- memb_tstep_start(ifile) = line_mem(isubsc1)
- memb_tstep_end (ifile) = line_mem(isubsc1+nsteps-1)
+ memb_tstep_start(ifile) = GET_LINE_COORD (linemem(iline)%ptr, 1)
+ memb_tstep_end (ifile) = GET_LINE_COORD (linemem(iline)%ptr, nsteps)
IF (bounds_id .EQ. unspecified_int4) THEN
* ... cell boundaries NOT available in this file
@@ -534,7 +360,7 @@ c ENDIF
CALL CD_RD_R8_BNDS( cdfid, bounds_id,
. startpts, numpts, dtype, bname(:blen),
- . line_mem(max_line_available),
+ . lineedg(iline)%ptr,
. d1s, d1e, d2s, d2e, status )
IF ( status .NE. merr_ok ) GOTO 5010
@@ -551,25 +377,16 @@ c ENDIF
CALL CD_RD_R8_BNDS( cdfid, bounds_id,
. startpts, numpts, dtype, bname(:blen),
- . line_mem(max_line_available+nsteps),
+ . tedge,
. d1s, d1e, d2s, d2e, status )
IF ( status .NE. merr_ok ) GOTO 5010
-
-* ... reorder the newest nstep+1 bounds values into backwards order,
-* ensuring one pass through the loop for single-step axis
- DO istep = 0, MAX(0,nsteps/2-1)
-
- ilo = max_line_available+istep
- ihi = max_line_available+nsteps-istep
- tt = line_mem(ilo)
- line_mem(ilo) = line_mem(ihi)
- line_mem(ihi) = tt
- ENDDO
+ CALL PUT_LINE_COORD ( lineedg(iline)%ptr, nsteps+1, tedge)
* ... adjust the bounds values to the agg-wide "<units> since <T0>"
IF (need_T0_adjust) THEN
- DO istep = max_line_available, max_line_available+nsteps
- line_mem(istep) = T0_ADJUST(line_mem(istep))
+ DO istep = 1, nsteps+1
+ tstep = GET_LINE_COORD (lineedg(iline)%ptr, istep)
+ CALL PUT_LINE_COORD ( lineedg(iline)%ptr, istep, T0_ADJUST(tstep))
ENDDO
ENDIF
ENDIF
@@ -578,149 +395,159 @@ c ENDIF
ENDDO ! end of member file loop
ENDIF
ENDIF
- nsteps = line_dim(taxis) ! length of aggregated axis
-****** START: check over and finalize the aggregation time axis
+* START: check over and finalize the aggregation time axis
IF (.NOT.t_regular) THEN
- IF (.NOT.need_midpoints) THEN
-* explicit cell boundaries have been stored in high line_mem indices
-* note that instead of nsteps+1 edges, at this point we have nsteps+nagfiles
-* because each member file has contributed both a low and a hgh edge
-* we have held onto the extra points because the member order may be re-sorted
-* 1. reorder the cell bounds back to forwards order
-* 2. move the cell bounds from temporary storage to their normal position
-
-* ... 1. reorder the bounds to forward order
- ilo = max_line_available
- ihi = ilo + nsteps + nagfiles - 1
- DO istep = 0, (nsteps+nagfiles)/2
- tt = line_mem(ilo)
- line_mem(ilo) = line_mem(ihi)
- line_mem(ihi) = tt
- ilo = ilo + 1
- ihi = ihi - 1
- IF (ihi .LT. ilo) EXIT ! exit loop; 1-point axes casuses this
- ENDDO
+* if the files as provided were out of order, then sort them here
+* sort the time coordinates and bounds in line_mem to match the sort order
+* on return, memb_order has been set, and nsteps is the sum of steps in all files
+
+ DO i = 1, nagfiles
+ memb_sort(i) = memb_tstep_start(i)
+ ENDDO
+ CALL SORT_TSERIES_DSETS(nagfiles, nsteps, need_midpoints,
+ . memb_nsteps, memb_order, memb_sort )
+
+* combine the coordinates for all lines in orde
+
+ CALL TM_ALLO_TMP_LINE(bigline, status)
+ CALL GET_LINE_DYNMEM (nsteps, bigline, status)
+ IF (status .NE. ferr_ok) GOTO 5100
+
+ line_dim(bigline) = nsteps
+
+ i = 1
+ ifile = memb_order(i)
+ iline = memb_tline(ifile)
+ sumstep = memb_nsteps(ifile)
+
+ CALL COPY_LINE_COORDS (linemem(iline)%ptr, linemem(bigline)%ptr, sumstep)
+
+* Copy the edges, (but not the uppermost one? Or, as we fill them in, check the upper
+* bound from each member set matches or not inconsistent with the lower of the next??
+ IF (.NOT. need_midpoints)
+ . CALL COPY_LINE_COORDS (lineedg(iline)%ptr, lineedg(bigline)%ptr, sumstep)
+
+C check for overlap? done in the sort?
+c tlast = GET_LINE_COORD (linemem(bigline)%ptr, istep) ! last time coordinate
+c elast = GET_LINE_COORD (lineedg(bigline)%ptr, istep+1) ! upper gridcell edge
+C check for overlap???
+
+ DO i = 2, nagfiles
+ ifile = memb_order(i)
+ iline = memb_tline(ifile)
+
+ DO istep = 1, memb_nsteps(ifile)
+ sumstep = sumstep + 1
+ tstep = GET_LINE_COORD (linemem(iline)%ptr, istep)
+ CALL PUT_LINE_COORD ( linemem(bigline)%ptr, sumstep, tstep)
+
+ IF (.NOT.need_midpoints) THEN
+ tstep = GET_LINE_COORD (lineedg(iline)%ptr, istep)
+ CALL PUT_LINE_COORD ( lineedg(bigline)%ptr, sumstep, tstep)
+ ENDIF
-* ... 2. shift the bounds down to sit just after the coordinates
- ilo = line_subsc1(taxis) + nsteps
- ihi = max_line_available
- DO istep = 0, nsteps+nagfiles-1
- line_mem(ilo) = line_mem(ihi)
- line_mem(ihi) = bad_val4 ! for good house-keeping
- ilo = ilo + 1
- ihi = ihi + 1
ENDDO
- ENDIF
-* if the fileas as provided were out of order, then sort them here
-* sort the time coordinates and bounds in line_mem to match the sort order
- CALL SORT_TSERIES_DSETS(nagfiles, nsteps, need_midpoints,
- . memb_nsteps, memb_order,
- . line_mem(line_subsc1(taxis)),
- . line_mem(line_subsc1(taxis)+nsteps) )
+ ENDDO
-* deal with cell boundaries
- next_line_mem_pos = next_line_mem_pos + 2*nsteps + 1
+* Uppermost cell edge.
+
+ IF (.NOT.need_midpoints) THEN
+ tstep = GET_LINE_COORD (lineedg(iline)%ptr, memb_nsteps(nagfiles)+1)
+ CALL PUT_LINE_COORD ( lineedg(bigline)%ptr, sumstep+1, tstep)
+ ENDIF
+* deal with cell boundaries
* ... compute time midpoints if not supplied
- IF (need_midpoints) THEN
- IF (line_subsc1(taxis)+2*nsteps+1.GT.maxlinestore) GOTO 5100
- CALL TM_IRREGAX_MID(line_subsc1(taxis), nsteps)
+ IF (need_midpoints)
+ . CALL TM_IRREGAX_MID( linemem(bigline)%ptr, lineedg(bigline)%ptr, nsteps )
- ELSE
+* We have now gathered all the coordinates. Re-allocate taxis and put them there,
+* so all the grid setup remains as is
-* remove the duplicated cell edges: top of file k duplicates bottom of file k+1
-* istep counts time steps in the aggregated time axis
-* ifile counts the member files
-* imemb counts the time step in the member current file
- ilo = line_subsc1(taxis) + nsteps
- i = 1
- ifile = memb_order(i)
- imemb = memb_nsteps(ifile) ! start at top of first file
- istep = imemb
- DO WHILE (istep .LE. nsteps)
- istep = istep + 1
- imemb = imemb + 1
- IF (imemb .GT. memb_nsteps(ifile)) THEN
-* ... start of next member file
-* ... skipping the top cell edge of each file
- i = i + 1
- IF (i .LE. nagfiles) ifile = memb_order(i)
- imemb = 1
- ENDIF
- l = ilo + istep
- line_mem(l) = line_mem(l+i-1)
- ENDDO
-* ... copy (dont skip) the upper edge of the aggregate axis
- line_mem(l+1) = line_mem(l+i)
- ENDIF
+ CALL FREE_LINE_DYNMEM (taxis)
+ CALL GET_LINE_DYNMEM (nsteps, taxis, status)
+ IF (status .NE. ferr_ok) GOTO 5100
+
+ CALL COPY_LINE_COORDS (linemem(bigline)%ptr, linemem(taxis)%ptr, sumstep)
+ CALL COPY_LINE_COORDS (lineedg(bigline)%ptr, lineedg(taxis)%ptr, sumstep+1)
+ CALL TM_DEALLO_DYN_LINE(bigline)
+ CALL FREE_LINE_DYNMEM (bigline)
+
+ line_dim(taxis) = nsteps
* if the coordinates have been saved as irregular we must now
* check to see if the coords may be regular after all
+ dfirst_delta = GET_LINE_COORD (linemem(taxis)%ptr, 2) - GET_LINE_COORD (linemem(taxis)%ptr, 1)
+
* ... first sanity check monotonicity and bounds bracketing
IF (nsteps.EQ.1) GOTO 100
- ilo = line_subsc1(taxis) ! L step on agg taxis
- ihi = ilo + nsteps - 1
- dfirst_delta = line_mem(ilo+1) - line_mem(ilo)
- depsilon = depsilon_46 * 2.*(ABS(line_mem(ilo))
- . / dfirst_delta )
+
+ tt = GET_LINE_COORD (linemem(taxis)%ptr, 1)
+ tedge = GET_LINE_COORD (lineedg(taxis)%ptr, 1)
+
+* Use this double loop to report errors relative to the member datasets
+ istep = 1
DO i = 1, nagfiles
ifile = memb_order(i)
- DO l = 1, memb_nsteps(ifile) ! timestep within memer files
+ DO l = 1, memb_nsteps(ifile) ! timestep within member files
IF (i.EQ.1 .AND. l.EQ.1) THEN
CYCLE ! 1st point on axis
ELSE
- ilo = ilo + 1
- tt = line_mem(ilo)
- IF (tt .LE. line_mem(ilo-1)) GOTO 5300
- IF (tt .LT. line_mem(ilo+nsteps)) GOTO 5400 ! lo bnd chk
- ENDIF
+ istep = istep + 1
+ tn = GET_LINE_COORD (linemem(taxis)%ptr, istep)
+ tedge = GET_LINE_COORD (lineedg(taxis)%ptr, istep)
+ IF (tn .LE. tt) GOTO 5300
+ IF (tn .LE. tedge) GOTO 5400
+ tt = tn
+ ENDIF
ENDDO
ENDDO
+
ifile = memb_order(nagfiles) ! for error message
- IF (tt .GT. line_mem(ilo+nsteps+1)) GOTO 5400 ! hi bnd chk
* check regularity of cell positions
- ilo = line_subsc1(taxis)
+
DO istep = 1, nsteps-1
- ilo = ilo + 1
- delta = line_mem(ilo) - line_mem(ilo-1)
+ delta = GET_LINE_COORD (linemem(taxis)%ptr, istep+1) -
+ . GET_LINE_COORD (linemem(taxis)%ptr, istep)
IF (.NOT.TM_DFPEQ_TOL(dfirst_delta, delta, depsilon) )
. GOTO 200
ENDDO
* check regularity of cell bounds
- ilo = line_subsc1(taxis) + nsteps ! lower cell bound of 1st pt
- DO istep = ilo, ilo+nsteps-1
- delta = line_mem(istep+1) - line_mem(istep)
- IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, delta, depsilon) )
+ DO istep = 1, nsteps-1
+ delta = GET_LINE_COORD (lineedg(taxis)%ptr, istep+1) -
+ . GET_LINE_COORD (lineedg(taxis)%ptr, istep)
+ IF (.NOT.TM_DFPEQ_TOL(dfirst_delta, delta, depsilon) )
. GOTO 200
ENDDO
* It's regular after all! - change from irregular designation
100 CONTINUE
- ilo = line_subsc1(taxis)
- ihi = ilo + nsteps - 1
line_regular(taxis) = .TRUE.
- line_start (taxis) = line_mem(ilo)
+ line_start (taxis) = GET_LINE_COORD (linemem(taxis)%ptr, 1)
IF (nsteps .GT. 1) THEN
- line_delta(taxis) = (line_mem(ihi)-line_mem(ilo))/(nsteps-1)
+ line_delta(taxis) = dfirst_delta
ELSE
line_delta(taxis) = 1.0 ! arbitrary
ENDIF
- line_subsc1 (taxis) = unspecified_int4
- next_line_mem_pos = next_line_mem_pos - (2*nsteps + 1) ! restore
+ CALL FREE_LINE_DYNMEM (taxis)
+
ENDIF
-****** END: check over and finalize the time axis
+* END: check over and finalize the time axis
* does this new time axis match an existing one?
200 pre_exist = TM_FIND_LIKE_DYN_LINE( taxis )
swap_axes = pre_exist .NE. unspecified_int4
- IF (swap_axes) ds_time_axis(dset_num) = pre_exist
+ IF (swap_axes) THEN
+ ds_time_axis(dset_num) = pre_exist
+ IF (.NOT.line_regular(taxis) ) CALL FREE_LINE_DYNMEM (taxis)
+ ENDIF
* correct all time-dependent variables in this dataset
* ... the upper L limit was set based upon the first file, alone
@@ -751,35 +578,60 @@ c ENDIF
ENDIF
500 CONTINUE
ENDDO
- IF (swap_axes) taxis = pre_exist
+ IF (swap_axes) THEN
+ IF (.NOT.line_regular(taxis)) CALL TM_DEALLO_DYN_LINE(taxis)
+ bigline = pre_exist
+ ENDIF
* Is the axis we have created a monthly axis? IF so store it as such.
+* when and if we implement this go back to SVN for the code, and
+* modify it for dynamic-coordinate-memory.
+
+* Should this axis be treated as a modulo axis?
+
+ taxis = ds_time_axis(dset_num)
+ axwwlen = 0.
+ axwwlen = TM_WW_AXLEN(taxis)
+
+ secsperyear = DBLE(cals_yeardays(agg_cal_id)) * (24.D0 * 60.D0 * 60.D0)
+ bc_to_t0 = SECS_FROM_BC( line_t0(taxis), agg_cal_id, status)
+ CALL TM_WW_AX_1_N(taxis, start, tstep)
+ secs2start = bc_to_t0 + start*line_tunit(taxis)
+
+* Set the conversion factor for true-month, months to days
+ grid_line(t_dim, dgrid_buff) = taxis
+ CALL TM_MONTH_TIME_FACTOR (dgrid_buff, true_month, timefac)
+ IF (true_month) secs2start = secs2start/ timefac
+
+ line_modulo(taxis) = .FALSE.
+ line_modulo_len( taxis ) = 0.
+
+ IF ( (secs2start .LE. secsperyear)
+ . .AND. (axwwlen*line_tunit(taxis) .LE. secsperyear) ) THEN
+ line_modulo(taxis) = .TRUE.
+ line_modulo_len( taxis ) = timefac* secsperyear/line_tunit(taxis)
+
+ ENDIF
+
+
+
+* Free the temporary line memory used for member datasets
+
+ 5000 CONTINUE
+ DO i = 1, nagfiles
+ IF (memb_tline(i) .NE. unspecified_int4) THEN
+ CALL TM_DEALLO_DYN_LINE(memb_tline(i))
+ CALL FREE_LINE_DYNMEM (memb_tline(i))
+ ENDIF
+ ENDDO
-c IF (.NOT. true_month .AND. .NOT.line_regular(taxis)) THEN
-c CALL TM_CHECK_MONTHLY_AXIS (line_mem( line_subsc1(taxis)), line_dim(taxis), agg_cal_id,
-c . agg_T0_str, agg_unit_code, units_str,
-c . start, delta, tunit, true_month)
-c IF (true_month) THEN
-c line_regular(taxis) = .TRUE.
-c line_start (taxis) = start
-c line_delta (taxis) = delta
-c line_subsc1 (taxis) = unspecified_int4
-c line_unit_code (taxis) = agg_unit_code
-c line_units (taxis) = units_str
-c line_tunit (taxis) = un_convert(agg_unit_code)
-c ENDIF
-c ENDIF
-c
-
- 5000 RETURN
+ RETURN
5010 CALL ERRMSG( ferr_TMAP_error, status, ' ', *5000 )
5050 CALL ERRMSG( ferr_grid_definition, status,
. 'first file of aggregation has no time axis '
. //memb_filename(1), *5000 )
5100 CALL ERRMSG(ferr_insuff_memory,status,
. 'unable to define T aggregation axis', *5000)
- 5200 CALL ERRMSG(ferr_internal, status, 'define_ef_aggregate_grid!',
- . *5000)
5300 lname = LEFINT(l, blen)
CALL ERRMSG( ferr_grid_definition, status,
. 'time axis is not monotonic at L='
diff --git a/fer/gnl/cdf_list.F b/fer/gnl/cdf_list.F
index 455ee18..fdb56da 100644
--- a/fer/gnl/cdf_list.F
+++ b/fer/gnl/cdf_list.F
@@ -1,7 +1,8 @@
SUBROUTINE CDF_LIST ( fname, append, crecdim, nvars,
. mr_list, cx_list, title, enhead, mode,
. clobber, edges_flag, do_bounds,
- . keepax_flag, out_type, quiet, status )
+ . keepax_flag, out_type, quiet, as_global,
+ . status )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -160,10 +161,14 @@
CHARACTER*1 crecdim
* internal variable declarations:
+
+ INTEGER max_len
+ PARAMETER (max_len = 2048)
+
LOGICAL TM_LEGAL_NAME, MATCH_NAME, TM_HAS_STRING,
. itsa_uvar, need_doc, new, formatted, flushed,
. itsa_string, output_units, output_title,
- . output_history, get_ds, its_nc
+ . output_history, get_ds, its_nc, as_global
INTEGER TM_LENSTR1, ISUBSCR_CX, GET_MAX_C_STRING_LEN,
. MGRID_SIZE, STR_SAME,
. cx, mr, dset, grid, cdfid, ivar, nready,
@@ -172,7 +177,7 @@
. final_status, type, maxstrlen,
. write_lo(nferdims), write_hi(nferdims),
. make_lo(nferdims), make_hi(nferdims),
- . dset_last, dset_num, attid, len
+ . dset_last, dset_num, attid, len, ndims_size, wlen
* *kob* 3/99- up SANITARY_VAR_CODE and local variable varcode to 64 chars
* and VAR_UNITS to 64
@@ -180,7 +185,7 @@
CHARACTER SANITARY_VAR_CODE*128, VAR_TITLE*140,
. VAR_TITLE_MOD*140, VAR_UNITS*64, CX_DIM_STR*48,
- . TM_FMT*12,
+ . TM_FMT*12, GET_STRING_ELEMENT*(max_len),
. varcode*128, varname*128, buff*2048, revnum*12,
. c1*1, aname*128, short*128
@@ -217,7 +222,7 @@
REAL*4 rbuff4
REAL vals(100), bad
- REAL*8 dvals(100), scalefac, addoff
+ REAL*8 dvals(100), avals(0:99), scalefac, addoff
INTEGER*4 ibuff4
EQUIVALENCE (rbuff4, ibuff4), (rbuff4, ibuff1)
@@ -280,6 +285,7 @@
IF ( status .NE. merr_ok ) GOTO 5800
ENDIF
+
* DODS URL saved as a global attribute (11/96)
IF ( DODS_cache ) THEN
! note that routine CDF_PREP_CACHE is assumore med to have checked the validity
@@ -303,6 +309,7 @@
. .OR. ds_type(dset).EQ.'FCT' .OR. ds_type(dset).EQ.'UNI')
. CALL CDF_LIST_GLOBAL_ATTS (dset, cdfid, status)
ENDIF
+
dset_last = dset
scalefac = 1.
addoff = 0.
@@ -453,10 +460,20 @@
ENDIF
* get slab limits to use for writing the values of this variable
+
+ ndims_size = 0
+ wlen = 0
+
DO 50 idim = 1, nferdims
* ... limits within which to write variable data
write_lo(idim) = cx_lo_ss(cx,idim)
write_hi(idim) = cx_hi_ss(cx,idim)
+
+ IF (write_hi(idim) - write_lo(idim) .GT. 1) THEN
+ ndims_size = ndims_size + 1
+ wlen = write_hi(idim) - write_lo(idim) + 1
+ ENDIF
+
* get slab limits to use for creating this NetCDF variable
* (elaborate checking if user manually specifies creation limits)
* ... limits within which to create NetCDF variable
@@ -518,6 +535,9 @@
ENDIF
50 CONTINUE
+
+* If writing variable as a global variable, only write 1-D variables.
+ IF (as_global .AND. ndims_size .GT. 1) GOTO 5320
* determine the netCDF "record dimension" to use
IF ( write_lo(t_dim) .EQ. unspecified_int4 ) THEN
@@ -572,6 +592,7 @@
ENDIF
ENDIF
+ IF (.NOT. as_global) THEN
CALL CD_MAKE_VAR( cdfid, dset_num, varcode, type, maxstrlen,
. grid, make_lo, make_hi, recdim, enhead, new,
. edges_flag, do_bounds, mode_upcase_output,
@@ -637,9 +658,10 @@
ENDIF ! setting scalefac and addoff
+ ENDIF ! as_global
* if its a newly-created variable write attributes
- IF ( new .AND. all_outflag .GT. 0) THEN
+ IF (( new .AND. all_outflag .GT. 0) .AND. .NOT. as_global) THEN
* Write missing value and fill flag here; if writing the scale and
* offset attributes, then un-scale the missing and fill flags, using
@@ -1092,10 +1114,10 @@
IF ( status .NE. merr_ok ) GOTO 5800
ENDIF
- ENDIF
+ ENDIF ! writing attributes of file or user variables
* Write attributes for psuedo-variables
- IF (cat .EQ. cat_pseudo_var) THEN
+ IF (cat .EQ. cat_pseudo_var .AND. .NOT.as_global) THEN
IF (.NOT.got_missing) THEN
CALL CD_WRITE_ATTVAL_DP(cdfid, varcode,
@@ -1133,7 +1155,8 @@
ENDIF
ENDIF ! pseudo-variables
- 100 CONTINUE
+ 100 CONTINUE ! loop over nvars
+
nready = nvars
*****
@@ -1144,7 +1167,7 @@
*
* write the deferred coordinates
*
- CALL CD_WRITE_DEFER_COORD( cdfid, status )
+ IF (.NOT.as_global) CALL CD_WRITE_DEFER_COORD( cdfid, status )
IF ( status .NE. merr_OK ) GOTO 5800
*
* write the variables
@@ -1181,20 +1204,63 @@
IF (varcode(1:1) .EQ. "_") varcode = varcode(2:TM_LENSTR1(varcode))
ENDIF
-* get slab limits to use for writing the values of this variable
- DO 450 idim = 1, nferdims
- write_lo(idim) = cx_lo_ss(cx,idim)
- write_hi(idim) = cx_hi_ss(cx,idim)
- 450 CONTINUE
-
* check for interrupts - dont check again until entire variable is written
IF (interrupted) CALL ERRMSG(ferr_interrupt,status,' ',*5800)
+ IF (as_global) THEN
+ CALL CD_GET_VAR_TYPE (dset, varid, varname, vartype, status)
+
+ IF (outtype .NE. 0) vartype = outtype
+ IF (itsa_uvar .AND. vartype.EQ.0) THEN ! for user vars type not known in attrib structure
+ vartype = 6 ! netcdf nf_double
+ IF (itsa_string) vartype = 2
+ ENDIF
+
+ IF (vartype .EQ. NF_CHAR) THEN
+
+ IF (wlen .GT. 1) GOTO 5325
+ buff = GET_STRING_ELEMENT(
+ . mr_lo_s1(mr), mr_hi_s1(mr),
+ . mr_lo_s2(mr), mr_hi_s2(mr),
+ . mr_lo_s3(mr), mr_hi_s3(mr),
+ . mr_lo_s4(mr), mr_hi_s4(mr),
+ . mr_lo_s5(mr), mr_hi_s5(mr),
+ . mr_lo_s6(mr), mr_hi_s6(mr),
+ . memry(mr)%ptr,
+ . cx_lo_s1(cx), cx_lo_s2(cx),
+ . cx_lo_s3(cx), cx_lo_s4(cx),
+ . cx_lo_s5(cx), cx_lo_s6(cx),
+ . max_len, len)
+
+ CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, varcode,
+ . buff(:len), .FALSE., status )
+ IF ( status .NE. merr_ok ) GOTO 5800
+
+ ELSE
+
+ IF (wlen .GT. 100) GOTO 5320
+ avals(:wlen-1) = memry(mr)%ptr
+ CALL CD_WRITE_ATTVAL_DP(
+ . cdfid, pcdf_global, varcode, avals(0), wlen,
+ . vartype, status )
+ ENDIF
+
+ ELSE ! not as-global,write regular variable
+
+* get slab limits to use for writing the values of this variable
+
+ DO 450 idim = 1, nferdims
+ write_lo(idim) = cx_lo_ss(cx,idim)
+ write_hi(idim) = cx_hi_ss(cx,idim)
+ 450 CONTINUE
+
* write the data for this variable
- CALL CD_WRITE_VAR (cdfid, dset_num, varcode, grid,
+ CALL CD_WRITE_VAR (cdfid, dset_num, varcode, grid,
. write_lo, write_hi, memry(mr)%ptr,
. edges_flag, do_bounds, mode_upcase_output,
. keepax_flag, status )
+ ENDIF
+
IF ( status .NE. merr_ok ) GOTO 5800
500 CONTINUE
@@ -1241,6 +1307,14 @@
. cmnd_buff(qual_start(errloc):qual_end(errloc))
. //pCR//'Variable: '//varcode, *5800 )
+ 5320 CALL ERRMSG ( ferr_invalid_command, status,
+ . 'Global attribute must be a 1D variable length < 100'
+ . //pCR//'Variable: '//varcode, *5800 )
+
+ 5325 CALL ERRMSG ( ferr_invalid_command, status,
+ . 'Multi-valued Global string attributes not implemented'
+ . //pCR//'Variable: '//varcode, *5800 )
+
5400 CALL ERRMSG ( ferr_TMAP_error, status, ' ', *5990 )
5800 CALL ERRMSG ( ferr_TMAP_error, final_status, ' ', *5810 )
diff --git a/fer/gnl/define_ef_aggregate_grid.F b/fer/gnl/define_ef_aggregate_grid.F
index 6ec3cce..181ec6d 100644
--- a/fer/gnl/define_ef_aggregate_grid.F
+++ b/fer/gnl/define_ef_aggregate_grid.F
@@ -1,6 +1,7 @@
SUBROUTINE DEFINE_EF_AGGREGATE_GRID (agg_dset,
. tcoordname, nvars, vname, fvar, iline,
- . tf_lag_t, ref_grid, agg_dim, member_sets, nsets)
+ . tf_lag_t, ref_grid, agg_dim, member_sets,
+ . nsets, status)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -69,7 +70,7 @@
* calling argument declarations:
INTEGER agg_dset, nvars, fvar, iline, tf_lag_t, ref_grid,
- . agg_dim, member_sets(*), nsets
+ . agg_dim, member_sets(*), nsets, status
CHARACTER*(*) vname, tcoordname
* local variable declarations:
@@ -77,13 +78,15 @@
. has_edges, has_gaps, found_fvar, ef_ordered_time2d, true_month
INTEGER STR_SAME, TM_LENSTR1,
. big_cx, igrid, idim, agg_grid, nv, type, ii, iset, slen,
- . ndim, vtype, i2, i, status,
+ . ndim, vtype, i2, i,
. npts, nT, nF, lagF, ipt, iline2, memb_grid, it2d,
. gap_size, max_gap_size, l,
. axcalt, axlagf, gg, ipt1, ipte, fax,
. nv_dummy, igrid_dummy, vtype_dummy, num_indices,
- . ef_time2d_dset, ef_time2d_grid, iaxis, fvartype
- REAL*8 TDEST_WORLD, TM_WORLD_AX, fdelta
+ . ef_time2d_dset, ef_time2d_grid, iaxis, fvartype,
+ . time2dline
+ REAL*8 TDEST_WORLD, TM_WORLD_AX, GET_LINE_COORD,
+ . fdelta, f1, f2, tcoord, tedge
* Getting info back from the attribute-handling structure
INTEGER maxlen
@@ -98,6 +101,7 @@
has_gaps = .FALSE.
ef_ordered_time2d = .FALSE.
ef_time2d_dset = ds_var_setnum(fvar)
+ time2dline = unspecified_int4
* Get the file-variable type
slen = TM_LENSTR1(vname)
@@ -310,6 +314,7 @@
* (cleaner code might be possible by removing the code below to a separate
* subroutine that is called just once before processing the individual vars
* of the aggregations)
+
IF (agg_dim.EQ.f_dim .AND. tline.NE.unspecified_int4) THEN
CALL CD_GET_VAR_ID (agg_dset, tcoordname, t2did, status)
@@ -425,19 +430,27 @@
nT = line_dim(grid_line(t_dim,agg_grid))
nF = line_dim(grid_line(f_dim,agg_grid))
+* DYN linemem: allocate coordinate memory linemem for 2d_times and lineedg is the upper
+*
+
npts = nT * nF
- ipt1 = next_line_mem_pos
- ipt = ipt1
- IF ((ipt+2*npts+1).GT.maxlinestore) GOTO 5100
+
+
+* grab a temporary dynamic axis slot for it
+ CALL TM_ALLO_TMP_LINE(time2dline, status)
+ IF (status .NE. ferr_ok) GOTO 5200
+ CALL GET_LINE_DYNMEM (npts, time2dline, status)
+ IF (status .NE. ferr_ok) GOTO 5100
* ... loop over the member data sets, copying their time steps
+ ipt = 1
DO ii = 1, nsets
IF (member_sets(ii) .EQ. pdset_dummy) THEN
* ... insert a series of missing time values in the 2d time array
has_gaps = .TRUE.
DO i2 = 1, nT
- line_mem(ipt) = unspecified_val8
- line_mem(ipt+npts) = unspecified_val8
+ CALL PUT_LINE_COORD ( linemem(time2dline)%ptr, ipt, unspecified_val8)
+ CALL PUT_LINE_COORD ( lineedg(time2dline)%ptr, ipt, unspecified_val8)
ipt = ipt + 1
ENDDO
ELSE
@@ -452,47 +465,47 @@
CALL TDEST_WORLD_INIT (memb_grid, ref_grid, t_dim, status)
IF (status .NE. ferr_ok) GOTO 5000
DO i2 = 1, nT
- line_mem(ipt) = TDEST_WORLD(i2, memb_grid, t_dim, box_middle)
- line_mem(ipt+npts) =
- . TDEST_WORLD(i2, memb_grid, t_dim, box_lo_lim)
+ tcoord = TDEST_WORLD(i2, memb_grid, t_dim, box_middle)
+ tedge = TDEST_WORLD(i2, memb_grid, t_dim, box_lo_lim)
+ CALL PUT_LINE_COORD ( linemem(time2dline)%ptr, ipt, tcoord)
+ CALL PUT_LINE_COORD ( lineedg(time2dline)%ptr, ipt, tedge)
ipt = ipt + 1
ENDDO
ENDIF
ENDDO
- line_mem(ipt1+2*npts) = TDEST_WORLD(nT, memb_grid, t_dim, box_hi_lim)
+ tedge = TDEST_WORLD(nT, memb_grid, t_dim, box_hi_lim)
+ CALL PUT_LINE_COORD ( lineedg(time2dline)%ptr, npts+1, tedge)
+
* ... if there were gaps in the forecast time array, fill 'em
* always compute lagF - the number of time steps between forecasts
CALL FILL_FMRC_TIME_GAPS(has_gaps,
- . line_mem(ipt1),
- . line_mem(ipt1+npts),
+ . linemem(time2dline)%ptr,
+ . lineedg(time2dline)%ptr,
. nT,nF, lagF, status)
IF (status .NE. ferr_ok) GOTO 5000
* save the 2D time step array in c memory cache
* to be recovered as needed by FIND_MEM_VAR
- CALL CACHE_FULL_ARRAY(line_mem(ipt1), npts,
+* ?? should this be done differently for dynamic line coords?
+ CALL CACHE_FULL_ARRAY(linemem(time2dline)%ptr, npts,
. ds_var_c_cache_ptr(it2d))
-!***** TEST ****
-! CALL RECOVER_CACHED_ARRAY(line_mem(ipt1+72), npts,
-! . ds_var_c_cache_ptr(it2d))
-
-
* make the FMRC regrid target axes: T-calendar and F-lag
* (t2did still holds the id of the tccordname 2d time array)
has_edges = .TRUE.
CALL CD_MAKE_FMRC_AXES (agg_dset, has_edges, t2did, tcoordname,
. ds_var_type(nv), npts, nT, nF,
- . axcalt, axlagf, status)
+ . time2dline, axcalt, axlagf, status)
IF (status .NE. merr_ok) GOTO 5000
-*****
+*
* define the F calendar axis
- ipt1 = next_line_mem_pos
- IF ((ipt1+2*nF+1).GT.maxlinestore) GOTO 5100
-! per Andrew W., this axis has been shifted 1/2 cell to the left
+ CALL GET_LINE_DYNMEM (nF, iline, status)
+ IF (status .NE. ferr_ok) GOTO 5100
+
+! per Andrew W., this axis has been shifted 1/2. cell to the left
! so that the F coordinate lies on the low limit (initialization time) of
! the 1st time coordinate from each forecast
! Only the coordinates need be got from the FMRC members. The bounds are
@@ -500,98 +513,38 @@
* Get the F-step values -- lower bounds of the L=1 cells
* ... copying them from the axcalt axis
+
l = 1
+ ipt1 = 1
DO ipt = ipt1, ipt1+nsets-1
- line_mem(ipt) = TM_WORLD_AX(l, axcalt, box_lo_lim )
+ CALL PUT_LINE_COORD ( linemem(iline)%ptr, ipt, TM_WORLD_AX(l, axcalt, box_lo_lim ) )
l = l + lagF
ENDDO
-* Fill in the F-cell bounds just after the F-step values
+* Fill in the F-cell bounds
* ... we will base the axis extreme edges on the average cell width --
* only an approximate anwser for unequally spaced monthly time units
- Fdelta = ( line_mem(ipt1+nsets-1) - line_mem(ipt1)) / (nsets-1)
+ Fdelta = ( GET_LINE_COORD (linemem(iline)%ptr, ipt1+nsets-1) -
+ . GET_LINE_COORD (linemem(iline)%ptr, ipt1) ) / DBLE(nsets-1)
* ... the lower limit of the first point
- line_mem(ipt1+nsets) = line_mem(ipt1) - Fdelta/2
+
+ CALL PUT_LINE_COORD ( lineedg(iline)%ptr, ipt1, GET_LINE_COORD (linemem(iline)%ptr, ipt1) - Fdelta/2. )
+
* ... the midpoints between the F-steps
DO ipt = ipt1+1, ipt1+nsets-1
- line_mem(ipt+nsets) = (line_mem(ipt) + line_mem(ipt-1))/2
+
+ CALL PUT_LINE_COORD ( lineedg(iline)%ptr, ipt,
+ . ( GET_LINE_COORD (linemem(iline)%ptr, ipt) +
+ . GET_LINE_COORD (linemem(iline)%ptr, ipt-1) )/2. )
ENDDO
* ... the upper limit of the last point
- line_mem(ipt1+2*nsets) = line_mem(ipt1+nsets-1) + Fdelta/2
-
-! THIS GIANT BLOCK OF COMMENTED CODE used to populate the F axis coords
-! It would get the timestep values of the L=1
-! output of each model run, and the corresponding cell bounds
-! It has been replaced with the much simpler block of code above
-
-!* ... similar drill to above but need to do again, because cell bounds
-!* are needed in axis definition
-!* ... loop over the member data sets, inserting the 1st time step of each
-!* Both the time point and one of the cell bounds needs to be inserted
-! max_gap_size = 0
-! DO ii = 1, nsets
-! IF (member_sets(ii) .NE. pdset_dummy) THEN
-! CALL CD_GET_AGG_VAR_INFO (agg_dset, vname, ii,
-! . vtype, iset, memb_grid, iline2, nv, status)
-! IF (status .NE. ferr_ok) GOTO 5200
-! CALL TDEST_WORLD_INIT (memb_grid, ref_grid, t_dim, status)
-! IF (status .NE. ferr_ok) GOTO 5000
-! line_mem(ipt) = TDEST_WORLD(1, memb_grid, t_dim,
-! . box_middle )
-! line_mem(ipt+nF) = TDEST_WORLD(1, memb_grid, t_dim,
-! . box_lo_lim )
-! gap_size = 0
-! ELSE
-! gap_size = gap_size + 1
-! IF (gap_size .GT. max_gap_size) max_gap_size = gap_size
-! CALL RECOVER_CACHED_2D_ARRAY_POINT(line_mem(ipt),
-! . nT, nF, 1, ii, ds_var_c_cache_ptr(it2d))
-! IF (gap_size .EQ. 1) THEN
-!* ... the previous forecast is still active in the loop
-! line_mem(ipt+nF) = TDEST_WORLD(1, memb_grid, t_dim,
-! . box_hi_lim )
-! ELSE
-!* ... leave a gap in the time cell bounds -- fill in right after this
-! line_mem(ipt+nF) = unspecified_val8
-! ENDIF
-! ENDIF
-! ipt = ipt + 1
-! ENDDO
-! line_mem(ipt+nF) = TDEST_WORLD(1, memb_grid, t_dim, box_hi_lim )
-!
-!* ... if there were gaps wider than 1 missing forecast, we need to fill in
-!* some missing time cell bounds
-! IF (max_gap_size .GT. 1) THEN
-! ii = 1
-! ipt = ipt1 + nF
-! DO WHILE (ii .LT. nsets)
-! ii = ii + 1
-! ipt = ipt + 1
-! IF (line_mem(ipt) .EQ. unspecified_val8) THEN
-!* ... fill in a gap by linear interpolation
-!* note that this is exactly right for equally spaced coordinates
-!* but only approximate for monthly. After improved support for
-!* monthly
-! gap_size = 0
-! i2 = ii+1
-! DO WHILE (i2 .LE. nsets+1)
-! gap_size = gap_size + 1
-! IF (line_mem(ipt+gap_size) .NE. unspecified_val8) EXIT
-! ENDDO
-!* ... fill the gap
-! DO i = ipt, ipt+gap_size-1
-! line_mem(ipt) = line_mem(ipt-1)
-! . + (i-ipt+1)
-! . * (line_mem(ipt+gap_size)-line_mem(ipt-1))
-! . / (gap_size+1)
-! ENDDO
-! ENDIF
-! ENDDO
-! ENDIF
+ CALL PUT_LINE_COORD ( lineedg(iline)%ptr, ipt1+nsets,
+ . GET_LINE_COORD (linemem(iline)%ptr, ipt1+nsets-1) + Fdelta/2. )
* ... make the native F-calendar axis from the pointstime steps in line_mem
CALL CD_MAKE_FMRC_FCAL_AXIS (agg_dset, iline,
. nF, axcalt, status)
+
IF (status .NE. merr_ok) GOTO 5000
* ... put attribute _CoordinateAxistype = 'RunTime' onto the F-calendar axis
@@ -638,9 +591,14 @@
. slen, attoutflag, line_name(axlagf), 0., status )
ENDIF
+* Done with the 2D array which has been stored
+
+ IF (time2dline .NE. unspecified_int4) THEN
+ IF (line_allocated(time2dline) .GT. 0) CALL FREE_LINE_DYNMEM(time2dline)
+ ENDIF
5000 RETURN
- 5100 CALL ERRMSG(ferr_insuff_memory,status,
+ 5100 CALL ERRMSG(ferr_aggregate_error,status,
. 'unable to define forecast aggregation', *5000)
5200 CALL ERRMSG(ferr_internal, status, 'define_ef_aggregate_grid!',
. *5000)
diff --git a/fer/gnl/define_special_grids.F b/fer/gnl/define_special_grids.F
index bea7e8a..186217b 100644
--- a/fer/gnl/define_special_grids.F
+++ b/fer/gnl/define_special_grids.F
@@ -83,7 +83,6 @@
line_unit_code( iline ) = 0 ! unknown units
line_t0 ( iline ) = ' '
line_shift_origin( iline ) = .FALSE.
- line_subsc1 ( iline ) = unspecified_int4 ! since regular
line_direction( iline ) = 'NA'
iline_abstract = iline
@@ -121,7 +120,6 @@
line_unit_code( iline ) = 0 ! unknown units
line_t0 ( iline ) = ' '
line_shift_origin( iline ) = .FALSE.
- line_subsc1 ( iline ) = unspecified_int4 ! since regular
line_direction( iline ) = 'NA'
* "EZ" grid
diff --git a/fer/gnl/finalize_ferret.F b/fer/gnl/finalize_ferret.F
index 393dd9f..c87cfd5 100644
--- a/fer/gnl/finalize_ferret.F
+++ b/fer/gnl/finalize_ferret.F
@@ -156,7 +156,8 @@ C Code pulled from DEALLO_ALL_AXES in order to do complete clean up silent
line_keep_flag(k) = .FALSE.
IF ( k .LE. max_lines ) THEN
IF ( .NOT. line_regular(k) )
- . CALL PACK_LINE_STORAGE(k)
+ . CALL FREE_LINE_DYNMEM(k)
+ line_regular(k) = .TRUE.
line_name(k) = char_init16
ELSE
CALL TM_DEALLO_DYN_LINE(k)
diff --git a/fer/gnl/get_dataset_name.F b/fer/gnl/get_dataset_name.F
deleted file mode 100644
index e006320..0000000
--- a/fer/gnl/get_dataset_name.F
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
- SUBROUTINE GET_DATASET_NAME_FROM_BROWSER(status)
-
-* This software was developed by the Thermal Modeling and Analysis
-* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-* hereafter referred to as NOAA/PMEL/TMAP.
-*
-* Access and use of this software shall impose the following
-* obligations and understandings on the user. The user is granted the
-* right, without any fee or cost, to use, copy, modify, alter, enhance
-* and distribute this software, and any derivative works thereof, and
-* its supporting documentation for any purpose whatsoever, provided
-* that this entire notice appears in all copies of the software,
-* derivative works and supporting documentation. Further, the user
-* agrees to credit NOAA/PMEL/TMAP in any publications that result from
-* the use of this software or in any product that includes this
-* software. The names TMAP, NOAA and/or PMEL, however, may not be used
-* in any advertising or publicity to endorse or promote any products
-* or commercial entity unless specific written permission is obtained
-* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-* is not obligated to provide the user with any support, consulting,
-* training or assistance of any kind with regard to the use, operation
-* and performance of this software nor to provide the user with any
-* updates, revisions, new versions or "bug fixes".
-*
-* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
-*
-*
-* Get the name of a dataset for a SET DATA /BROWSE command
-*
-* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
-
-
- INTEGER status
-
- include 'tmap_dims.parm'
- include 'errmsg.parm'
- include 'ferret.parm'
- include 'slash.parm'
- include 'xprog_state.cmn'
-
- LOGICAL do_jnl
- INTEGER RUN_THREDDS_BROWSER, TM_LENSTR,
- . len_name, buff_len, loc
- CHARACTER*512 dataset_name
- CHARACTER*2048 err_warn_msg
-
- do_jnl = mode_journal .AND. jrnl_lun.NE.unspecified_int4
-
-* Run the browser to get the dataset name
- dataset_name = ' '
- err_warn_msg = ' '
- len_name = RUN_THREDDS_BROWSER(dataset_name, err_warn_msg)
-
-* Check if there was an error running the browser
- IF ( len_name .LT. 0 ) THEN
- IF (do_jnl) CALL SPLIT_LIST(pttmode_ops, jrnl_lun,
- . '!-> **ERROR**', 0)
- CALL SPLIT_LIST(pttmode_ops, ttout_lun,
- . '!-> **ERROR**', 0)
- CALL SPLIT_LIST(pttmode_ops, err_lun, err_warn_msg, 0)
- status = ferr_erreq
- RETURN
- ENDIF
-
-* Check if the user canceled out
- IF ( len_name .EQ. 0 ) THEN
- IF (do_jnl) CALL SPLIT_LIST(pttmode_ops, jrnl_lun,
- . '!-> **CANCEL**', 0)
- CALL SPLIT_LIST(pttmode_ops, ttout_lun,
- . '!-> **CANCEL**', 0)
- status = ferr_erreq
- RETURN
- ENDIF
-
-* Append the dataset name obtained
- buff_len = TM_LENSTR(cmnd_buff)
- cmnd_buff(buff_len+1:) = ' "' // dataset_name(1:len_name) // '"'
- num_items = num_items + 1
- item_start(num_items) = buff_len + 3
- item_end(num_items) = item_start(num_items) + len_name - 1
-
-* Blank out the /BROWSE option to make a nicer message printed to stdout and the journal
- loc = qual_given(slash_set_data_browse)
- IF ( loc .GT. 0 ) THEN
- cmnd_buff(qual_start(loc)-1:qual_end(loc)) = ' '
- ENDIF
-
-* Include the quotes in the filename printed to stdout and the journal
- IF (do_jnl) CALL SPLIT_LIST(pttmode_ops, jrnl_lun,
- . '!-> ' // cmnd_buff, 0)
- CALL SPLIT_LIST(pttmode_ops, ttout_lun,
- . '!-> ' // cmnd_buff, 0)
-
- status = ferr_ok
- RETURN
-
- END
diff --git a/fer/gnl/init_ef_aggregate_dset.F b/fer/gnl/init_ef_aggregate_dset.F
index 41a1e5e..ad7a008 100644
--- a/fer/gnl/init_ef_aggregate_dset.F
+++ b/fer/gnl/init_ef_aggregate_dset.F
@@ -315,7 +315,8 @@
grid = ds_grid_number(ref_fvar)
CALL DEFINE_EF_AGGREGATE_GRID (agg_dset, tcoordname, nv, vname,
. ref_fvar, iline, tf_lag_t, grid,
- . agg_dim, member_sets, nsets_wgaps)
+ . agg_dim, member_sets, nsets_wgaps,
+ . status)
IF (status .NE. ferr_ok) GOTO 5000
* transfer to the aggregated variable whatever special attributes it inherits
diff --git a/fer/gnl/initialize_ferret.F b/fer/gnl/initialize_ferret.F
index bbfa832..65c9a9c 100644
--- a/fer/gnl/initialize_ferret.F
+++ b/fer/gnl/initialize_ferret.F
@@ -124,6 +124,9 @@
mode_state( pmode_xwindows, 1 ) = .FALSE.
#endif
CONTINUE
+
+*********************** Climatological axes ************************************
+ CALL TM_SET_CLIM_AXES
* set up special grids
CALL DEFINE_SPECIAL_GRIDS ! label 1000 moved here 9/91 *sh*
@@ -182,6 +185,8 @@ c CALL GFDL_TERMS
RADIAN=57.29578 ! 1027
cm2deg = radian / radius
+
+
*************** MISCELLANEOUS **************************************************
* TMAP librabry routine errors to same output unit as other errors
lunit_errors = err_lun
diff --git a/fer/gnl/list_cmnd_data.F b/fer/gnl/list_cmnd_data.F
index bc5df21..78d0c0f 100644
--- a/fer/gnl/list_cmnd_data.F
+++ b/fer/gnl/list_cmnd_data.F
@@ -839,7 +839,7 @@
. grid,
. row_dec,
. line_buff(w0+first:w0+width) )
- w0 = w0 + width
+ w0 = w0 + width
420 CONTINUE
CALL SPLIT_LIST(pttmode_explct, list_lun,
. ' '//line_buff(:w0), w0+1 )
diff --git a/fer/gnl/sort_tseries_dsets.F b/fer/gnl/sort_tseries_dsets.F
index e8e0eff..af75768 100644
--- a/fer/gnl/sort_tseries_dsets.F
+++ b/fer/gnl/sort_tseries_dsets.F
@@ -1,6 +1,5 @@
SUBROUTINE SORT_TSERIES_DSETS (nmembers, nsteps, skip_edges,
- . memb_nsteps, memb_order,
- . tsteps, edges)
+ . memb_nsteps, memb_order, memb_sort)
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -46,8 +45,7 @@
* skip_edges - flag to turn off cell edge processing (input)
* memb_nsteps - number of time steps from each member file (input)
* memb_order - ordering index of member files (input empty/output filled)
-* tsteps - time step array as currently ordered (in/out)
-* edges - edges array as currently ordered (in/out)
+* memb_sort - starting time steps as currently ordered, to be sorted (in/out)
include 'tmap_errors.parm'
#include "tmap_dset.parm"
@@ -67,80 +65,32 @@
* calling argument declarations:
LOGICAL skip_edges
INTEGER nmembers, nsteps, memb_nsteps(nmembers), memb_order(nmembers)
- REAL tsteps(nsteps), edges(nsteps+nmembers)
+ REAL memb_sort(nmembers)
* local variable declarations:
LOGICAL sorted
- INTEGER lstart(nmembers), i, lin, lout, ifile
- REAL tstart(nmembers), buff(nsteps+nmembers), rorder(nmembers)
+ INTEGER i
+ REAL rorder(nmembers)
* initialize
sorted = .FALSE.
-* ... starting index of each member file
- lstart(1) = 1
- DO i = 2, nmembers
- lstart(i) = lstart(i-1) + memb_nsteps(i-1)
- ENDDO
-* ... starting time step of each member file
- DO i = 1, nmembers
- tstart(i) = tsteps(lstart(i))
- ENDDO
+
* ... pre-sorted indices in a REAL array
DO i = 1, nmembers
rorder(i) = i
ENDDO
* sort the datasets by start date
- CALL HEAP2(tstart, rorder, unspecified_val8, nmembers)
-* ... copy the sorted list back into the input array
- DO i = 1, nmembers
- memb_order(i) = INT(rorder(i))
- IF (memb_order(i) .NE. i) sorted = .TRUE.
- ENDDO
-
-* did any re-ordering occur?
- IF (.NOT.sorted) RETURN
+ CALL HEAP2(memb_sort, rorder, unspecified_val8, nmembers)
-* sort the aggregated time axis coordinates
-* ... copy into the buffer area in the correct order
- lout = 1
- DO i = 1, nmembers
- ifile = memb_order(i)
- lin = lstart(ifile)
- DO WHILE (lin .LT. lstart(ifile)+memb_nsteps(ifile) )
- buff(lout) = tsteps(lin)
- lout = lout + 1
- lin = lin + 1
- ENDDO
- ENDDO
-* ... copy the sorted time axis back
- DO lin = 1, nsteps
- tsteps(lin) = buff(lin)
- ENDDO
-
-
-* sort the aggregated time axis cell edges
- IF (skip_edges) RETURN
+* Return the sort order and the total number of steps
-* ... starting index of edges based on N+1 points per member
- lstart(1) = 1
- DO i = 2, nmembers
- lstart(i) = lstart(i-1) + memb_nsteps(i-1) + 1
- ENDDO
-* ... copy into the buffer area in the correct order
- lout = 1
+ nsteps = 0.
DO i = 1, nmembers
- ifile = memb_order(i)
- lin = lstart(ifile)
- DO WHILE (lin .LT. lstart(ifile)+memb_nsteps(ifile)+1 )
- buff(lout) = edges(lin)
- lout = lout + 1
- lin = lin + 1
- ENDDO
- ENDDO
-* ... copy the sorted axis edges back
- DO lin = 1, nsteps+nmembers
- edges(lin) = buff(lin)
+ memb_order(i) = INT(rorder(i))
+ IF (memb_order(i) .NE. i) sorted = .TRUE.
+ nsteps = nsteps + memb_nsteps(i)
ENDDO
+ RETURN
END
diff --git a/fer/ino/find_dset_number.F b/fer/ino/find_dset_number.F
index 714e895..f3454f2 100644
--- a/fer/ino/find_dset_number.F
+++ b/fer/ino/find_dset_number.F
@@ -67,7 +67,8 @@
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
* V695 *acm* 2/15 For Forecast aggregations, call the ds_type 'FCT'
* V7 *acm* 6/12 Add Union aggregations: DEFINE DATA/AGG/U, ds_type 'UNI'
-* V702 *sh* 11/16 support new syntax D=aggregation.member
+* V702 *sh* 11/16 support new syntax D=aggregation.member
+* V722 *acm* Ticket 2563: Handle the dname coming in quoted, as from repl_exprns
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -85,10 +86,11 @@
. cdf_name, des_name, full_name_used, nc_name
INTEGER STR_CASE_BLIND_COMPARE, TM_LENSTR1,
. vax_code, dset, full_len, short_len, status,
- . agg, memb, idot, nmemb
+ . agg, memb, idot, nmemb, iq
CHARACTER TM_INQ_PATH*2048, buff*2048
CHARACTER*13 TM_STRING, buff13, vbuff
REAL*8 val
+ character*1 whatc
IF ( TM_DIGIT_TEST( dname ) ) THEN
@@ -207,6 +209,12 @@ c *kob* 4/97
100 CONTINUE
* Is the name a full path name?
+* Ticket 2563: Did the dname come in quoted, as from repl_exprns?
+* If so remove those the quotes before searching
+
+ buff = dname
+ IF (dname(1:1) .EQ. '"' .AND. dname(full_len:full_len) .EQ. '"')
+ . buff = dname(2:full_len-1)
DO 200 dset = 1, maxdsets
@@ -215,19 +223,19 @@ c *kob* 4/97
* special name match checks to account for implied .cdf or .des 5/93
IF ( TM_HAS_STRING(ds_type(dset),'CDF')) THEN
vax_code = STR_CASE_BLIND_COMPARE( ds_des_name(dset),
- . dname )
+ . buff )
IF ( vax_code .EQ. vms_str_success
. .AND. (cdf_name .OR. full_name_used) ) GOTO 400
ELSEIF ( TM_HAS_STRING(ds_type(dset),'GT')) THEN
vax_code = STR_CASE_BLIND_COMPARE( ds_des_name(dset),
- . dname )
+ . buff )
IF ( vax_code .EQ. vms_str_success
. .AND. (des_name .OR. full_name_used) ) GOTO 400
ELSE ! EZ data set - any filename extension allowed
vax_code = STR_CASE_BLIND_COMPARE( ds_des_name(dset),
- . dname(1:full_len) )
+ . buff(1:full_len) )
IF ( vax_code .EQ. vms_str_success ) GOTO 400
ENDIF
@@ -238,7 +246,7 @@ c *kob* 4/97
* Try TM_INQ_PATH and compare with full path names
- buff = TM_INQ_PATH (dname, 'FER_DATA', ' ', .FALSE.,
+ buff = TM_INQ_PATH (buff, 'FER_DATA', ' ', .FALSE.,
. status)
IF (status .NE. ferr_ok) GOTO 500
diff --git a/fer/ino/init_ez_dset.F b/fer/ino/init_ez_dset.F
index 683b376..3b2f981 100644
--- a/fer/ino/init_ez_dset.F
+++ b/fer/ino/init_ez_dset.F
@@ -321,6 +321,7 @@
* basic x axis, not the ez abstract axis
CALL EZ_COUNT_DSET ( dset, ezform, nread, status )
IF ( status .NE. ferr_ok ) RETURN
+ nread = nread - skip
IF (columns .GT. 1) THEN
CALL CD_GET_DS_INFO (dset, ndims, nvars, ngatts,
diff --git a/fer/ino/read_tm.F b/fer/ino/read_tm.F
index ccfaf8c..2454220 100644
--- a/fer/ino/read_tm.F
+++ b/fer/ino/read_tm.F
@@ -178,8 +178,6 @@
stride(idim) =1
ENDIF
-! get size of the native axis
- CALL VAR_SS_LIMS(idim, cx,lo_ss_ds,hi_ss_ds)
lo_ss(idim) = (cx_lo_ss( cx, idim )-1)*stride(idim) +
. line_offset(line)
@@ -189,6 +187,13 @@
! for a reversed axis
IF( line_reversed(line)) THEN
+
+! get size of the native axis
+! w/ fix to issue 1843, var_ss_lims returns strided index values
+
+ CALL VAR_SS_LIMS(idim, cx,lo_ss_ds,hi_ss_ds)
+ hi_ss_ds = hi_ss_ds* stride(idim)
+
! must compute hi_ss first and then lo_ss
hi_ss(idim) = hi_ss_ds -
. (line_dim(line)-cx_hi_ss( cx, idim ))*stride(idim) -
diff --git a/fer/ino/var_ss_lims.F b/fer/ino/var_ss_lims.F
index 55c9c55..ad0db5f 100644
--- a/fer/ino/var_ss_lims.F
+++ b/fer/ino/var_ss_lims.F
@@ -64,8 +64,8 @@
INTEGER idim, cx, lo_ss, hi_ss
* internal variable declarations
- LOGICAL ACTS_LIKE_FVAR
- INTEGER dset, cat, var, grid, line, status
+ LOGICAL ACTS_LIKE_FVAR, has_strides
+ INTEGER dset, cat, var, grid, line, pline, offset, stride, status
INTEGER TM_GET_GRIDNUM ! 10/93
* initialize
@@ -98,7 +98,38 @@
ENDIF
* return subscript limits
- 110 lo_ss = ds_grid_start(idim, var)
- hi_ss = ds_grid_end (idim, var)
+* Compute the right limits for strided axis, see issue 1843
+
+ 110 CONTINUE
+
+ stride = 1
+ offset = 0
+ has_strides = .FALSE.
+ IF(line_parent(line) .NE. 0) THEN
+ pline = line_parent(line)
+ has_strides = line_delta(line) .NE. unspecified_val8
+ . .AND. line_delta(line) .NE. 1
+ ENDIF
+
+ IF (has_strides) THEN
+ offset = line_offset(line)
+
+ IF (line_regular(line)) THEN
+ stride = NINT(line_delta(line)/line_delta(pline))
+ lo_ss = offset + (ds_grid_start(idim, var)-1)
+ lo_ss = 1
+ hi_ss = line_dim(line)
+ ELSE
+ stride = line_delta(line)
+ lo_ss = offset + (ds_grid_start(idim, var)-1)/ stride
+ lo_ss = 1
+ hi_ss = offset + line_dim(line) - 1
+ ENDIF
+
+ ELSE
+ lo_ss = ds_grid_start(idim, var)
+ hi_ss = ds_grid_end (idim, var)
+ ENDIF
+
1000 RETURN
END
diff --git a/fer/mem/SOURCE_FILES b/fer/mem/SOURCE_FILES
index 669bc51..d1a6a4c 100644
--- a/fer/mem/SOURCE_FILES
+++ b/fer/mem/SOURCE_FILES
@@ -26,10 +26,12 @@ find_mem_var.F\
find_mem_var_incl_c_cache.F\
find_mr_slot.F\
find_var_name.F\
+free_line_dynmem.F\
free_mr_dynmem.F\
free_ws_dynmem.F\
fvar_number.F\
get_dyn_work_space.F\
+get_line_dynmem.F\
get_mr_dynmem.F\
get_ws_dynmem.F\
get_work_mr.F\
@@ -61,6 +63,10 @@ r_cgrid_size_delta.F\
re_assign_variable.F\
release_dyn_work_space.F\
show_aborted_mem_state.F\
+store_edge_ptr.F\
+store_line_ptr.F\
+store_nul_edge_ptr.F\
+store_nul_line_ptr.F\
store_nul_mr_ptr.F\
store_nul_ws_ptr.F\
store_mr_ptr.F\
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/free_line_dynmem.F
similarity index 71%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/free_line_dynmem.F
index 3a0ed70..732abba 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/free_line_dynmem.F
@@ -1,8 +1,10 @@
- SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+ SUBROUTINE FREE_LINE_DYNMEM ( iaxis )
+*
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -33,22 +35,32 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* A grid has been determined to need a normal axis in a particular direction,
-* when setting an alternate function to run depending on direction arguments.
+* Free the memory associated with this coordinate line
+*
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+
+
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
-*
-* V720 3/16 *acm*
+* calling argument declarations:
+ INTEGER iaxis
- include 'ferret.parm'
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+ IF (line_allocated (iaxis) .GT. 0) THEN
+ CALL FREE_DYN_MEM(linemem(iaxis)%ptr)
+ CALL FREE_DYN_MEM(lineedg(iaxis)%ptr)
+ ENDIF
+
+ line_allocated (iaxis) = 0
-* calling argument declarations
- INTEGER grid, idim
- grid_line(idim, grid) = mnormal
-! anything else?
+* set the pointer to a zero length object (just for bookkeeping)
+c CALL NULLIFY_LINEMEM(iaxis, 0)
+c CALL NULLIFY_LINEMEM(iaxis, 1)
RETURN
END
diff --git a/fmt/src/tm_warn_subspan.F b/fer/mem/get_line_dynmem.F
similarity index 51%
copy from fmt/src/tm_warn_subspan.F
copy to fer/mem/get_line_dynmem.F
index f57e9c4..99742d8 100644
--- a/fmt/src/tm_warn_subspan.F
+++ b/fer/mem/get_line_dynmem.F
@@ -1,10 +1,10 @@
- SUBROUTINE TM_WARN_SUBSPAN (iaxis)
+ SUBROUTINE GET_LINE_DYNMEM( rqst_size, iaxis, status )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
-*.
+*
* Access and use of this software shall impose the following
* obligations and understandings on the user. The user is granted the
* right, without any fee or cost, to use, copy, modify, alter, enhance
@@ -32,52 +32,74 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* 5/2016 Ansley Manke
-* See ticket 1432.
-* Write a NOTE if an axis definition is a subspan modulo axis
-* but its length is within a grid cell of the full modulo length.
-
- include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
- include 'xio.cmn_text'
- external xio_data
+*
+* allocate the requested amount of dynamic coordinate storage (using c or python malloc)
+* malloc is done in c (or python), but has to call back into F90 to set pointer
+* the hierarchy of calls is as follows for allocating memory for coordinate storage.
+* get_ax_linemem.F ==> get_ax_mem.c ==> store_line_ptr.F
+
+* programmer - Ansley Manke
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+* Following main-memory dynamic allocation methods
+
+
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'errmsg.parm'
+ include 'ferret.parm'
+# include "tmap_dset.parm"
include 'xtm_grid.cmn_text'
external xgt_grid_data
+ include 'xvariables.cmn'
+ include 'xprog_state.cmn'
-* argument declarations
- INTEGER iaxis
+* calling argument declarations:
+ INTEGER iaxis, status
+ INTEGER rqst_size
+* internal variable declarations:
-* local variable declarations:
- LOGICAL TM_ITS_SUBSPAN_MODULO
- INTEGER TM_LENSTR1, alen, blen, vlen
- REAL TM_WW_AXLEN, axwwlen, delta
- CHARACTER*16 TM_FMT, buff1, buff2
+ INTEGER num_slen
+ INTEGER*8 i8_rqst_size
+ CHARACTER LEFINT8*20, TM_FMT*12, num_str*20
+ REAL GET_LINE_COORD
- INTEGER tt ! nice short name
- EQUIVALENCE (tt,lunit_errors)
+ i8_rqst_size = rqst_size
- vlen = TM_LENSTR1(line_name(iaxis))
- axwwlen = TM_WW_AXLEN(iaxis)
+ IF (line_allocated (iaxis) .GT. 0) THEN
-* get the nominal delta grid cell length for comparison
+ IF (line_use_cnt(iaxis) .LE. 0) THEN
+ IF ( iaxis .LE. max_lines ) THEN
+ CALL FREE_LINE_DYNMEM ( iaxis ) ! checks that irreg coords are stored
+ line_name(iaxis) = char_init16
+ ENDIF
+ ENDIF
- IF (line_delta(iaxis) .NE. unspecified_val8) THEN
- delta = line_delta(iaxis)
- ELSE
- delta = line_mem(line_subsc1(iaxis)+1) - line_mem(line_subsc1(iaxis))
ENDIF
- IF (line_modulo(iaxis) .AND. TM_ITS_SUBSPAN_MODULO(iaxis) .AND.
- . (line_modulo_len(iaxis)-axwwlen) .LE. delta ) THEN
- buff1 = TM_FMT( SNGL(axwwlen),7,32,alen )
- buff2 = TM_FMT( SNGL(line_modulo_len(iaxis)),7,32,blen )
- CALL TM_NOTE('Subspan modulo axis '//line_name(iaxis)(:vlen)//
- . '. Axis span = '//buff1(:alen)//
- . ', modulo length = ' //buff2(:blen)//
- . '. Is this intended to be a full-span axis?', tt)
- ENDIF
-
+* allocate the dynamic memory
+ CALL GET_LINEMEM(iaxis, i8_rqst_size, status)
+ IF (status .NE. ferr_ok) GOTO 5300
+
+* and for edges
+ i8_rqst_size = rqst_size + 1
+ CALL GET_EDGMEM(iaxis, i8_rqst_size, status)
+ IF (status .NE. ferr_ok) GOTO 5300
+
+ line_allocated (iaxis) = rqst_size
RETURN
+
+
+***********************
+* error exits
+ 5000 RETURN
+
+ 5300 CALL ERRMSG( ferr_insuff_memory,status,' ', *5310)
+ 5310 CALL SPLIT_LIST(pttmode_explct, show_lun,
+ . ' The OS refuses to supply memory for coordinate storage',0 )
+
+ GOTO 5000
+
END
+
+
diff --git a/fer/mem/purge_mr_axis.F b/fer/mem/purge_mr_axis.F
index 7f41141..7ce2c24 100644
--- a/fer/mem/purge_mr_axis.F
+++ b/fer/mem/purge_mr_axis.F
@@ -115,12 +115,11 @@
300 CONTINUE
* delete the old axis
- IF ( .NOT.line_regular(old_axis) ) THEN
- CALL PACK_LINE_STORAGE(old_axis)
-c WRITE ( I6,'(I6)' ) line_dim(old_axis)
-c CALL WARN( I6//' words of axis coordinate storage lost' )
-c line_subsc1( old_axis ) = unspecified_int4
+ IF ( .NOT.line_regular(old_axis) ) THEN
+ CALL FREE_LINE_DYNMEM (old_axis)
+ line_regular(old_axis) = .TRUE.
ENDIF
+
line_use_cnt(old_axis) = 0
line_name( old_axis ) = char_init16
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/store_edge_ptr.F
similarity index 72%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/store_edge_ptr.F
index 3a0ed70..2cf90aa 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/store_edge_ptr.F
@@ -1,8 +1,8 @@
- SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+ SUBROUTINE STORE_EDGE_PTR(iaxis, i8_size, array)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -33,22 +33,29 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* A grid has been determined to need a normal axis in a particular direction,
-* when setting an alternate function to run depending on direction arguments.
+* this routine is called from C
+* store pointer to malloc-allocated coordinate-storage F90 pointer in the
+* linemem table or lineedg table
+*
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+* Following main-memory dynamic allocation methods
+
+ IMPLICIT NONE
+
+ include 'tmap_dims.parm'
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
-*
-* V720 3/16 *acm*
+* calling argumemnts
- include 'ferret.parm'
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+ INTEGER iaxis
+ INTEGER*8 i8_size
+
+ REAL(8), TARGET :: array(i8_size)
-* calling argument declarations
- INTEGER grid, idim
+* store the pointer
+ lineedg(iaxis)%ptr => array
- grid_line(idim, grid) = mnormal
-! anything else?
+ RETURN
- RETURN
END
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/store_line_ptr.F
similarity index 72%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/store_line_ptr.F
index 3a0ed70..d200df8 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/store_line_ptr.F
@@ -1,8 +1,8 @@
- SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+ SUBROUTINE STORE_LINE_PTR(iaxis, i8_size, array)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -33,22 +33,29 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* A grid has been determined to need a normal axis in a particular direction,
-* when setting an alternate function to run depending on direction arguments.
+* this routine is called from C
+* store pointer to malloc-allocated coordinate-storage F90 pointer in the
+* linemem table or lineedg table
+*
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+* Following main-memory dynamic allocation methods
+
+ IMPLICIT NONE
+
+ include 'tmap_dims.parm'
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
-*
-* V720 3/16 *acm*
+* calling argumemnts
- include 'ferret.parm'
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+ INTEGER iaxis
+ INTEGER*8 i8_size
+
+ REAL(8), TARGET :: array(i8_size)
-* calling argument declarations
- INTEGER grid, idim
+* store the pointer
+ linemem(iaxis)%ptr => array
- grid_line(idim, grid) = mnormal
-! anything else?
+ RETURN
- RETURN
END
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/store_nul_edge_ptr.F
similarity index 76%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/store_nul_edge_ptr.F
index 3a0ed70..56dc8bc 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/store_nul_edge_ptr.F
@@ -1,8 +1,8 @@
- SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+ SUBROUTINE STORE_NUL_EDGE_PTR(iaxis, array)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -33,22 +33,26 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* A grid has been determined to need a normal axis in a particular direction,
-* when setting an alternate function to run depending on direction arguments.
+* this routine is called from C
+* store pointer to a zero-length array into an F90 pointer in the line-memory table
+*
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+
+ IMPLICIT NONE
+
+* calling argumemnts
+
+ INTEGER iaxis
+ REAL(8), TARGET :: array(0)
-*
-* V720 3/16 *acm*
+ include 'tmap_dims.parm'
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
- include 'ferret.parm'
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+* store the pointer
-* calling argument declarations
- INTEGER grid, idim
+ lineedg(iaxis)%ptr => array
- grid_line(idim, grid) = mnormal
-! anything else?
+ RETURN
- RETURN
END
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/mem/store_nul_line_ptr.F
similarity index 76%
copy from fer/utl/gcf_set_normal_axis.F
copy to fer/mem/store_nul_line_ptr.F
index 3a0ed70..2af2fd5 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/mem/store_nul_line_ptr.F
@@ -1,8 +1,8 @@
- SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+ SUBROUTINE STORE_NUL_LINE_PTR(iaxis, array)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -33,22 +33,26 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* A grid has been determined to need a normal axis in a particular direction,
-* when setting an alternate function to run depending on direction arguments.
+* this routine is called from C
+* store pointer to a zero-length array into an F90 pointer in the line-memory table
+*
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+
+ IMPLICIT NONE
+
+* calling argumemnts
+
+ INTEGER iaxis
+ REAL(8), TARGET :: array(0)
-*
-* V720 3/16 *acm*
+ include 'tmap_dims.parm'
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
- include 'ferret.parm'
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+* store the pointer
-* calling argument declarations
- INTEGER grid, idim
+ linemem(iaxis)%ptr => array
- grid_line(idim, grid) = mnormal
-! anything else?
+ RETURN
- RETURN
END
diff --git a/fer/plt/disp_prep.F b/fer/plt/disp_prep.F
index 62e961a..a61a28b 100644
--- a/fer/plt/disp_prep.F
+++ b/fer/plt/disp_prep.F
@@ -68,10 +68,10 @@
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus.
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* V685+ 12/13 - *acm* bounds checking; dont refer to parts of the string outside its bounds.
+* V6.86 *acm* 1/14 In above fix, let there be spaces before the file spec.
* V694 5/15 - *acm* Ticket 2285: need to initialize iautoc to = 1 so overlay with /LEV=20V works.
* V695 *acm* 9/15 ticket 2311: variance-based levels on constant variables
* V695 *acm* 9/15 (not fully implemented) INT option for levels
-* V6.86 *acm* 1/14 In above fix, let there be spaces before the file spec.
* v697 *acm* 12/15 Ticket 2331, add flag changed_key to common, and restore the color key
* style after a SHADE/SET; SHADE.
* v698 *acm* 2/16 Initialize the use_hist flag to false
@@ -454,6 +454,14 @@
iautoc = 0
nlev = nlev2 ! reuse # of levels from last plot
ENDIF
+
+* ... For ticket 2564. Calls to load the palette and colors, PPL SHASET, use
+* the stored setting shd_levels in the call to setup_color_table. In some
+* instances that previous setting causes colors to be computed for non-existent
+* levels and rgb colors outside the range [0:1]. Set shd_levels to correspond to
+* the nlev for this plot.
+
+ CALL SET_NSHD_LEVELS (nlev)
ELSE
* ... set up for automatic levels
CALL PPLCMD ( from, line, 0, 'LEV,()', 1, 1 )
diff --git a/fer/plt/plot_set_up.F b/fer/plt/plot_set_up.F
index 894fdd2..7bb00bc 100644
--- a/fer/plt/plot_set_up.F
+++ b/fer/plt/plot_set_up.F
@@ -192,6 +192,7 @@
* V7.2 *acm* 4/2017 In fix for 2212, make sure ind_min,ind_max are defined before using them
* to check log limits on log axis. Make sure the limits are actually applied.
* V7.2 *acm* 5/2017 restore correct longitude moduloing for PLOT/VS overlay plots
+* V7.22 *acm* 10/2017 Fix ticket 2565, duplicate and sometimes shifted labels on PLOT/over time plots
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -415,8 +416,16 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
ELSE
pdeplim = pvlim
ENDIF
+ ENDIF
+
+* do not re-draw the main label, logo, other labels from the underlay plot
+ IF (overlay) THEN
+ nlabs_on = 0
+ CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
ENDIF
+ IF ( no_labels ) CALL PPLCMD ( from, line, 0, 'LABS ', 1, 1 )
+
* * * * * * * - - - INDEPENDENT AXIS DATA - - - * * * * * * * * *
IF ( versus ) THEN
time_axis = .FALSE.
diff --git a/fer/plt/polygon_set_up.F b/fer/plt/polygon_set_up.F
index c0dc19a..30c9743 100644
--- a/fer/plt/polygon_set_up.F
+++ b/fer/plt/polygon_set_up.F
@@ -140,6 +140,7 @@
* all-missing it returns arbitrary_large_val4.
* V71 *acm* 2/17 More on ticket 2231. New argument to FULL_VAR_TITLE to control units labels
* V72 *acm* 3/17 For ticket 2517, changes to arguments in calls to AXIS_ENDS
+* v722 *acm* 9/17 Fixes for 2562, polymark and other polygons over log axis.
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -201,14 +202,14 @@
. phlim, pvlim, pxdenig, pydenig,
. cal_id, tax, x_axtyp, y_axtyp, n,
. ss_x_save, ss_y_save, mvh_temp, ier, nc, skipsym,
- . nsiz, ngood
+ . nsiz, ngood, count
REAL x_len, y_len, lo, hi, lox, hix, loy, hiy,
. xkeypos, ykeypos, xkeysize, ykeysize, lab_ht,
. dt_min, epsilon, small, scale,
. xptsmin, xptsmax, xptsmean, xdif, xmeanlog,
. yptsmin, yptsmax, yptsmean, ydif, ymeanlog,
- . first, last
+ . first, last, val
REAL*8 vmin, vmax, delta, ind_min, ind_max, dep_min,
. dep_max
@@ -566,11 +567,12 @@ c ind_dim = plot_axis(1)
xptsmin = ABS(mr_bad_data(mr_x))
xptsmax = -1.* xptsmin
-
+ count = 0
DO 400 i = 1, npts
IF (x_dat(i) .NE. mr_bad_data(mr_x)) THEN
xptsmin = MIN(xptsmin, x_dat(i))
xptsmax = MAX(xptsmax, x_dat(i))
+ count = count+1
ENDIF
400 CONTINUE
@@ -579,15 +581,18 @@ c ind_dim = plot_axis(1)
* Convert the x midpoint to log units, and put the other x points
* on the page scaled by the axis ends xlo and xhi
+ scale = 0.5* ABS(xhi-xlo) ! log axis units
+ scale = 1.
+
IF (xptsmean .GT. epsilon) THEN
xmeanlog = LOG10(xptsmean)
- scale = 0.1* (xhi-xlo) ! log axis units
DO 410 i = 1, npts
+ val = x_dat(i)
xdif = scale*(x_dat(i) - xptsmean)
x_dat(i) = xmeanlog + xdif
410 CONTINUE
- ELSE
+ ELSEIF (count.GT.0) THEN
small = xptsmean
GO TO 5600
ENDIF
@@ -603,11 +608,12 @@ c ind_dim = plot_axis(1)
yptsmin = ABS(mr_bad_data(mr_y))
yptsmax = -1.* yptsmin
-
+ count = 0
DO 500 i = 1, npts
IF (y_dat(i) .NE. mr_bad_data(mr_y)) THEN
yptsmin = MIN(yptsmin, y_dat(i))
yptsmax = MAX(yptsmax, y_dat(i))
+ count = count+1
ENDIF
500 CONTINUE
@@ -616,15 +622,17 @@ c ind_dim = plot_axis(1)
* Convert the y midpoint to log units, and put the other Y points
* on the page scaled by the axis ends ylo and yhi
+ scale = 0.5* ABS(yhi-ylo) ! log axis units
+ scale = 1.
IF (yptsmean .GT. epsilon) THEN
ymeanlog = LOG10(yptsmean)
- scale = 0.1* (yhi-ylo) ! log axis units
DO 510 i = 1, npts
+ val = y_dat(i)
ydif = scale*(y_dat(i) - yptsmean)
y_dat(i) = ymeanlog + ydif
510 CONTINUE
- ELSE
+ ELSEIF (count.GT.0) THEN
small = yptsmean
GO TO 5600
ENDIF
@@ -698,7 +706,7 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
* If the axis is 7 (abstract) then dont do the check either.
tax = grid_line(f_dim,cx_grid(cx_x ))
IF (tax.EQ.mnormal) tax = grid_line(t_dim,cx_grid(cx_x ))
- IF (STR_SAME(line_name(tax),'ABSTRACT') .NE. 0) THEN
+ IF (STR_SAME(line_name(tax),'ABSTRACT') .NE. 0) THEN
cal_name = line_cal_name(tax)
cal_id = TM_GET_CALENDAR_ID ( cal_name )
IF (cal_id .NE. saved_calendar_id) GO TO 5360
@@ -1014,7 +1022,7 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
* Check for valid log axis before proceeding if log and limits are given
IF (is_logx) THEN
- CALL AXIS_ENDS(x_ax, coord_dim, cx_grid(cx_x), vmin,
+ IF (vmin .NE. vmax) CALL AXIS_ENDS(x_ax, coord_dim, cx_grid(cx_x), vmin,
. vmax, delta, x_is_log, x_axtyp, vflag, status )
IF ( status .NE. ferr_ok ) THEN
first = vmin
@@ -1049,8 +1057,13 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
GOTO 5400
ENDIF
ELSE
+* ... lox and hix are log values, AXIS_ENDS expects not-log
+ IF (x_is_log) THEN
+ lox = 10.** lox
+ hix = 10.** hix
+ ENDIF
CALL AXIS_ENDS(x_ax,coord_dim,cx_grid(cx_x),
- . DBLE(lox),DBLE(hix), delta, x_is_log, x_axtyp, vflag, status )
+ . lox, hix, delta, x_is_log, x_axtyp, vflag, status )
IF ( status .NE. ferr_ok ) THEN
first = lox
last = hix
@@ -1090,7 +1103,7 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
* Check for valid log axis before proceeding if log and limits are given
IF (y_is_log) THEN
- CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
+ IF (vmin.NE.vmax) CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
. vmin,vmax,delta, y_is_log, y_axtyp, vflag, status )
IF ( status .NE. ferr_ok ) THEN
first = vmin
@@ -1123,8 +1136,13 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
GOTO 5400
ENDIF
ELSE
+* ... loy and hiy are log values, AXIS_ENDS expects not-log
+ IF (y_is_log) THEN
+ loy = 10.** loy
+ hiy = 10.** hiy
+ ENDIF
CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
- . DBLE(loy),DBLE(hiy), delta, y_is_log, y_axtyp, vflag, status )
+ . loy, hiy, delta, y_is_log, y_axtyp, vflag, status )
IF ( status .NE. ferr_ok ) THEN
first = loy
last = hiy
@@ -1288,6 +1306,6 @@ C slen = TM_LENSTR1( plot_title )
5600 buff3 = LEFT_REAL (small, '(G15.3)', slen)
CALL ERRMSG( ferr_out_of_range, status,
- . 'X coordinates on log axis negative or too small : '//
+ . 'coordinates on log axis negative or too small : '//
. buff3(:slen), *5000 )
END
diff --git a/fer/stk/setup_gather.F b/fer/stk/setup_gather.F
index 3d7a3a5..11ba4bc 100644
--- a/fer/stk/setup_gather.F
+++ b/fer/stk/setup_gather.F
@@ -58,6 +58,8 @@
* should be discouraged.
* V702 3/17 *sh* Code extracted from IS_STRIP and several refinements added
+* V7.21 9/17 *acm Fix ticket 2561. Multiple transformations and multiple-axis
+* transformations on the split axis.
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -272,6 +274,12 @@
IF (split_on_compressed_ax
. .AND. .NOT.multiax_trans(split_ax) ) CYCLE
+* When there are multiple transformations in the expression and
+* multiple-axis transformations on the split axis, the gather
+* was returning only the last chunk of the split.
+
+ IF (split_on_compressed_ax .AND. n_dfrnt_xforms .GT. 1) CYCLE
+
* By how much does the source data exceed the available space?
* For a compressing calculation like @AVE
* available_mem must hold [nbuffers*res_size+src_size] at one time
diff --git a/fer/utl/SOURCE_FILES b/fer/utl/SOURCE_FILES
index b081d5b..a56a0ad 100644
--- a/fer/utl/SOURCE_FILES
+++ b/fer/utl/SOURCE_FILES
@@ -143,7 +143,6 @@ ndig_coords.F\
no_grid_range.F\
no_line_range.F\
open_show_file.F\
-pack_line_storage.F\
parse_nam_dset_grd.F\
parse_number_list.F\
parse_string_list.F\
diff --git a/fer/utl/deallo_all_axes.F b/fer/utl/deallo_all_axes.F
index 0093f8b..4ffee3a 100644
--- a/fer/utl/deallo_all_axes.F
+++ b/fer/utl/deallo_all_axes.F
@@ -57,7 +57,6 @@
* Local declarations
- LOGICAL all_gone
INTEGER TM_GET_LINENUM, TM_GET_GRID_OF_LINE,
. islot, grid, status, num_protected_axes
@@ -68,7 +67,6 @@
IF (num_protected_axes .EQ. unspecified_int4 .OR.
. num_protected_axes .LE. 0) num_protected_axes = 1
- all_gone = .TRUE.
DO 100 islot = num_protected_axes+1, line_ceiling
IF (line_name(islot) .NE. char_init16) THEN
@@ -76,7 +74,8 @@
IF (line_use_cnt(islot) .LE. 0) THEN
IF ( islot .LE. max_lines ) THEN
IF (.NOT. line_regular(islot))
- . CALL PACK_LINE_STORAGE(islot)
+ . CALL FREE_LINE_DYNMEM(islot)
+ line_regular(islot) = .TRUE.
line_name(islot) = char_init16
ELSE
CALL TM_DEALLO_DYN_LINE(islot)
@@ -94,18 +93,12 @@
CALL ERRMSG(ferr_internal, status,
. 'axis use count err', *5000)
ENDIF
- all_gone = .FALSE.
ENDIF
ENDIF
100 CONTINUE
-* If all axes were deleted sucessfully, then reset the pointer into coordinate
-* storage.
-
- IF (all_gone) next_line_mem_pos = pline_mem_init
-
RETURN
* error exits
diff --git a/fer/utl/gcf_get_axis_srcs.F b/fer/utl/gcf_get_axis_srcs.F
index 119b2d9..4c2836a 100644
--- a/fer/utl/gcf_get_axis_srcs.F
+++ b/fer/utl/gcf_get_axis_srcs.F
@@ -124,5 +124,11 @@
100 CONTINUE
+
+* Can we get enough info out of a direction-calling variable definition to set up
+* the axis sources for a direction-changing function? See is_do_gc_fcn.
+* (Probably not for just a show grid operation? Would it be possible to put
+* something in to issue a NOTE that the grid will depend on the args?)
+
RETURN
END
diff --git a/fer/utl/gcf_set_normal_axis.F b/fer/utl/gcf_set_normal_axis.F
index 3a0ed70..20305d1 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fer/utl/gcf_set_normal_axis.F
@@ -38,6 +38,8 @@
*
* V720 3/16 *acm*
+* V722:11/17 *acm* Fix ticket 2569: decrement line-use count when setting
+* the grid dimension to normal.
include 'ferret.parm'
include 'tmap_dims.parm'
@@ -47,8 +49,11 @@
* calling argument declarations
INTEGER grid, idim
+* local declarations
+ INTEGER line
+
+ CALL TM_DEALLO_DYN_LINE(grid_line(idim, grid))
grid_line(idim, grid) = mnormal
-! anything else?
RETURN
END
diff --git a/fer/utl/pack_line_storage.F b/fer/utl/pack_line_storage.F
deleted file mode 100644
index d8d2188..0000000
--- a/fer/utl/pack_line_storage.F
+++ /dev/null
@@ -1,110 +0,0 @@
-
- SUBROUTINE PACK_LINE_STORAGE (axis)
-
-*
-*
-* This software was developed by the Thermal Modeling and Analysis
-* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-* hereafter referred to as NOAA/PMEL/TMAP.
-*
-* Access and use of this software shall impose the following
-* obligations and understandings on the user. The user is granted the
-* right, without any fee or cost, to use, copy, modify, alter, enhance
-* and distribute this software, and any derivative works thereof, and
-* its supporting documentation for any purpose whatsoever, provided
-* that this entire notice appears in all copies of the software,
-* derivative works and supporting documentation. Further, the user
-* agrees to credit NOAA/PMEL/TMAP in any publications that result from
-* the use of this software or in any product that includes this
-* software. The names TMAP, NOAA and/or PMEL, however, may not be used
-* in any advertising or publicity to endorse or promote any products
-* or commercial entity unless specific written permission is obtained
-* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-* is not obligated to provide the user with any support, consulting,
-* training or assistance of any kind with regard to the use, operation
-* and performance of this software nor to provide the user with any
-* updates, revisions, new versions or "bug fixes".
-*
-* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
-*
-*
-* For a line (axis) that has been deallocated, pack the coordinate memory array.
-
-* ACM 6/11/2002
-* V5.41 7/30/02 ACM Fix def of npoints. Also, move the pointer into
-* line_mem array when the coordinates in line_mem have
-* been changed.
-* V600 10/28/05 ACM Fix bug 1354: We were moving way more coord data than needed
-* V600 10/31/05 ACM Renamed from REMOVE_AXIS.F
-*
-
-* Parameters and commons
-
- include 'tmap_dims.parm'
-# include "tmap_dset.parm"
- include 'xtm_grid.cmn_text'
- include 'ferret.parm'
-
-* Argument declaration
-
- INTEGER axis
-
-* Local declarations
- INTEGER TM_GET_LINENUM, iaxis, imem, first_pt, last_pt,
- . npoints, n_to_move, num_protected_axes
-
- num_protected_axes = TM_GET_LINENUM( 'EZ' ) ! top protected axis
-
- IF (num_protected_axes .EQ. unspecified_int4 .OR.
- . num_protected_axes .LE. 0) num_protected_axes = 1
-
-* First index in this line, number of points in line
-
- first_pt = line_subsc1 ( axis )
-
-* Recover space in line_mem array that defines point locations, box sizes.
-* If this line is the last in the coordinate storage, move the pointer only.
-
- IF (first_pt .NE. unspecified_int4 .AND.
- . first_pt .NE. int4_init) THEN
-
- npoints = 2*line_dim(axis) + 1
- last_pt = first_pt + npoints
-
- n_to_move = next_line_mem_pos - last_pt
-
- IF (last_pt .LT. next_line_mem_pos) THEN
- DO 200 imem = 1, n_to_move
- line_mem(first_pt+imem-1) = line_mem(last_pt+imem-1)
- 200 CONTINUE
- ENDIF
-
-* For all axes whose line_mem entries were moved, also move the pointer
-* into line_mem
-
- DO 300 iaxis = num_protected_axes+1, line_ceiling
- IF ( (.NOT. line_regular(iaxis) ) .AND.
- . (line_subsc1(iaxis) .NE. unspecified_int4) ) THEN
-
- IF (line_subsc1(iaxis) .GT. first_pt)
- . line_subsc1(iaxis) = line_subsc1(iaxis) - npoints
-
- ENDIF
- 300 CONTINUE
-
- line_subsc1(axis) = unspecified_int4
-
- next_line_mem_pos = first_pt + n_to_move
-
- ENDIF
-
- RETURN
- END
diff --git a/fer/utl/ss_neighbors.F b/fer/utl/ss_neighbors.F
index ee4a260..282e218 100644
--- a/fer/utl/ss_neighbors.F
+++ b/fer/utl/ss_neighbors.F
@@ -109,9 +109,9 @@
* initialize pointers for axes with irregularly spaced points
IF ( .NOT.regular ) THEN
- isub0 = line_subsc1( axis ) - 1
- ibot = isub0 + 1
- itop = isub0 + line_len
+ isub0 = 0
+ ibot = 1
+ itop = line_len
ENDIF
* ***** SOLUTIONS WHEN GIVEN POINT BEYOND AXIS ENDS
diff --git a/fer/xeq/xeq_cancel.F b/fer/xeq/xeq_cancel.F
index a2094ab..ee4f08d 100644
--- a/fer/xeq/xeq_cancel.F
+++ b/fer/xeq/xeq_cancel.F
@@ -793,9 +793,8 @@
line_keep_flag(axis) = .FALSE. ! see tm_garb_col_grids.F
IF (line_use_cnt(axis) .LE. 0) THEN
IF ( axis .LE. max_lines ) THEN
- IF (.NOT. line_regular(axis))
- . CALL PACK_LINE_STORAGE(axis)
- line_name(axis) = char_init16
+ CALL FREE_LINE_DYNMEM ( axis ) ! checks that irreg coords are stored
+ line_name(axis) = char_init16
ELSE
CALL TM_DEALLO_DYN_LINE(axis)
ENDIF
diff --git a/fer/xeq/xeq_define.F b/fer/xeq/xeq_define.F
index d86644f..6e51280 100644
--- a/fer/xeq/xeq_define.F
+++ b/fer/xeq/xeq_define.F
@@ -389,13 +389,13 @@
. TM_FPEQ, TM_DFPEQ, TM_CHECK_BNDS, MATCH_NAME,
. NC_GET_ATTRIB, TM_LEGAL_NAME_OP, TM_HAS_STRING,
. ITSA_1LINEIF, MATCH4, GO_FILE_INPUT, IS_AGG_MEMBER,
- . MATCH_TEMPLATE, TM_ITS_SUBSPAN_MODULO,
+ . MATCH_TEMPLATE, TM_ITS_SUBSPAN_MODULO, TM_CHECK_BOX_LOC,
. dup_name, delta_given, create, irreg, its_reg, its_edges,
. its_calendar, its_modulo, has_repeated, has_bounds,
. new_att, new_att_modulo, got_it, orient_t, agg_quiet,
. letdset, its_remote, agg_hide, def_att_quiet, purge_all,
. user, norm, nouser, t_regular, use_strict, have_expr,
- . original, true_month, line_allocated, truemonth_noted,
+ . original, true_month, line_alloc, truemonth_noted,
. is_double, misordered, bnds_or_edges, okmod
INTEGER REGION_NUMBER, GRID_FROM_NAME, VIEWPORT_NUMBER, STR_UPCASE,
. CX_DIM_LEN, ALIAS_ID,
@@ -407,7 +407,7 @@
. status, idim, vax_code, islot, iunit, iline, cat, var,
. orient, mods_cx, cx, mr, n, i1, i2, i3, i4, i5, i6, pos,
. grid, iqual, ax_grid, ivp, qp, iseg, uvar, dset, slen, s1,
- . old_line, old_grid, frst_pt, dim(nferdims), ndim, natom,
+ . old_line, old_grid, dim(nferdims), ndim, natom,
. at_type (maxatoms), at_id (maxatoms),
. at_start (maxatoms), at_end (maxatoms), cal_id,
. dflt_cal_id, nmonths, ndays, d_before_mon(12),
@@ -416,7 +416,7 @@
. attoutflag, attlen, coordvar,
. dset_to_add, dir, type, attype, attid, ibuff, i0,
. agg_dim, nagfiles, ivar, item, nlab, ierr, nlen,
- . llen, line, dstart, units, npts, ipt1, ipte
+ . llen, line, dstart, units, npts, ipt1, ipte, iline_b
REAL rbuff, bad_flag, yeardays,
. val, dummy, val_buf, xloc, yloc, halign, angle, size,
@@ -424,10 +424,11 @@
REAL*4 r4_unspec, scale, xlovp, ylovp, xhivp, yhivp,
. xoei, yoei, xcei, ycei
- REAL*8 SECS_FROM_BC, TM_WW_AXLEN,
+ REAL*8 SECS_FROM_BC, TM_WW_AXLEN, GET_LINE_COORD,
. bc_to_t0, start, new_ww, delta, end, secs2start,
. micro_adj, axwwlen, rmod_len, secsperyear, small,
- . new_att_modulo_len, madj, firs_coord, last_coord, timefac
+ . new_att_modulo_len, madj, firs_coord, last_coord, timefac,
+ . vlo, vhi, idel
CHARACTER TM_FMT*16, TM_CLEAN_FILENAME*512,SECS_TO_DATE_OUT*11,
. reg_name*24, buff1*128, buff2*512, buff3*512,
. buffsym*120, cal_name*32, buff*512,
@@ -932,7 +933,7 @@ c IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
* /LIKE
- line_allocated = .FALSE.
+ line_alloc = .FALSE.
iqual = qual_given( slash_def_ax_like )
IF ( iqual .GT. 0 ) THEN
@@ -961,7 +962,7 @@ c IF ( .NOT.TM_LEGAL_NAME( buff3 ) ) GOTO 5100
* find a space to catalog it
status = ALLO_MANAGED_AXIS( iline )
IF ( status .NE. merr_ok ) GOTO 5000
- line_allocated = .TRUE.
+ line_alloc = .TRUE.
* copy the line definition
CALL TM_COPY_LINE ( line, iline )
@@ -1215,7 +1216,7 @@ C /units=months is 1/12 of the length of the year
ENDIF
* find a space to catalog it (may already be done above with DEF AX/LIKE=)
- IF (.NOT. line_allocated) THEN
+ IF (.NOT. line_alloc) THEN
status = ALLO_MANAGED_AXIS( iline )
IF ( status .NE. merr_ok ) GOTO 5000
ENDIF
@@ -1287,19 +1288,31 @@ C /units=months is 1/12 of the length of the year
idim = dim(1)
n = CX_DIM_LEN( idim, cx )
-* ... original start of free line memory
- frst_pt = next_line_mem_pos
-* ... allocate some storage for the coordinates
- IF (frst_pt+2*n+1 .GT. maxlinestore) GOTO 5590
+* Allocate line coordinate storage, put the pointer in array linemem(iline)
+* and n+1 edges storage in lineedg(iline)
+
+ CALL GET_LINE_DYNMEM (n, iline, status)
+ IF (status .NE. ferr_ok) GOTO 5000
* ... If they gave upper- and lower-bounds we need to store all that,
-* at least temporarily. IF its too big suggest edges.
- IF (has_bounds .AND. frst_pt+3*n .GT. maxlinestore) THEN
- IF (num_uvars_in_cmnd .EQ. 2 .AND. n2.EQ.2*n) GOTO 5592
- IF (num_uvars_in_cmnd .EQ. 3) GOTO 5592
+* temporarily. Store it in scratch line storage, line_0.
+* IF the allocation fails with bounds suggest edges.
+
+ IF (has_bounds) THEN
+
+* If bounds are in a single extra variable they are of size 2*n
+* If they are in two extra arrays, allocate another arrays of size n
+
+ IF (num_uvars_in_cmnd .EQ. 3) THEN
+ CALL GET_LINE_DYNMEM (n, line_0, status)
+ IF (status .NE. ferr_ok) GOTO 5592
+ ELSEIF (n2 .EQ. 2*n) THEN
+ CALL GET_LINE_DYNMEM (n2, line_0, status)
+ IF (status .NE. ferr_ok) GOTO 5592
+ ENDIF
ENDIF
-* ... store coordinate positions (error status already checked)
+* ... store edge positions (error status already checked)
IF (has_bounds) THEN
CALL NON_ARRAY_SUBSC( is_mr, 2 )
ELSE
@@ -1311,14 +1324,15 @@ C /units=months is 1/12 of the length of the year
n = n - 1 ! edges array is one longer than points
IF (n .LE. 0) GOTO 5520
CALL EXTRACT_DP_LINE( cx, memry(mr)%ptr,
- . line_mem(frst_pt+n), idim, n+1 )
+ . lineedg(iline)%ptr, idim, n+1 )
npoints = n
* ... monotonic?
- DO 527 i1 = frst_pt+n+1, frst_pt+n+n
- IF (.NOT. TM_FPEQ( line_mem(i1-1), line_mem(i1) ).AND.
- . line_mem(i1-1) .GT. line_mem(i1)) GOTO 5570
+ DO 527 i1 = 2, n
+ vhi = GET_LINE_COORD (lineedg(iline)%ptr, i1)
+ vlo = GET_LINE_COORD (lineedg(iline)%ptr, i1-1)
+ IF (.NOT. TM_FPEQ( vlo, vhi ) .AND. vhi .LT. vlo) GOTO 5570
527 CONTINUE
* ... are there repeated values?
@@ -1329,9 +1343,10 @@ C /units=months is 1/12 of the length of the year
use_strict = .FALSE. ! unused for DEFINE AXIS
micro_adj = 1E-6 *
- . (line_mem(frst_pt+n+n) - line_mem(frst_pt+n))
+ . (GET_LINE_COORD (lineedg(iline)%ptr, n+1) -
+ . GET_LINE_COORD (lineedg(iline)%ptr, 1))
- CALL TM_CHECK_COORDS (frst_pt+n, frst_pt+n+n, is_double,
+ CALL TM_CHECK_COORDS (lineedg(iline)%ptr, n+1, is_double,
. use_strict, has_repeated, misordered,
. micro_adj, epsilon, epsilon)
IF (misordered) GOTO 5560
@@ -1341,8 +1356,10 @@ C /units=months is 1/12 of the length of the year
* ... store points: midway between box boundaries ...
has_repeated = .FALSE.
- DO 528 i1 = frst_pt+1, frst_pt+n
- line_mem(i1-1) = (line_mem(i1+n-1)+line_mem(i1+n)) * 0.5
+ DO 528 i1 = 2, n+1
+ vhi = GET_LINE_COORD (lineedg(iline)%ptr,i1)
+ vlo = GET_LINE_COORD (lineedg(iline)%ptr,i1-1)
+ CALL PUT_LINE_COORD(linemem(iline)%ptr, i1-1, (vlo+vhi)* 0.5)
528 CONTINUE
* Fix ticket 2400: Def of start was pointing to the lower grid cell edge not the
@@ -1350,18 +1367,11 @@ C /units=months is 1/12 of the length of the year
* as irregular as the last comparison took us beyond the upper edge of the axis.
its_reg = .TRUE. ! until proven otherwise
- start = line_mem(frst_pt)
- delta = line_mem(frst_pt+1) - start
- DO 530 i1 = frst_pt+n+1,frst_pt+2*n
-#ifdef double_p
- IF (.NOT.TM_FPEQ( (delta),
- . (line_mem(i1)-line_mem(i1-1))) )
- . its_reg = .FALSE.
-#else
- IF (.NOT.TM_FPEQ( SNGL(delta),
- . SNGL(line_mem(i1)-line_mem(i1-1))) )
- . its_reg = .FALSE.
-#endif
+ start = GET_LINE_COORD (linemem(iline)%ptr, 1)
+ delta = GET_LINE_COORD (linemem(iline)%ptr, 2) - start
+ DO 530 i1 = 2, n+1
+ idel = GET_LINE_COORD (lineedg(iline)%ptr, i1) - GET_LINE_COORD (lineedg(iline)%ptr, i1-1)
+ IF (.NOT.TM_FPEQ( (delta),idel) ) its_reg = .FALSE.
530 CONTINUE
ELSE
@@ -1369,12 +1379,12 @@ C /units=months is 1/12 of the length of the year
* NOT EDGES -- POINTS
CALL EXTRACT_DP_LINE( cx, memry(mr)%ptr,
- . line_mem(frst_pt), idim, n )
+ . linemem(iline)%ptr, idim, n )
IF ( npoints .EQ. unspecified_int4 ) npoints = n
* ... a single point is always "regular" (unless definition has BOUNDS!!)
IF (n .EQ. 1 .AND. .NOT.has_bounds) THEN
- start = line_mem(frst_pt)
+ start = GET_LINE_COORD (linemem(iline)%ptr, 1)
delta = 1
its_reg = .TRUE.
GOTO 560
@@ -1382,9 +1392,10 @@ C /units=months is 1/12 of the length of the year
* ... monotonic?
- DO 532 i1 = frst_pt+1, frst_pt+npoints-1
- IF (.NOT. TM_FPEQ( line_mem(i1-1), line_mem(i1) ).AND.
- . line_mem(i1-1) .GT. line_mem(i1)) GOTO 5570
+ DO 532 i1 = 2, npoints
+ vhi = GET_LINE_COORD (linemem(iline)%ptr, i1)
+ vlo = GET_LINE_COORD (linemem(iline)%ptr, i1-1)
+ IF (.NOT. TM_FPEQ( vlo, vhi ) .AND. vhi .LT. vlo) GOTO 5570
532 CONTINUE
* ... are there repeated values?
@@ -1395,9 +1406,10 @@ C /units=months is 1/12 of the length of the year
use_strict = .FALSE. ! unused for DEFINE AXIS
micro_adj = 1E-6 *
- . (line_mem(frst_pt+n-1) - line_mem(frst_pt))
+ . (GET_LINE_COORD (linemem(iline)%ptr, n) -
+ . GET_LINE_COORD (linemem(iline)%ptr, 1))
- CALL TM_CHECK_COORDS (frst_pt, frst_pt+npoints-1, is_double,
+ CALL TM_CHECK_COORDS (linemem(iline)%ptr, npoints, is_double,
. use_strict, has_repeated, misordered,
. micro_adj, epsilon, epsilon)
IF (misordered) GOTO 5560
@@ -1411,62 +1423,96 @@ C /units=months is 1/12 of the length of the year
cx = is_cx(2)
mr = is_mr(2)
- CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
- . line_mem(next_line_mem_pos + n), idim, n2 )
+ IF (n2 .EQ. n+1) THEN
+
+ IF (num_uvars_in_cmnd .EQ. 2) THEN
+ CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
+ . lineedg(iline)%ptr, idim, n2 )
+ ENDIF
* If given as coords, lo_bounds, hi_bounds, then
* 1) check that lo_bounds{i+1} = hi_bounds{i}
* 2) If ok, add the upper high bound to the list and treat
* this as the case where we give the bounds as N+1 values
- IF (num_uvars_in_cmnd .EQ. 3) THEN
+ ELSE IF (n2 .EQ. 2*n) THEN
+ CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
+ . lineedg(line_0)%ptr, idim, n2 )
+ ENDIF
+
+ IF (num_uvars_in_cmnd .EQ. 3) THEN
+
+ CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
+ . lineedg(iline)%ptr, idim, n2 )
+
cx = is_cx(3)
mr = is_mr(3)
CALL EXTRACT_DP_LINE2( cx, memry(mr)%ptr,
- . line_mem(next_line_mem_pos + n+n2), idim, n3 )
- DO i = 1, n3-1
- IF (line_mem(next_line_mem_pos + n+i) .NE.
- . line_mem(next_line_mem_pos + 2*n+i-1) )
- . GOTO 5750
+ . lineedg(line_0)%ptr, idim, n3 )
+ DO i = 1, n-1
+ vlo = GET_LINE_COORD (lineedg(iline)%ptr, i+1)
+ vhi = GET_LINE_COORD (lineedg(line_0)%ptr, i)
+ IF (vlo .NE. vhi ) GOTO 5750
ENDDO
- line_mem(next_line_mem_pos + 2*n) =
- . line_mem(next_line_mem_pos + 3*n-1)
- n2 = n+1
+ vhi = GET_LINE_COORD (lineedg(line_0)%ptr, n)
+ CALL PUT_LINE_COORD (lineedg(iline)%ptr, n+1, vhi)
+ n2 = n + 1
+
+* deallocate the extra n storage used for bounds.
+ CALL FREE_LINE_DYNMEM(line_0)
+
ENDIF
* Check that bounds enclose points, and that they are contiguous
- line_subsc1 ( iline ) = frst_pt
- line_dim ( iline ) = npoints
- IF (.NOT. TM_CHECK_BNDS (iline, n2, .TRUE., buff3) ) GO TO 5750
+
+ line_dim ( iline ) = npoints
+ IF (n2 .EQ. n+1) THEN
+ IF ( .NOT. TM_CHECK_BOX_LOC (linemem(iline)%ptr,
+ . lineedg(iline)%ptr, n2) ) GOTO 5750
+
+ ELSE
+ IF (.NOT. TM_CHECK_BNDS (linemem(iline)%ptr,
+ . lineedg(line_0)%ptr, n,
+ . iline, .TRUE., buff3) ) GO TO 5750
+
+* Change from N*2 storage of bounds to N+1 edges.
+ CALL TM_CONVERT_BOUNDS_EDGES (lineedg(line_0)%ptr,
+ . lineedg(iline)%ptr, n)
+
+* deallocate the temporary 2*n storage used for bounds.
+ CALL FREE_LINE_DYNMEM(line_0)
+ ENDIF
ELSE
*... create bounds equidistant between grid points
* ... store initial box lower bound (start of axis)
- line_mem(frst_pt+npoints) = line_mem(frst_pt) -
- . 0.5 * ( line_mem(frst_pt+1) - line_mem(frst_pt) )
+
+ vlo = GET_LINE_COORD (linemem(iline)%ptr, 1)
+ vhi = GET_LINE_COORD (linemem(iline)%ptr, 2)
+ val = vlo - (vhi-vlo)/2.
+ CALL PUT_LINE_COORD (lineedg(iline)%ptr, 1, val)
* ... mid-axis box boundaries ...
- DO 539 i1 = frst_pt+1, frst_pt+npoints-1
- line_mem(i1+npoints) = (line_mem(i1-1)+line_mem(i1)) * 0.5
+ DO 539 i1 = 2, npoints
+ vlo = GET_LINE_COORD (linemem(iline)%ptr, i1-1)
+ vhi = GET_LINE_COORD (linemem(iline)%ptr, i1)
+ val = vlo + (vhi-vlo)/2.
+ CALL PUT_LINE_COORD (lineedg(iline)%ptr, i1, val)
539 CONTINUE
+
* ... upper-most box bound (end of axis)
- i2 = frst_pt+npoints-1 ! last box point
- line_mem(i2+npoints+1) = line_mem(i2) +
- . 0.5 * ( line_mem(i2) - line_mem(i2-1) )
+ val = vhi + (vhi-vlo)/2.
+ CALL PUT_LINE_COORD (lineedg(iline)%ptr, npoints+1, val)
+
its_reg = .TRUE. ! until proven otherwise
- start = line_mem(frst_pt)
- delta = line_mem(frst_pt+1) - start
- DO 550 i1 = frst_pt+2,frst_pt+npoints-1
-#ifdef double_p
- IF (.NOT.TM_FPEQ( (delta),
- . (line_mem(i1)-line_mem(i1-1))) )
- . its_reg = .FALSE.
-#else
- IF (.NOT.TM_FPEQ( SNGL(delta),
- . SNGL(line_mem(i1)-line_mem(i1-1))) )
- . its_reg = .FALSE.
-#endif
+
+ its_reg = .TRUE. ! until proven otherwise
+ start = GET_LINE_COORD (linemem(iline)%ptr, 1)
+ delta = GET_LINE_COORD (linemem(iline)%ptr, 2) - start
+ DO 550 i1 = 2, npoints
+ idel = GET_LINE_COORD (lineedg(iline)%ptr, i1) - GET_LINE_COORD (lineedg(iline)%ptr, i1-1)
+ IF (.NOT.TM_FPEQ( (delta),idel) ) its_reg = .FALSE.
550 CONTINUE
ENDIF
@@ -1477,11 +1523,9 @@ C /units=months is 1/12 of the length of the year
line_start ( iline ) = start
line_delta ( iline ) = delta
line_regular ( iline ) = .TRUE.
- line_subsc1 ( iline ) = unspecified_int4
- ELSE
* ... save irregular line data
- line_subsc1 ( iline ) = frst_pt
- line_start ( iline ) = line_mem(frst_pt)
+ ELSE
+ line_start ( iline ) = GET_LINE_COORD (linemem(iline)%ptr, 1)
line_delta ( iline ) = unspecified_val8
line_dim ( iline ) = npoints ! need this here so TM_CHECK_BNDS works.
line_regular( iline ) = .FALSE.
@@ -1561,9 +1605,10 @@ C /units=months is 1/12 of the length of the year
line_start ( iline ) = start
line_delta ( iline ) = delta
line_regular ( iline ) = .TRUE.
- line_subsc1 ( iline ) = unspecified_int4
ENDIF
+ IF (line_regular(iline)) CALL FREE_LINE_DYNMEM (iline)
+
* /T0 = date (or supply default)
iqual = qual_given( slash_T0 )
new_att_t0 = ' '
@@ -1689,7 +1734,9 @@ C /units=months is 1/12 of the length of the year
new_att_modulo = .TRUE.
new_att_modulo_len = rmod_len
ELSE IF (.NOT.has_bounds .AND. .NOT.line_regular(iline)) THEN
- CALL TM_ADJUST_BOUNDS(iline, 360.0, axwwlen, its_modulo)
+ CALL TM_ADJUST_BOUNDS(iline, line_dim(iline),
+ . 360, axwwlen, its_modulo)
+
IF (its_modulo) THEN
rmod_len = 360.D0
new_att_modulo = .TRUE.
@@ -1727,8 +1774,9 @@ C /units=months is 1/12 of the length of the year
delta = end - start
IF ( (secs2start .LE. 2*secsperyear)
. .AND. (delta*line_tunit(iline) .LE. secsperyear) ) THEN
- CALL TM_ADJUST_BOUNDS(iline,
- . secsperyear/line_tunit(iline), axwwlen, okmod)
+ CALL TM_ADJUST_BOUNDS( iline, line_dim(iline),
+ . secsperyear/line_tunit(iline), axwwlen, okmod)
+
IF (okmod) THEN
its_modulo = .TRUE.
rmod_len = axwwlen
@@ -1745,8 +1793,10 @@ C /units=months is 1/12 of the length of the year
* make the axis too long, reset the bounds so the axis is the modulo length.
* (may have been done for special cases above)
- IF (its_modulo .AND. .NOT.bnds_or_edges .AND. rmod_len.GT.0.) THEN
- CALL TM_ADJUST_BOUNDS(iline, rmod_len, axwwlen, okmod)
+ IF (irreg .AND. its_modulo .AND. .NOT.bnds_or_edges .AND. rmod_len.GT.0.) THEN
+ CALL TM_ADJUST_BOUNDS( iline, line_dim(iline),
+ . rmod_len, axwwlen, okmod)
+
IF (.NOT.okmod) its_modulo = .FALSE.
ENDIF
@@ -1782,17 +1832,17 @@ c CALL TM_WARN_SUBSPAN (iline)
* ... Was it a true-month axis (defined in the classic way without the /MONTHLY qualifier)?
* 1/13/2017 ticket 2497, Back off this auto-detection of monthly axes for now.
-
+* (If this is implemented, needs to be changed from line_mem() references to dynamic
+* coordinate methods.)
c IF (.NOT. true_month .AND. irreg .AND. .NOT.line_modulo( iline)) THEN
c units = TM_UNIT_ID( line_units(iline) )
-c CALL TM_CHECK_MONTHLY_AXIS (line_mem(frst_pt), line_dim(iline),
+c CALL TM_CHECK_MONTHLY_AXIS (linemem(iline)%ptr,, line_dim(iline),
c . cal_id, line_t0(iline), units, line_units(iline),
c . start, delta, line_tunit(iline), true_month)
c IF (true_month) THEN
c line_regular(iline) = .TRUE.
c line_start (iline) = start !* line_tunit(iline)/ un_convert(pun_day)
c line_delta (iline) = delta
-c line_subsc1 (iline) = unspecified_int4
c last_coord = line_start(iline) + DBLE(npts-1)*line_delta(iline)
c firs_coord = start
c line_unit_code (iline) = units
@@ -1806,11 +1856,6 @@ c ENDIF
* ... coordinate pointer for next line to save
* Bounds are stored as edges, so increase by N coordinates and N+1 edges
-* acm move this to before purge_mr_axis, which also resets next_line_mem_pos
-* after it deletes old_line.
-
- IF (irreg .AND. .NOT.line_regular(iline))
- . next_line_mem_pos = frst_pt + 2*n+1
* check for redefinitions
IF ( dup_name ) THEN
IF ( TM_LINE_MATCH( old_line, iline ) ) THEN
@@ -2756,7 +2801,8 @@ c ?? if nlab=0, use next avail slot?
5510 CALL ERRMSG( ferr_invalid_command, status,
. 'Conflicting /X,/Y,/Z/T/E or /F axis orientations given',
. *5000 )
- 5520 CALL ERRMSG( ferr_grid_definition, status,
+ 5520 CALL FREE_LINE_DYNMEM (iline)
+ CALL ERRMSG( ferr_grid_definition, status,
. 'error in start,end,delta', *5000 )
5525 CALL ERRMSG( ferr_grid_definition, status,
. 'Axis length exceeds modulo length', *5000 )
@@ -2766,9 +2812,11 @@ c ?? if nlab=0, use next avail slot?
. '/T0='//buff2(:TM_LENSTR1(buff2)), *5000 )
5550 CALL ERRMSG( ferr_grid_definition, status,
. 'inappropriate units:'//buff1(:TM_LENSTR1(buff1)), *5000 )
- 5560 CALL ERRMSG( ferr_grid_definition, status,
+ 5560 CALL FREE_LINE_DYNMEM (iline)
+ CALL ERRMSG( ferr_grid_definition, status,
. 'unrepairable repeated axis coords', *5000 )
- 5570 buff1 = TM_FMT(FLOAT(i1-frst_pt+1), 14, 16, slen)
+ 5570 CALL FREE_LINE_DYNMEM (iline)
+ buff1 = TM_FMT(FLOAT(i1), 14, 16, slen)
CALL ERRMSG( ferr_grid_definition, status,
. 'data for DEFINE AXIS/FROM_VARIABLE is not monotonically increasing at index '
. //buff1(:slen), *5000 )
@@ -2776,10 +2824,8 @@ c ?? if nlab=0, use next avail slot?
. 'data for DEFINE AXIS/FROM_VARIABLE is ambiguous', *5000 )
5582 CALL ERRMSG( ferr_grid_definition, status,
. 'illegal argument for DEFINE AXIS/NPOINTS', *5000 )
- 5590 CALL ERRMSG( ferr_prog_limit, status,
- . 'axis coordinate storage exhausted - issue CANCEL AXIS/ALL', *5000 )
5592 CALL ERRMSG( ferr_prog_limit, status,
- . 'axis coordinate storage exhausted - '//
+ . 'Unable to allocate system memory for coordinate storage - '//
. 'use /EDGES not /BOUNDS to save space', *5000 )
5600 slen = TM_LENSTR1(buff3)
CALL ERRMSG( ferr_syntax, status,
@@ -2827,7 +2873,9 @@ c ?? if nlab=0, use next avail slot?
. ') must be N, N=number of axis coordinates ('//
. buff1(:slen) //')', *5000 )
-5750 CALL ERRMSG( ferr_grid_definition, status,
+5750 CALL FREE_LINE_DYNMEM (iline)
+ CALL FREE_LINE_DYNMEM (line_0)
+ CALL ERRMSG( ferr_grid_definition, status,
. 'BOUNDS specified do not correctly enclose coordinate points',
. *5000 )
5760 CALL ERRMSG( ferr_grid_definition, status,
diff --git a/fer/xeq/xeq_list.F b/fer/xeq/xeq_list.F
index 4588de2..971913c 100644
--- a/fer/xeq/xeq_list.F
+++ b/fer/xeq/xeq_list.F
@@ -181,7 +181,7 @@
. do_comma_del, do_tab_del, do_dods, do_xml,
. permute, all_at_once, list_at_eof, head_enh,
. clobber, quiet, have_outtype, curvi_axes(nferdims),
- . do_shrink
+ . do_shrink, as_global
INTEGER TM_LENSTR1, CX_DIM_LEN, STR_CASE_BLIND_COMPARE,
. STR_UPCASE, GET_MAX_STRING_LEN,
@@ -292,13 +292,22 @@
ENDIF
* /KEEP_AXISNAMES for netCDF ?
- i = slash_list_keepax
+
i = qual_given( slash_list_keepax )
keepax_flag = 0
IF ( i .GT. 0 ) THEN
keepax_flag = 1
ENDIF
+* /ASGLOBAL to write a netCDF Global Attribute?
+* Write the variable as a global attribute; conditions on this
+* variable are checked in cdf_list: 1-D, single value string or
+* up to 100 values numeric.
+
+ as_global = qual_given( slash_list_asglobal ) .GT. 0
+ IF (.NOT. do_cdf .AND. as_global) CALL WARN(
+ . '/ASGLOBAL is valid only for NetCDF output. Ignored')
+
* /EDGES for netCDF ?
edges_flag = 0
IF ( qual_given(slash_list_edges) .GT. 0) edges_flag = 1
@@ -674,7 +683,7 @@ c IF (.NOT.permute) CALL GET_CX_DIMS(cx,ndim, perm )
. list_at_eof, cdf_recax, nvars2list,
. mr_perm, my_cx, buff, head_enh,
. pcdf_mode_normal, clobber, edges_flag, do_bounds,
- . keepax_flag, out_type, quiet, status )
+ . keepax_flag, out_type, quiet, as_global, status )
ELSEIF( all_at_once ) THEN
CALL LIST_MULTI( mr_perm, my_cx, heading, perm,
diff --git a/fer/xeq/xeq_set.F b/fer/xeq/xeq_set.F
index 6e202f9..91801e2 100644
--- a/fer/xeq/xeq_set.F
+++ b/fer/xeq/xeq_set.F
@@ -198,6 +198,7 @@
* Fixed bug in error message for invalid SET LIST/OUT
* V720 3/17 *acm* Fix ticket 2521; do not call TM_LEGAL_UNIX_NAME for path and
* file name on SET REDIRECT.
+* V722 *kms* 10/17 Remove threddsBrowser (too big, outdated, and unused)
include 'tmap_dims.parm'
@@ -259,7 +260,7 @@
. cache_preemption, numpts, redir_file_lun,
. iline, iset, n
INTEGER*8 i8_val
- REAL*8 TM_WW_AXLEN, axwwlen, new_att_modulo_len
+ REAL*8 TM_WW_AXLEN, GET_LINE_COORD, axwwlen, new_att_modulo_len
REAL*8 delta, dlo, dhi, firstval, lastval
REAL val_buf, cache_size_mb
CHARACTER TM_FMT*12, title*1024, subtitle*64, arg*24,
@@ -436,12 +437,6 @@ c *kob* 4/97
RETURN
ENDIF
-* check for /BROWSE - dataset name comes from the browser
- IF ( qual_given(slash_set_data_browse) .GT. 0 ) THEN
- CALL GET_DATASET_NAME_FROM_BROWSER(status)
- IF ( status .NE. ferr_ok ) RETURN
- ENDIF
-
* (hack) if the argument has a ".agg" extension, then pass it to the GO
* command, allowing "USE myAgg.agg" to initialize an aggregation
IF (num_items .GT. 0 ) THEN
@@ -1030,12 +1025,11 @@ c *kob* 4/97
* ** Get first and last axis values (assumed to be valid)
* and number of points **
numpts = line_dim(axis)
- i = line_subsc1(axis)
- firstval = line_mem(i)
- i = i + numpts - 1
- lastval = line_mem(i)
+ firstval = GET_LINE_COORD (linemem(axis)%ptr, 1)
+ lastval = GET_LINE_COORD (linemem(axis)%ptr, numpts)
* ** Free up memory used by the array of axis values **
- CALL PACK_LINE_STORAGE(axis)
+ CALL FREE_DYN_MEM(linemem(axis)%ptr)
+ CALL FREE_DYN_MEM(lineedg(axis)%ptr)
* ** Assign values for a regular axis **
line_start(axis) = firstval
line_delta(axis) = (lastval - firstval) / (numpts - 1.0)
diff --git a/fmt/cmn/tmap_dims.parm b/fmt/cmn/tmap_dims.parm
index f6d4a83..88674f5 100644
--- a/fmt/cmn/tmap_dims.parm
+++ b/fmt/cmn/tmap_dims.parm
@@ -32,17 +32,18 @@
* Increase size of max_gfdl_dsets and max_grids
* Also clean up long-unused lines that were commented out.
* V710 *acm* 3/16 add dgrid_buff, for a fake grid to use in computing coordinates
+* V72 8/17 *acm* For trac enhancement #767 -- dynamic coordinate storage, no maxlinestore
* for TMAP formatted files:
INTEGER nrec_codes,ngrid_prenamed,nvari_prenamed,maxdsets,
. maxstepfiles,maxvars,maxaux,max_grids,max_lines,
- . maxlinestore, maxgridfiles, max_axis_orients,
+ . maxgridfiles, max_axis_orients,
. num_aux, num_parm, num_gridfiles, maxvarfiles,
. num_dyn_grids, max_dyn_grids, num_dyn_lines,
. max_dyn_lines, line_ceiling, grid_ceiling,
. tmp_line_hook, tmp_grid_hook, nferdims, maxvar2,
. pdsetalloc, pdsets_addl, pdset_dummy, pdset_global,
- . dgrid_buff
+ . dgrid_buff, num_clim, line_0
* parameters used for dimensioning arrays
PARAMETER (dgrid_buff = 0) ! scratch buffer for grids (as in ferret.parm)
@@ -70,10 +71,11 @@
PARAMETER (max_dyn_lines = max_lines + num_dyn_lines)
PARAMETER (tmp_line_hook = max_dyn_lines + 1)
PARAMETER (line_ceiling = tmp_line_hook )
- PARAMETER (maxlinestore = 750000)! max # of coords
+ PARAMETER (line_0 = 0) ! temporary scratch line coords
PARAMETER (maxgridfiles = 10) ! maximum number of grids
PARAMETER (max_axis_orients = 9)! maximum number of axis orients
PARAMETER (num_aux = 6) ! number of aux_modnum's in descriptor
PARAMETER (num_parm = 15) ! number of add_parm's in descriptor
PARAMETER (num_gridfiles = 6) ! number of grid_filenames in descript.
PARAMETER (nferdims = 6) ! number of dimensions in Ferret grids.
+ PARAMETER (num_clim = 8) ! number of pre-defined climatological axes.
diff --git a/fmt/cmn/xbuild_grids.cmn b/fmt/cmn/xbuild_grids.cmn
index 408481e..962df93 100644
--- a/fmt/cmn/xbuild_grids.cmn
+++ b/fmt/cmn/xbuild_grids.cmn
@@ -8,19 +8,10 @@
INTEGER max_temp_grid
PARAMETER ( max_temp_grid = 100 )
-
-
-! INTEGER firstax, lastax, firstgrid, lastgrid, orig_line_mem
- INTEGER orig_line_mem,
- . num_tmp_grids,
+ INTEGER num_tmp_grids,
. tmp_nam_ptr(max_grids:grid_ceiling)
COMMON /XBUILD_GRIDS/
-! . firstax,
-! . lastax,
-! . firstgrid,
-! . lastgrid,
- . orig_line_mem,
. num_tmp_grids,
. tmp_nam_ptr
diff --git a/fmt/cmn/xtm_grid.cmn_text b/fmt/cmn/xtm_grid.cmn_text
index 408b4e3..c8ddd26 100644
--- a/fmt/cmn/xtm_grid.cmn_text
+++ b/fmt/cmn/xtm_grid.cmn_text
@@ -41,22 +41,41 @@
CHARACTER*64 grid_name
CHARACTER*2 line_direction, axis_orients
INTEGER line_subsc1, line_dim, line_unit_code, grid_line,
- . next_line_mem_pos, grid_use_cnt, grid_flink,
+ . grid_use_cnt, grid_flink,
. grid_blink, grid_free_ptr, max_grid_used,
. line_parent, line_use_cnt, line_flink, line_blink,
. line_class, line_free_ptr, max_line_used,
- . pline_mem_init, line_offset, line_dattype
+ . line_offset, line_dattype, line_allocated
LOGICAL grid_out_prod, line_regular, line_modulo, line_reversed,
. line_keep_flag, line_shift_origin, line_fixname, line_write,
. line_dim_only
REAL line_tunit, grid_rotation
- REAL*8 line_start, line_delta, line_mem, line_modulo_len
+ REAL*8 line_start, line_delta, line_modulo_len,
+ . clim_line_coords, clim_line_edges
+
+* DYN line mem
+* Dynamic allocation of irregular coordinate storage
+* - linemem to replace line_mem
+* - lineedgdg to store edges
+* - No longer need line_subsc1
+* - No longer need next_line_mem_pos
+
+ TYPE line_table_slot
+ SEQUENCE ! force data elements to be memory-contiguous
+ REAL(8), POINTER :: ptr(:)
+ END TYPE
+ TYPE(line_table_slot) :: linemem(0:line_ceiling)
+ TYPE(line_table_slot) :: lineedg(0:line_ceiling)
COMMON / XGRID /
+ . linemem,
+ . lineedg,
. line_start ( 0:line_ceiling ),
. line_delta ( 0:line_ceiling ),
. line_modulo_len ( 0:line_ceiling ),
- . line_mem ( maxlinestore),
+ .
+ . clim_line_coords( 12, num_clim ),
+ . clim_line_edges ( 13, num_clim ),
.
. grid_filename ( maxgridfiles),
.
@@ -70,10 +89,8 @@
. line_modulo ( 0:line_ceiling ),
. line_t0 ( 0:line_ceiling ),
. line_tunit ( 0:line_ceiling ),
- . next_line_mem_pos,
. line_parent ( 0:line_ceiling ),
. line_use_cnt ( 0:line_ceiling ),
-! . line_has_edges ( 0:line_ceiling ),
. line_flink ( max_lines:line_ceiling ),
. line_blink ( max_lines:line_ceiling ),
. line_class ( 0:line_ceiling ),
@@ -81,11 +98,10 @@
. line_fixname ( 0:line_ceiling ),
. line_shift_origin( 0:line_ceiling ),
. line_write ( 0:line_ceiling ),
- . line_dim_only ( 0:line_ceiling ),
+ . line_dim_only ( 0:line_ceiling ),
. line_free_ptr,
. max_line_used,
. line_cal_name ( 0:line_ceiling ),
- . pline_mem_init,
.
. grid_name ( 0:grid_ceiling ),
. grid_line ( nferdims, 0:grid_ceiling ),
@@ -101,7 +117,8 @@
. axis_orients ( 0:max_axis_orients ),
. line_reversed ( 0:line_ceiling),
. line_offset ( 0:line_ceiling),
- . line_dattype ( 0:line_ceiling)
+ . line_dattype ( 0:line_ceiling),
+ . line_allocated ( 0:line_ceiling )
* note: the zero subscript is a scratch buffer
diff --git a/fmt/src/SOURCE_FILES b/fmt/src/SOURCE_FILES
index 0b9c295..46be8b7 100644
--- a/fmt/src/SOURCE_FILES
+++ b/fmt/src/SOURCE_FILES
@@ -114,6 +114,7 @@ cd_write_defer_coord.F\
cd_write_grid.F\
cd_write_strdim.F\
cd_write_var.F\
+copy_line_coords.F\
encode_strings_data.F\
ez_count_dset.F\
ez_init_dset.F\
@@ -124,11 +125,13 @@ ez_permuted_index.F\
ez_read.F\
ez_update_var.F\
free_time.F\
+get_line_coord.F\
gt_get_time_axis.F\
lib_free_lun.F\
lib_get_lun.F\
mc_init_dset.F\
mc_read.F\
+put_line_coord.F\
remote_read.F\
str_case_blind_compare.F\
str_dncase.F\
@@ -164,6 +167,9 @@ tm_check_coords.F\
tm_check_fmrc_bnds_attrib.F\
tm_check_bnds_centered.F\
tm_check_edges_attrib.F\
+tm_check_line.F\
+tm_check_line_bounds.F\
+tm_check_line_edges.F\
tm_check_monthly_axis.F\
tm_choose_read.F\
tm_clean_filename.F\
@@ -171,6 +177,7 @@ tm_close_set.F\
tm_close_set_cond_deallo.F\
tm_close_step.F\
tm_cmprss.F\
+tm_convert_bounds_edges.F\
tm_conv_to_r4.F\
tm_conv_to_r8.F\
tm_copy_grid.F\
@@ -255,6 +262,7 @@ tm_lenstr1.F\
tm_line_match.F\
tm_loc_string.F\
tm_lonw2lone.F\
+tm_lonw2e_line.F\
tm_load_calendar.F\
tm_make_4d_grids.F\
tm_make_basic_axis.F\
@@ -296,6 +304,7 @@ tm_scale_nobad.F\
tm_secs_from_bc.F\
tm_secs_to_date.F\
tm_secs_to_ymdhms.F\
+tm_set_clim_axes.F\
tm_set_current_calendar.F\
tm_split_message.F\
tm_step_to_date.F\
diff --git a/fmt/src/cd_1d_line_from_2d.F b/fmt/src/cd_1d_line_from_2d.F
index 02dd30d..158b7be 100644
--- a/fmt/src/cd_1d_line_from_2d.F
+++ b/fmt/src/cd_1d_line_from_2d.F
@@ -43,6 +43,7 @@
* V695+ *acm* and *sh*
* V698 *sh* 3/16 -- modify the native taxis (axlagt) to become a lag time
* -- look for and read time_bounds 2d array if it exists
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
* include files
include 'netcdf.inc'
@@ -67,7 +68,7 @@
. start(nferdims),count(nferdims), zero(nferdims),
. npts, nT, nF, npts_cdf, vdims(8), nvdim,
. vlen, blen, bndid, attid, attype, attlen, attoutflag
- REAL*8 TM_WORLD_AX, avg_lag
+ REAL*8 TM_WORLD_AX, avg_lag, uppermost
CHARACTER TM_STRING*13, buff*256
CHARACTER bname*48, attname*48
@@ -78,6 +79,7 @@
do_warn = .FALSE.
vlen = TM_LENSTR1(vname)
+
* start out by getting an overview of the 2D time variable
CALL CD_GET_VAR_INFO (dset, varid, vname, vartype,
. nvdim, vdims, nvatts, coordvar, outflag, status)
@@ -96,9 +98,16 @@
nT = count(1) ! number of time steps per forecast
nF = count(2) ! number of forecasts in collection
- IF ((next_line_mem_pos+ npts+1).GT.maxlinestore) GOTO 5300
+* grab a temporary dynamic axis slot for it. Store it in the axis axcalt
+* as that axis will be set up with the coordinates
+
+ CALL TM_ALLO_TMP_LINE(axcalt, status)
+ IF (status .NE. merr_ok) GOTO 5000
+
+ CALL GET_LINE_DYNMEM (npts+1, axcalt, status)
+ IF (status .NE. merr_ok) GOTO 5000
CALL CD_READ_SUB(cdfid, varid, nvdim, start, count, zero, zero,
- . line_mem(next_line_mem_pos), 0, 0, cdfstat)
+ . linemem(axcalt)%ptr, 0, 0, cdfstat)
IF ( cdfstat .NE. NF_NOERR ) GOTO 5000
************* start bounds reading
@@ -136,9 +145,8 @@
zero (3) = 0
* ... read the lower bounds into line memory above the 2d time coordinates
- IF ((next_line_mem_pos+2*npts+1).GT.maxlinestore) GOTO 5300
CALL CD_READ_SUB(cdfid, bndid, nvdim, start, count, zero, zero,
- . line_mem(next_line_mem_pos+npts), 0, 0, cdfstat)
+ . lineedg(axcalt)%ptr, 0, 0, cdfstat)
IF ( cdfstat .NE. NF_NOERR ) GOTO 999
* ... alter limits for reading the single upper bound of the top point
@@ -154,8 +162,9 @@
* ... read the upper-upper bound into line memory above the 2d lower bounds
CALL CD_READ_SUB(cdfid, bndid, nvdim, start, count, zero, zero,
- . line_mem(next_line_mem_pos+2*npts), 0, 0, cdfstat)
+ . uppermost, 0, 0, cdfstat)
IF ( cdfstat .NE. NF_NOERR ) GOTO 999
+ CALL PUT_LINE_COORD ( lineedg(axcalt)%ptr, 2*npts+1, uppermost )
* ... success!
has_edges = .TRUE.
@@ -189,9 +198,5 @@
* error exit
5000 RETURN
- 5300 CALL TM_ERRMSG (merr_linstorlim, status, 'CD_1D_LINE_FROM_2D',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(maxlinestore)),
- . no_errstring, *5000)
END
diff --git a/fmt/src/cd_abort_grids.F b/fmt/src/cd_abort_grids.F
index 194f8e1..f419798 100644
--- a/fmt/src/cd_abort_grids.F
+++ b/fmt/src/cd_abort_grids.F
@@ -58,10 +58,7 @@
INTEGER status
* remove temporary in-progress grids and all associated use counts
- CALL TM_PURGE_TMP_GRIDS( status ) ! ststus ignored!!
-
-* return line memory to unused state
- next_line_mem_pos = orig_line_mem
+ CALL TM_PURGE_TMP_GRIDS( status ) ! status ignored!!
RETURN
END
diff --git a/fmt/src/cd_get_1_axis.F b/fmt/src/cd_get_1_axis.F
index 1498999..d58cff7 100644
--- a/fmt/src/cd_get_1_axis.F
+++ b/fmt/src/cd_get_1_axis.F
@@ -12,7 +12,7 @@
* obligations and understandings on the user. The user is granted the
* right, without any fee or cost, to use, copy, modify, alter, enhance
* and distribute this software, and any derivative works thereof, and
-* its supporting documentation for any purpose whatsoever, provided
+* its supporting documentation for any puFrpose whatsoever, provided
* that this entire notice appears in all copies of the software,
* derivative works and supporting documentation. Further, the user
* agrees to credit NOAA/PMEL/TMAP in any publications that result from
@@ -206,7 +206,7 @@
* v720 2/2017 *acm* Ticket 2513. Check that bounds or edges data is in the file when
* attribute is found, before trying to use it.
* v720 3/2017 *acm* Ticket 2246. Call CD_GET_TIME_UNITS routine to get t0 date and time units
-
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
* argument definitions:
* cdfid - netCDF id number for already opened CDF file (to go away with new attr. hanling)
@@ -244,40 +244,37 @@
* local parameter definitions:
INTEGER str_eq
PARAMETER ( str_eq = 0 )
- REAL epsilon_23
- REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
- . dfirst_delta, ddelta
* local variable declarations:
- LOGICAL NC_GET_ATTRIB, CD_GET_ATTVAL, TM_CHECK_BOX_LOC,
+ LOGICAL NC_GET_ATTRIB, CD_GET_ATTVAL,
. TM_HAS_STRING, TM_FPEQ_EPS, TM_DFPEQ, CD_GET_ATTVALC,
. CD_GET_ATTVAL_L, TM_CHECK_BNDS, TM_CHECK_BNDS_CENTERED,
- . TM_FPEQ, TM_DFPEQ_TOL, NC_GET_ATTRIB_DP, TM_ITS_SUBSPAN_MODULO,
+ . TM_FPEQ, TM_DFPEQ_TOL, NC_GET_ATTRIB_DP,
. got_it, got_torg, do_warn,
. epic_time, west_lon, yyyymmdd_time,
. got_mod, mod_tf, setmodfalse, ok_cal, ok,
. got_edges, got_bnds, coordvar, its_irregular,
. do_scale, do_offset, scale_is_dp, reg,
. has_repeated, misordered, has_missing, is_double,
- . true_month, okmod
+ . true_month, okmod, edge_reg, set_regular
INTEGER TM_UNIT_ID, TM_UNITS_CAL, TM_LENSTR1, TM_GET_CALENDAR_ID,
. STR_CASE_BLIND_COMPARE, STR_UPCASE, STR_SAME,
. soft_err,
- . ipt1, ipte, vartype, vback, npts, vlen, cdfstat, istat,
+ . vartype, vback, npts, vlen, cdfstat, istat,
. nvdims, vdims(8), nvatts, i, units, npts_cdf, elen,
. edgid, spacing_atlen, epic_t2var, since_T0,
. cal_id, year, month, day, hour, minute, second, slen,
- . blen, bndid, startpts(2), numpts(2), next_line_storage,
+ . blen, bndid, startpts(2), numpts(2),
. d1s, d1e, d2s, d2e, attoutflag, maxlen,
. all_outflag, dir, attlen, itop, irev, attype, iatt, ibx1,
- . i1, i2, i3, i0
+ . i1, i2, i3, i0, npts2
- REAL rbuff, delta, first_delta, val, epsilon, lm_len,
+ REAL rbuff, delta, first_delta, val, lm_len,
. scale, offset, start
REAL*4 r4delta
- REAL*8 TM_LONW2LONE, TM_WW_AXLEN, tmp8, axwwlen,
- . dscale, doffset, micro_adj, madj
+ REAL*8 TM_LONW2LONE, TM_WW_AXLEN, GET_LINE_COORD,
+ . tmp8, axwwlen, dscale, doffset, micro_adj, madj
CHARACTER*12 TM_LEFINT
CHARACTER vname*128, ename*128, vupcase*128, words(8)*24,
. spacing_attr*14, bname*128, TM_FMT*32
@@ -304,22 +301,12 @@
got_torg = .FALSE.
days_neg4713 = 0.D0
- next_line_storage = next_line_mem_pos
bad_bndsid = 0
cal_id = 1
misordered = .FALSE.
has_missing = .FALSE.
-* (From Wikipedia on precision:)
-* Single precision, called "float" in the C language family, and "real"
-* or "real*4" in Fortran. This is a binary format that occupies 32 bits (4 bytes)
-* and its significand has a precision of 24 bits (about 7 decimal digits).
-* Double precision, called "double" in the C language family, and "double precision"
-* or "real*8" in Fortran. This is a binary format that occupies 64 bits (8 bytes)
-* and its significand has a precision of 53 bits (about 16 decimal digits).
- epsilon_23 = 2.**(-23)
- depsilon_46 = 2.**(-46)
* get the vital statistics of the axis
@@ -416,9 +403,11 @@
line_regular(iaxis) = .FALSE.
its_irregular = .FALSE.
+ set_regular = .FALSE.
IF ( got_it ) THEN
line_regular(iaxis) = buff(1:1).EQ.'e' .OR. buff(1:1).EQ.'E'
its_irregular = .NOT.line_regular(iaxis)
+ set_regular = line_regular(iaxis)
ELSE
line_regular(iaxis) = .FALSE. ! default
ENDIF
@@ -690,9 +679,19 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
got_bnds = .FALSE.
got_edges = .FALSE.
its_irregular = .FALSE.
+ set_regular = .TRUE.
ENDIF
* get the axis coordinates - none, regular, or irregular
+
+* Allocate line coordinate storage, put the pointer in array linemem(iaxis)
+* and lineedg(iaxis) storage.
+
+ CALL GET_LINE_DYNMEM (npts_cdf, iaxis, status)
+ IF (status .NE. merr_ok) GOTO 5900
+
+ CALL PUT_LINE_COORD ( linemem(iaxis)%ptr, 1, 0.0 )
+
IF ( npts .EQ. 0 ) THEN
* create a dummy one point axis
CALL TM_NOTE('Axis "'//vname(:vlen)//
@@ -791,175 +790,83 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
* ============= START OF IRREGULAR AXIS PROCESSING ========================
ELSE
-* adequate storage for the irregular coordinates and box edges ?
-* 2*npts + 1 for edges plus coordinate values.
-* First, just require npts amount of storage. Read the coords and
-* test for regular spacing. If regular then we're good. If not, then
-* check that there's enough to store the grid cell bounds.
+
+* Read the coords and test for regular spacing. If regular then we're good.
+* If not, then compute the grid cell bounds.
line_start(iaxis) = unspecified_val8
line_delta(iaxis) = unspecified_val8
- IF ((next_line_mem_pos+ npts+1).GT.maxlinestore) GOTO 5300
+
* read the CDF coordinate values into double precision axis storage
- ipt1 = next_line_mem_pos
- ipte = ipt1 + npts - 1
+* Applying any scaling using TM_SCALE. Coordinate data does not have missing-flags,
+* send the default missing flag which should not match any valid coordinate data.
+
IF ( epic_time ) THEN
CALL CD_RD_EP_ARR( cdfid, ivar, epic_t2var,
. line_t0(iaxis), line_tunit(iaxis),
- . npts_cdf, line_mem(ipt1), status )
+ . npts_cdf, linemem(iaxis)%ptr, status )
ELSEIF ( yyyymmdd_time ) THEN
CALL CD_RD_YMD_ARR( cdfid, ivar,
. line_t0(iaxis), line_tunit(iaxis),
- . npts_cdf, line_mem(ipt1), status )
+ . npts_cdf, linemem(iaxis)%ptr, status )
ELSE
CALL CD_RD_R8_ARR( cdfid, ivar, 1, npts_cdf, vartype,
- . vname(:vlen), line_mem(ipt1), status )
+ . vname(:vlen), linemem(iaxis)%ptr, status )
IF (days_neg4713 .NE. 0.) THEN
- DO 330 i = ipt1,ipte
- line_mem(i) = line_mem(i) - days_neg4713
- 330 CONTINUE
+ offset = -1* days_neg4713
+ CALL TM_SCALE (1.D0, -1* days_neg4713, linemem(iaxis)%ptr,
+ . npts, bad_r8, bad_r8)
ENDIF
ENDIF
IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
IF (do_scale) THEN
IF (scale_is_dp) THEN
- DO 334 i=ipt1,ipte
- 334 line_mem(i) = line_mem(i)*dscale + doffset
+ CALL TM_SCALE (dscale, doffset, linemem(iaxis)%ptr,
+ . npts, bad_r8, bad_r8)
ELSE
- DO 336 i=ipt1,ipte
- 336 line_mem(i) = line_mem(i)*scale + offset
+ CALL TM_SCALE (scale, offset, linemem(iaxis)%ptr,
+ . npts, bad_r8, bad_r8)
ENDIF
ENDIF
IF ( west_lon ) THEN
- DO 340 i=ipt1,ipte
- 340 line_mem(i) = TM_LONW2LONE( line_mem(i) )
- ENDIF
-
-* if the coordinates are decreasing-ordered then reverse them
-
- IF (npts .GT. 1) THEN
- first_delta = line_mem(ipt1+1) - line_mem(ipt1)
- reversed(iaxis) = first_delta .LT. 0.0
- ENDIF
- IF ( reversed(iaxis) ) THEN
- DO 345 i=ipt1,ipt1+npts/2-1
- tmp8 = line_mem(i)
- line_mem(i) = line_mem(ipte+ipt1-i)
- line_mem(ipte+ipt1-i) = tmp8
- 345 CONTINUE
-
+ CALL TM_LONW2E_LINE (linemem(iaxis)%ptr, npts)
ENDIF
+
+ is_double = vartype .EQ. ncdouble
-* If repeated values, apply micro-adjusting.
-* Or report as a warning if the user requested /STRICT.
-
- misordered = .FALSE.
- DO 350 i=ipt1+1,ipte
- IF (line_mem(i) .LT. line_mem(i-1) )
- . misordered = .TRUE.
- IF (use_strict .AND. (line_mem(i) .LE. line_mem(i-1)) )
- . misordered = .TRUE.
-
-* out of order axis coordinates.
-* If reversed above, remove that designation to
-* just hand the user the original data
-
- IF (misordered) THEN
- words(1) = TM_LEFINT(i-ipt1+1, istat)
- CALL TM_NOTE(
- . 'Coordinates out of order or missing on axis '//
- . vname(:vlen)//' at subscript '//words(1), tt)
- CALL TM_NOTE(
- . 'A dummy axis of subscripts will be used', tt)
- reversed(iaxis) = .FALSE.
- GOTO 1000
- ENDIF
- 350 CONTINUE
-
- misordered = .FALSE.
-
- micro_adj = 1E-7 *
- . (line_mem(ipte) - line_mem(ipt1))
-
- is_double = vartype .EQ. ncdouble
-
-* ... are there repeated values?
-
-* micro_adj = -1. ! Or send this to compute this value inside the routine
- CALL TM_CHECK_COORDS (ipt1, ipte, is_double, use_strict,
- . has_repeated, misordered, micro_adj,
- . epsilon, depsilon)
- IF (misordered) GOTO 540
- IF ( has_repeated .AND. .NOT.misordered ) THEN
- CALL TM_NOTE('Axis has repeated values -- micro-adjusting '//
- . vname(:vlen), tt)
- ENDIF
+* Check for misordered or repeated data
+* If repeated values, apply micro-adjusting, or report as a warning if the
+* user requested /STRICT.
* Check if axis is actually regularly spaced (though not flagged as "even")
-* Fix bug 1483; look at each delta rather than trying to compare with first delta.
-
- IF (its_irregular) GOTO 380 ! If the file says its irreg, treat it at such
-
-* See if double-precision coordinates are regularly-spaced
- epsilon = 0.
- depsilon = 0.
+* Use the precision of the data in the file.
- IF (is_double) THEN
- dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
- depsilon = depsilon_46 * 2.*(ABS(line_mem(ipte)) / first_delta )
- depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
-
- DO 355 i=ipt1+2,ipte
- ddelta = line_mem(i) - line_mem(i-1)
- IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 380
- 355 CONTINUE
-
-* See if single-precision (or integer??) coordinates are regularly-spaced
- ELSE
- last_coord = line_mem(ipte)
- firs_coord = line_mem(ipt1)
- first_delta = line_mem(ipt1+1) - line_mem(ipt1)
- epsilon = epsilon_23 * 2.*(ABS(line_mem(ipte)) / first_delta )
- epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
-
- DO 360 i=ipt1+2,ipte
- delta = line_mem(i) - line_mem(i-1)
- IF (.NOT. TM_FPEQ_EPS(epsilon, first_delta, delta) ) GOTO 380
- 360 CONTINUE
- ENDIF
+ CALL TM_CHECK_LINE ( linemem(iaxis)%ptr, npts,
+ . reversed(iaxis), vname, vlen, is_double, its_irregular,
+ . use_strict, line_regular(iaxis), misordered)
+ IF (misordered) GOTO 1000
+ IF (line_regular(iaxis)) THEN
* yes, it's actually regular - save it as such
- line_regular(iaxis) = .TRUE.
- line_start (iaxis) = line_mem(ipt1)
- line_delta (iaxis) =
- . (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
- line_subsc1 (iaxis) = unspecified_int4
- last_coord = line_start(iaxis) + DBLE(npts-1)*line_delta(iaxis)
- firs_coord = line_start(iaxis)
-
- GOTO 390
+ line_start (iaxis) = GET_LINE_COORD (linemem(iaxis)%ptr, 1)
+ line_delta (iaxis) =
+ . ( GET_LINE_COORD (linemem(iaxis)%ptr, npts) -
+ . line_start(iaxis) )/DBLE(npts-1)
+ last_coord = line_start(iaxis) + DBLE(npts-1)*line_delta(iaxis)
+ firs_coord = line_start(iaxis)
+
+ GOTO 390
+ ENDIF
* Compute the default locations of boundaries between grid boxes (midpoints)
* Note: this may be modified by a subsequent "EDGES" or "BOUNDS" definition
-
-* Here is where we need to require 2*npts amount of available coordinate storage.
-
- 380 CONTINUE
- IF ((next_line_mem_pos+2*npts+1).GT.maxlinestore) GOTO 5300
- CALL TM_IRREGAX_MID( ipt1, npts )
- ENDIF
-
- IF (got_bnds .AND. npts .EQ. 1) THEN
- line_regular(iaxis) = .FALSE.
- ipt1 = next_line_mem_pos
- ipte = next_line_mem_pos
- line_mem(ipt1) = line_start(iaxis)
+ CALL TM_IRREGAX_MID( linemem(iaxis)%ptr, lineedg(iaxis)%ptr, npts )
ENDIF
* ============= END OF IRREGULAR AXIS PROCESSING ========================
@@ -998,7 +905,7 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
IF ( line_regular(iaxis) ) THEN
first = line_start(iaxis)
ELSE
- first = line_mem(ipt1)
+ first = GET_LINE_COORD (lineedg(iaxis)%ptr, 1)
ENDIF
* ... compute seconds from 1-jan-0001
@@ -1027,68 +934,56 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
. edgid, status)
IF (status .EQ. pcdferr) GO TO 5100
- IF (status .NE. merr_ok) THEN
- CALL TM_IRREGAX_MID( next_line_mem_pos,
- . line_dim (iaxis) )
+
+* Invalid edges, issue a note and use coordinate midpoints.
+
+ IF (status .NE. merr_ok) THEN
+ CALL TM_IRREGAX_MID( linemem(iaxis)%ptr, lineedg(iaxis)%ptr, npts )
GO TO 600
ENDIF
* read the (npts+1) box edge values into double precision storage
- ipt1 = next_line_mem_pos
- line_subsc1(iaxis) = next_line_mem_pos
- CALL CD_RD_R8_ARR( cdfid, edgid, 1, npts+1, vartype,
- . vname(:vlen), line_mem(ipt1+npts), status )
- IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
-
-* if the coordinates were reversed then the box edges must be, too
- IF ( reversed(iaxis) .AND. npts .GT. 1) THEN
- itop = (ipt1+npts)+npts/2-1
- irev = ipt1 + 2*npts
- DO 450 i=ipt1+npts,itop
- tmp8 = line_mem(i)
- line_mem(i) = line_mem(irev)
- line_mem(irev) = tmp8
- irev = irev - 1
- 450 CONTINUE
-
- ENDIF
-
- IF (.NOT.TM_CHECK_BOX_LOC(iaxis)) THEN
- CALL TM_NOTE('Error in Edges "'//ename(:elen)//
- . '"or edges do not enclose point on axis '//
- . vname(:vlen), tt)
- CALL TM_NOTE('Substituting coordinate midpoints', tt)
- CALL TM_IRREGAX_MID( next_line_mem_pos,
- . line_dim (iaxis) )
- bad_bndsid = edgid
- ELSE
+ CALL CD_RD_R8_ARR( cdfid, edgid, 1, npts+1, vartype,
+ . vname(:vlen), lineedg(iaxis)%ptr, status )
+ IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
-* check to see that each data point is contained inside its box.
+* Check to see that each data point is contained inside its box.
* See if they're centered after all.
- IF (TM_CHECK_BNDS_CENTERED(iaxis, is_double)) THEN
+ CALL TM_CHECK_LINE_EDGES ( linemem(iaxis)%ptr,
+ . lineedg(iaxis)%ptr, npts, iaxis, reversed(iaxis),
+ . vname, vlen, is_double, edge_reg, ok)
+
+ IF (.NOT. ok) THEN
+ CALL TM_NOTE(
+ . 'Error in Edges or edges do not enclose point on axis '//
+ . vname(:vlen), tt)
+ CALL TM_NOTE('Substituting coordinate midpoints', tt)
+ CALL TM_IRREGAX_MID( linemem(iaxis)%ptr, lineedg(iaxis)%ptr, npts )
+ bad_bndsid = edgid
+ ENDIF
+
* It's actually regular - save it as such
- IF (.NOT. line_regular(iaxis)) THEN
- line_regular(iaxis) = .TRUE.
- line_start (iaxis) = line_mem(ipt1)
- IF (npts .GT. 1) THEN
- line_delta (iaxis) =
- . (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
- ELSE
- ibx1 = ipt1 + npts
- line_delta(iaxis) = line_mem(ibx1+1)-line_mem(ibx1)
- ENDIF
- line_subsc1 (iaxis) = unspecified_int4
- last_coord = line_start(iaxis) +
+ IF (edge_reg .AND. .NOT. line_regular(iaxis)) THEN
+ line_regular(iaxis) = .TRUE.
+ line_start (iaxis) = GET_LINE_COORD (lineedg(iaxis)%ptr, 1)
+ IF (npts .GT. 1) THEN
+ line_delta (iaxis) =
+ . (GET_LINE_COORD (lineedg(iaxis)%ptr, npts) -
+ . GET_LINE_COORD (lineedg(iaxis)%ptr, 1) )/DBLE(npts-1)
+ ELSE
+ line_delta (iaxis) =
+ . (GET_LINE_COORD (lineedg(iaxis)%ptr, npts+1) -
+ . GET_LINE_COORD (lineedg(iaxis)%ptr, 1) )
+ ENDIF
+ last_coord = line_start(iaxis) +
. DBLE(npts-1)*line_delta(iaxis)
- firs_coord = line_start(iaxis)
- ENDIF
- ELSE
- line_regular(iaxis) = .FALSE.
- ENDIF
+ firs_coord = line_start(iaxis)
+ ELSE
+ line_regular(iaxis) = .FALSE.
+ ENDIF
- ENDIF
****************************************************************************
* BOX BOUNDS *
@@ -1096,102 +991,94 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
* the attribute "bounds=name" may point to a list of box boundaries
-500 maxlen = 128
- IF ( .NOT.got_bnds ) GOTO 600
+500 maxlen = 128
+ IF ( .NOT.got_bnds ) GOTO 600
* Check the bounds variable, issue any warnings.
- CALL TM_CHECK_BNDS_ATTRIB (dset, line_dim(iaxis), vname, vlen,
+ CALL TM_CHECK_BNDS_ATTRIB (dset, line_dim(iaxis), vname, vlen,
. bname, bndid, status)
- IF (status .EQ. pcdferr) GO TO 5100
- IF (status .NE. merr_ok) THEN
- IF (npts .EQ. 1) THEN ! save as a regular axis, no bounds.
+ IF (status .EQ. pcdferr) GO TO 5100
+ IF (status .NE. merr_ok) THEN
+ IF (npts .EQ. 1) THEN ! save as a regular axis, no bounds.
line_regular(iaxis) = .TRUE.
- line_start (iaxis) = line_mem(ipt1)
line_delta(iaxis) = 1
line_subsc1 (iaxis) = unspecified_int4
last_coord = line_start(iaxis)
firs_coord = line_start(iaxis)
- ENDIF
- ! If npts not 1 then we have already set the boundaries
- ! at statement 380 CALL TM_IRREGAX_MID( ipt1, npts )
- GO TO 600
- ENDIF
+ ENDIF
+ ! If npts not 1 then we have already set the boundaries
+ ! with CALL TM_IRREGAX_MID
+ GO TO 600
+ ENDIF
* read the (npts*2) box edge values into double precision storage
- line_subsc1(iaxis) = next_line_mem_pos
- ipt1 = next_line_mem_pos
- startpts(1) = 1
- startpts(2) = 1
- numpts(1) = 2
- numpts(2) = npts
-
- d1s = startpts(1)
- d1e = numpts(1)
- d2s = startpts(2)
- d2e = numpts(2)
-
- blen = TM_LENSTR1(bname)
- CALL CD_RD_R8_BNDS( cdfid, bndid, startpts, numpts, vartype,
- . bname(:blen), line_mem(ipt1+npts),
- . d1s, d1e, d2s, d2e, status )
- IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
-
-* if the coordinates were reversed then the box bounds must be, too
- IF ( first_delta .LT. 0.0 .AND. npts .GT. 1) THEN
- itop = (ipt1+npts)+npts
- irev = (ipt1+npts)+2*npts-1
- DO 550 i=ipt1+npts,itop
- tmp8 = line_mem(i)
- line_mem(i) = line_mem(irev)
- line_mem(irev) = tmp8
- irev = irev - 1
- 550 CONTINUE
- ENDIF
+ startpts(1) = 1
+ startpts(2) = 1
+ numpts(1) = 2
+ numpts(2) = npts
+
+ d1s = startpts(1)
+ d1e = numpts(1)
+ d2s = startpts(2)
+ d2e = numpts(2)
-* check to see that each data point is contained inside its box,
-* and if the bounds are contiguous, warning user if not. Change
-* the storage from N*2 bounds to N+1 edges.
+* read the 2*npts box edge values into double precision storage
+* Allocate line-edges coordinate storage, put the pointer in scratch
+* space lineedg(line_0). This will be redone into n+1 edges, so this
+* allocation is temporary.
- IF (.NOT. TM_CHECK_BNDS(iaxis, 2*npts, is_double, vname) ) THEN
+ npts2 = 2*npts
+ CALL GET_LINE_DYNMEM (npts2, line_0, status)
+ IF (status .NE. merr_ok) GOTO 5900
+
+ blen = TM_LENSTR1(bname)
+ CALL CD_RD_R8_BNDS( cdfid, bndid, startpts, numpts, vartype,
+ . bname(:blen), lineedg(line_0)%ptr,
+ . d1s, d1e, d2s, d2e, status )
+ IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
- CALL TM_NOTE('Error in bounds "'//bname(:blen)//
+ IF (npts .EQ. 1) CALL PUT_LINE_COORD ( linemem(iaxis)%ptr, 1, line_start(iaxis) )
+ CALL TM_CHECK_LINE_BOUNDS (linemem(iaxis)%ptr,
+ . lineedg(line_0)%ptr, npts,
+ . iaxis, reversed(iaxis), vname, vlen,
+ . is_double, line_regular(iaxis), ok)
+
+ IF (.NOT.ok ) THEN
+ CALL TM_NOTE('Error in bounds "'//bname(:blen)//
. '" or bounds do not enclose point on axis '//
. vname(:vlen), tt)
- CALL TM_NOTE('Substituting coordinate midpoints', tt)
- IF (.NOT.line_regular(iaxis) ) CALL TM_IRREGAX_MID(
- . next_line_mem_pos, line_dim (iaxis) )
- bad_bndsid = bndid
-
- ELSE ! Only check for centered bounds if the bounds are valid
+ CALL TM_NOTE('Substituting coordinate midpoints', tt)
-* For axes specified with BOUNDS, check whether coordinates are also
-* centered in the boxes, and whether the size of the boxes are equal.
-* If there is one point, use upper and lower bound as given in the file
-* to determine line_delta.
+ CALL TM_IRREGAX_MID( linemem(iaxis)%ptr, lineedg(iaxis)%ptr, npts )
- IF (TM_CHECK_BNDS_CENTERED(iaxis, is_double)) THEN
-* It's actually regular - save it as such
- IF (.NOT. line_regular(iaxis)) THEN
- line_regular(iaxis) = .TRUE.
- line_start (iaxis) = line_mem(ipt1)
- IF (npts .GT. 1) THEN
- line_delta (iaxis) =
- . (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
- ELSE
- ibx1 = ipt1 + npts
- line_delta(iaxis) = line_mem(ibx1+1)-line_mem(ibx1)
- ENDIF
- line_subsc1 (iaxis) = unspecified_int4
- ENDIF
- ELSE
- line_regular(iaxis) = .FALSE.
- ENDIF
-
- ENDIF ! valid bounds, also checked centered
+ bad_bndsid = bndid
+ ENDIF
+
+ IF (ok .AND. .NOT.line_regular(iaxis)) THEN
+
+* Change from N*2 storage of bounds to N+1 edges.
+
+ CALL TM_CONVERT_BOUNDS_EDGES (
+ . lineedg(line_0)%ptr,
+ . lineedg(iaxis)%ptr, npts)
- 600 CONTINUE
+ ENDIF
+
+* Use bounds to set the line_delta for regular axis.
+
+ IF (ok .AND. line_regular(iaxis)) line_delta(iaxis) =
+ . GET_LINE_COORD(lineedg(line_0)%ptr, 2) - GET_LINE_COORD(lineedg(line_0)%ptr, 1)
+
+* deallocate the temporary edge storage used to check bounds.
+ CALL FREE_LINE_DYNMEM(line_0)
+
+ 600 CONTINUE
+
+* All the checks for regular have been made. If regular,
+* deallocate the line storage....
+ IF (line_regular(iaxis) .OR. set_regular) CALL FREE_LINE_DYNMEM(iaxis)
* Check if axis is a monthly axis for this calendar. If so store as a 'true-month'
* axis, stored internally as if regular, but coordinates returned on true axis.
@@ -1204,7 +1091,7 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
c IF (line_direction(iaxis) .EQ. 'TI' .AND.
c . .NOT.line_regular(iaxis) .AND.
c . .NOT.has_gdef )
-c . CALL TM_CHECK_MONTHLY_AXIS (line_mem(ipt1), line_dim(iaxis), cal_id,
+c . CALL TM_CHECK_MONTHLY_AXIS (linemem(iaxis)%ptr, line_dim(iaxis), cal_id,
c . line_t0(iaxis), units, line_units(iaxis),
c . start, delta, line_tunit(iaxis), true_month)
c
@@ -1221,15 +1108,10 @@ c got_edges = .FALSE.
c got_bnds = .FALSE.
c ENDIF
-* Save the axis name (upper case) and memory storage. For all irregular axes,
-* we have saved N+1 edges for the axis cells. Increment the pointer.
+* Save the axis name (upper case) and original axis name.
line_name(iaxis) = vupcase
line_name_orig(iaxis) = vname
- IF ( .NOT.line_regular(iaxis) ) THEN
- line_subsc1(iaxis) = next_line_mem_pos
- next_line_mem_pos = next_line_storage + 2*npts+1
- ENDIF
* if it is a longitude axis of 360 degrees or less let it default to MODULO
* unless user has set it explicitly to false.
@@ -1254,9 +1136,9 @@ c ENDIF
IF (.NOT.line_regular(iaxis)) THEN
IF (.NOT.got_bnds .AND. .NOT.got_edges .AND.
- . line_mem(ipte) - line_mem(ipt1).LE.360.D0 ) THEN
- CALL TM_ADJUST_BOUNDS(iaxis, 360.0,
- . axwwlen, okmod)
+ . GET_LINE_COORD (lineedg(iaxis)%ptr, npts) -
+ . GET_LINE_COORD (lineedg(iaxis)%ptr,1) .LE. 360.D0 ) THEN
+ CALL TM_ADJUST_BOUNDS(iaxis, npts, 360.0, axwwlen, okmod)
IF (okmod) THEN
line_modulo(iaxis) = .TRUE.
line_modulo_len(iaxis) = 360.D0
@@ -1293,8 +1175,9 @@ c secsperyear = cals_yeardays(cal_id)* 24*60*60
delta = tmp8 - first
IF ( (secs2start .LE. 2*secsperyear)
. .AND. (delta*line_tunit(iaxis) .LE. secsperyear) ) THEN
- CALL TM_ADJUST_BOUNDS(iaxis,
- . secsperyear/line_tunit(iaxis), axwwlen, okmod)
+ CALL TM_ADJUST_BOUNDS(iaxis, npts,
+ . secsperyear/line_tunit(iaxis), axwwlen, okmod)
+
IF (okmod) THEN
line_modulo(iaxis) = .TRUE.
line_modulo_len(iaxis) = axwwlen
@@ -1309,9 +1192,9 @@ c secsperyear = cals_yeardays(cal_id)* 24*60*60
* generated midpoint bounds make the axis too long, reset them so the axis
* is the prescribed length. (may have been done for special cases above)
- IF (line_modulo(iaxis) .AND. .NOT.got_bnds .AND. .NOT.got_edges) THEN
- CALL TM_ADJUST_BOUNDS(
- . iaxis, line_modulo_len(iaxis), axwwlen, okmod)
+ IF (.NOT.line_regular(iaxis) .AND. line_modulo(iaxis) .AND. .NOT.got_bnds .AND. .NOT.got_edges) THEN
+ CALL TM_ADJUST_BOUNDS(iaxis, npts,
+ . line_modulo_len(iaxis), axwwlen, okmod)
IF (.NOT.okmod ) THEN
line_modulo(iaxis) = .FALSE.
line_modulo_len(iaxis) = 0.
@@ -1370,9 +1253,7 @@ c CALL TM_WARN_SUBSPAN (iaxis)
status = merr_ok
RETURN
-
540 IF (misordered) THEN
- words(1) = TM_LEFINT(i1-ipt1+1, istat)
IF (has_missing) THEN
CALL TM_NOTE(
. 'Coordinates missing on axis '//
@@ -1384,12 +1265,14 @@ c CALL TM_WARN_SUBSPAN (iaxis)
ENDIF
CALL TM_NOTE(
. 'A dummy axis of subscripts will be used', tt)
+
ENDIF
* 3/99-style "soft" error - invalid axis but CDF file need not be rejected
1000 CONTINUE
CALL TM_DEALLO_DYN_LINE(iaxis)
+ CALL FREE_LINE_DYNMEM (iaxis)
iaxis = 0
status = merr_ok
@@ -1422,12 +1305,6 @@ c CALL TM_WARN_SUBSPAN (iaxis)
. ( cdfstat+pcdferr, status, 'CD_GET_1_AXIS', cdfid, ivar,
. no_errstring, no_errstring, *5900 )
- 5300 CALL TM_ERRMSG (merr_linstorlim, status, 'CD_GET_1_AXIS',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(maxlinestore)),
- . no_errstring, *1000) ! 3/99 soft error
-
-
5400 CALL TM_ERRMSG
. ( cdfstat+pcdferr, status, 'CD_GET_1_AXIS', cdfid, ivar,
. 'Scale and offset attributes not of the same type',
diff --git a/fmt/src/cd_get_line_direction.F b/fmt/src/cd_get_line_direction.F
index 395b10a..494ee41 100644
--- a/fmt/src/cd_get_line_direction.F
+++ b/fmt/src/cd_get_line_direction.F
@@ -40,6 +40,7 @@
* V692 ACM 7/2014 A cf_role attribute indicates the E direction.
* V694 ACM 2/2015 Ensemble axis may have a standard-name attribute "realization"
* V694 ACM 4/2015 Fix ticket 2260: set X axis when standard_name is "longitude"
+* V72+ ACM 10/2015 If using axis names, compare the right # of characters
*
* include files:
@@ -536,14 +537,14 @@ c . .OR. TM_HAS_STRING(linunits, 'degreesS') ! But this matches all degree
IF (line_direction(iaxis).EQ.'NA') THEN
IF (vupcase(1:3).EQ.'LON') line_direction(iaxis) = 'WE'
IF (vupcase(1:3).EQ.'LAT') line_direction(iaxis) = 'SN'
- IF (vupcase(1:3).EQ.'TIME') line_direction(iaxis) = 'TI'
- IF (vupcase(1:3).EQ.'DATE') line_direction(iaxis) = 'TI'
+ IF (vupcase(1:4).EQ.'TIME') line_direction(iaxis) = 'TI'
+ IF (vupcase(1:4).EQ.'DATE') line_direction(iaxis) = 'TI'
IF (vupcase(1:3).EQ.'DEP') line_direction(iaxis) = 'UD'
IF (vupcase(1:3).EQ.'ALT') line_direction(iaxis) = 'DU'
- IF (vupcase(1:3).EQ.'ELEV') line_direction(iaxis) = 'DU'
+ IF (vupcase(1:4).EQ.'ELEV') line_direction(iaxis) = 'DU'
IF (vupcase(1:3).EQ.'HEI') line_direction(iaxis) = 'DU'
- IF (vupcase(1:3).EQ.'LAYER') line_direction(iaxis) = 'DU'
- IF (vupcase(1:3).EQ.'LEVEL') line_direction(iaxis) = 'DU'
+ IF (vupcase(1:5).EQ.'LAYER') line_direction(iaxis) = 'DU'
+ IF (vupcase(1:5).EQ.'LEVEL') line_direction(iaxis) = 'DU'
ENDIF
RETURN
diff --git a/fmt/src/cd_make_fmrc_axes.F b/fmt/src/cd_make_fmrc_axes.F
index 3146845..74cfd43 100644
--- a/fmt/src/cd_make_fmrc_axes.F
+++ b/fmt/src/cd_make_fmrc_axes.F
@@ -1,5 +1,5 @@
- SUBROUTINE CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
- . npts, nT, nF, axcalt, axlagf, status)
+ SUBROUTINE CD_MAKE_FMRC_AXES (dset, has_edges, varid, vname, vartype,
+ . npts, nT, nF, time2dline, axcalt, axlagf, status)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -39,12 +39,16 @@
* it uses the 2d time array stored in line_mem, and optionally an array of
* time edge positions stored just behind it
+* dynamic line mem storage axcalt stores the 2d time array on input, will
+* be reorganized here to store the T calendar time axis
+
* V695+ *acm* and *sh*
* V698 2/16 *sh* - if identical pre-existing axes exist, re-use them
* V698 3/16 *sh* - F-lag axis starts at 1/2 avg_lag (low cell bound at zero)
* V698 4/16 *acm* new TM_UNITS_CAL to account for calendar in units id
* V71 12/16 *acm* Ticket 2158: working with true monthly time axes. fmrc axis is
* not defined as true month.
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
* include files
include 'netcdf.inc'
@@ -68,10 +72,9 @@ c include 'calendar.cmn'
* calling argument declarations
LOGICAL has_edges
- INTEGER dset, varid, vartype, nT, nF, npts, axcalt, axlagf, status
+ INTEGER dset, varid, vartype, nT, nF, npts, axcalt, axlagf, time2dline, status
CHARACTER*(*) vname
-
* internal variable declarations
INTEGER bufflen
PARAMETER (bufflen = 256)
@@ -83,14 +86,14 @@ c include 'calendar.cmn'
INTEGER STR_UPCASE, TM_LENSTR1, TM_GET_CALENDAR_ID, TM_UNIT_ID,
. TM_UNITS_CAL, TM_FIND_LIKE_DYN_LINE, STR_SAME,
. i, l, n, nvdim, vdims(8), nvatts, npts2d,
- . npts_cdf, ipt1, ipte, iptn, iptnp1,
+ . npts_cdf, ipt1, ipte, iptn, iptnp1,
. outflag, next_line_storage, pre_exist,
. start(nferdims),count(nferdims), zero(nferdims),
. maxlen, attlen, attoutflag, cal_id, since_T0, slen, vlen,
- . units, istat, nlag, nleadtimes
- REAL val, epsilon_23, t0NextForecast
- REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
- . dfirst_delta, ddelta, avg_lag
+ . units, istat, nlag, nleadtimes, indx
+ REAL GET_LINE_COORD, val, epsilon_23, t0NextForecast,
+ . depsilon_46, depsilon, dlast_coord, dfirs_coord,
+ . dfirst_delta, ddelta, avg_lag, t1, t2
INTEGER tt ! nice short name
EQUIVALENCE (tt,lunit_errors)
@@ -101,27 +104,26 @@ c include 'calendar.cmn'
! . nvdim, vdims, nvatts, coordvar, outflag, status)
* initialize things
- next_line_storage = next_line_mem_pos
do_warn = .FALSE.
pCR = CHAR(15)
- ipt1 = next_line_mem_pos
- ipte = ipt1 + npts - 1
+
npts2d = npts ! save it
- epsilon_23 = 2.**(-23)
- depsilon_46 = 2.**(-46)
+ epsilon_23 = 2.**(-23)
+ depsilon_46 = 2.**(-46)
********* FIRST THE 1D CALENDAR TIME AXIS OF THE FMRC *************
* Define new axis
CALL TM_ALLO_TMP_LINE (axcalt, status)
-
+ CALL GET_LINE_DYNMEM (npts, axcalt, status)
+ IF (status .NE. merr_ok) GOTO 5000
* Get units, calendar, origin
-
* Get the calendar name.
line_cal_name(axcalt) = 'GREGORIAN' ! default
maxlen = bufflen
+ vlen = TM_LENSTR1(vname)
got_it = NC_GET_ATTRIB( dset, varid, 'calendar', do_warn,
. vname(:vlen), maxlen, attlen, attoutflag,
. buff, val)
@@ -224,13 +226,14 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
* save some values needed for the forecast lead time axis
* average lag time (lag is constant except in case of monthly forecasts)
* and how many lag time steps before the subsequent forecast begins?
- avg_lag = (line_mem(ipt1+nT*(nF-1))-line_mem(ipt1))
- . / (nF-1)
- t0NextForecast = line_mem(ipt1+nT)
+ t1 = GET_LINE_COORD(linemem(time2dline)%ptr, 1 )
+ t2 = GET_LINE_COORD(linemem(time2dline)%ptr, 1+nT*(nF-1) )
+ avg_lag = ( t2 - t1 )/ (nF-1)
+ t0NextForecast = GET_LINE_COORD(linemem(time2dline)%ptr, 1+nT)
depsilon = depsilon_46 * ABS(avg_lag)
DO nlag = 1, nT-1
- IF ( TM_DFPEQ_TOL(line_mem(ipt1+nlag), t0NextForecast, depsilon) )
- * GOTO 200
+ t2 = GET_LINE_COORD(linemem(time2dline)%ptr, 1+nlag)
+ IF ( TM_DFPEQ_TOL(t2, t0NextForecast, depsilon) ) GOTO 200
ENDDO
CALL TM_NOTE('Corrupted FMRC time array'//pCR//
. 'Time values dont match between forecasts', lunit_errors)
@@ -240,89 +243,108 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
* the number of forecasts is nF
* create the 1D array by traveling along each forecast and pulling out points
* until we reach the value of the first time step in the next forecast
+
200 npts = 0
- iptn = ipt1 ! start of forecast n
+ ipt1 = 1
+ iptn = 1 ! start of forecast n
+ ipte = nt*nf
+
DO n = 1, nF ! n index loops over forecasts
iptnp1 = iptn + nT
l = 0 ! zero-based l index over input time axis
IF (iptnp1 .LT. ipte) THEN
-* .. copy early time step values from this forecast into 1D axis
- DO WHILE ( (line_mem(iptn+l) .LT. line_mem(iptnp1)) .AND.
- * .NOT. TM_DFPEQ_TOL(line_mem(iptn+l), line_mem(iptnp1), depsilon) )
- line_mem(ipt1+npts) = line_mem(iptn+l)
- IF (has_edges) line_mem(ipt1+npts+npts2d) =
- . line_mem(iptn+l+npts2d)
+* .. copy early time step values from this forecast into 1d axis
+ t1 = GET_LINE_COORD (linemem(time2dline)%ptr, iptn+l)
+ t2 = GET_LINE_COORD (linemem(time2dline)%ptr, iptnp1)
+ do while ( (t1 .LT. t2) .AND.
+ . .NOT. TM_DFPEQ_TOL(t1, t2, depsilon) )
+ CALL PUT_LINE_COORD ( linemem(axcalt)%ptr, ipt1+npts, t1)
+ t2 = 0.
+ IF (has_edges) THEN
+ t2 = GET_LINE_COORD (lineedg(time2dline)%ptr, iptn+l)
+ CALL PUT_LINE_COORD (lineedg(axcalt)%ptr, ipt1+npts, t2)
+ ENDIF
npts = npts + 1
l = l + 1
+
+ t1 = GET_LINE_COORD (linemem(time2dline)%ptr, iptn+l)
+ t2 = GET_LINE_COORD (linemem(time2dline)%ptr, iptnp1)
ENDDO
ELSE
* .. copy all time step values from the final forecast into the 1D axis
DO l = 0, nT-1
- line_mem(ipt1+npts) = line_mem(iptn+l)
- IF (has_edges) line_mem(ipt1+npts+npts2d) =
- . line_mem(iptn+l+npts2d)
- npts = npts + 1
+ t1 = GET_LINE_COORD (linemem(time2dline)%ptr, iptn+l)
+ CALL PUT_LINE_COORD (linemem(axcalt)%ptr, ipt1+npts, t1)
+ t2 = 0
+ IF (has_edges) THEN
+ t2 = GET_LINE_COORD (lineedg(time2dline)%ptr, iptn+l)
+ CALL PUT_LINE_COORD (lineedg(axcalt)%ptr, ipt1+npts, t2)
+ indx = iptn+l
+ ENDIF
+ npts = npts + 1
ENDDO
ENDIF
iptn = iptnp1
ENDDO
+* .. uppermost bound
+
+ IF (has_edges) THEN
+ t2 = GET_LINE_COORD (lineedg(time2dline)%ptr, indx+1)
+ CALL PUT_LINE_COORD (lineedg(axcalt)%ptr, ipt1+npts, t2)
+ ENDIF
+
+
* now that the length of the 1D time axis is known, shift the edge bounds
* coordinates into their proper spot at the end of the coordinates
- IF (has_edges) THEN
- DO i = 0, npts-1
- line_mem(ipt1+npts+i) = line_mem(ipt1+npts2d+i)
- ENDDO
- line_mem(ipt1+2*npts) = line_mem(ipt1+2*npts2d)
- ENDIF
* ... until proven otherwise, this will look like an irregular axis
- line_subsc1(axcalt) = next_line_mem_pos
line_dim(axcalt) = npts
- ipte = ipt1 + npts-1
-
+
* from cd_get_1_axis.
* check for regular spacing according to the data type of incoming data.
* the variables (depsilon, etc) are in double precision. The tolerance
* chec, in TM_FPEQ_EPS is done to an equivalent single precision tol.
IF (vartype .EQ. ncdouble) THEN
- dlast_coord = line_mem(ipte)
- dfirs_coord = line_mem(ipt1)
- dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
- depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
-
- DO 340 i = ipt1+2, ipte
- ddelta = line_mem(i) - line_mem(i-1)
+ dlast_coord = GET_LINE_COORD(linemem(axcalt)%ptr, npts)
+ dfirs_coord = GET_LINE_COORD(linemem(axcalt)%ptr, 1)
+ dfirst_delta = GET_LINE_COORD(linemem(axcalt)%ptr, 2) - dfirs_coord
+ depsilon = depsilon_46 * 2.*(ABS(dfirs_coord) / dfirst_delta )
+
+ DO 340 i = 2, npts
+ ddelta = GET_LINE_COORD(linemem(axcalt)%ptr, i) -
+ . GET_LINE_COORD(linemem(axcalt)%ptr, i-1)
IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 380
340 CONTINUE
ELSE
- dlast_coord = line_mem(ipte)
- dfirs_coord = line_mem(ipt1)
- dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
- depsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
-
- DO 360 i=ipt1+2,ipte
- ddelta = line_mem(i) - line_mem(i-1)
+ dlast_coord = GET_LINE_COORD(linemem(axcalt)%ptr, npts)
+ dfirs_coord = GET_LINE_COORD(linemem(axcalt)%ptr, 1)
+ dfirst_delta = GET_LINE_COORD(linemem(axcalt)%ptr, 2) - dfirs_coord
+ depsilon = epsilon_23 * 2.*(ABS(dfirs_coord) / dfirst_delta )
+
+ DO 360 i=ipt1+2,npts
+ ddelta = GET_LINE_COORD(linemem(axcalt)%ptr, i) -
+ . GET_LINE_COORD(linemem(axcalt)%ptr, i-1)
IF (.NOT. TM_FPEQ_EPS(depsilon, dfirst_delta, ddelta) ) GOTO 380
360 CONTINUE
ENDIF
* It's regular - save it as such
line_regular(axcalt) = .TRUE.
- line_start (axcalt) = line_mem(ipt1)
+ line_start (axcalt) = GET_LINE_COORD(linemem(axcalt)%ptr, 1)
line_delta (axcalt) =
- . (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
+ . (GET_LINE_COORD(linemem(axcalt)%ptr, npts) -
+ . line_start(axcalt) )/ DBLE(npts-1)
line_subsc1 (axcalt) = unspecified_int4
+ CALL FREE_LINE_DYNMEM(axcalt)
GOTO 390
* Irregular
380 line_regular(axcalt) = .FALSE.
- IF ((next_line_mem_pos+2*npts+1).GT.maxlinestore) GOTO 5300
- IF (.NOT.has_edges) CALL TM_IRREGAX_MID( ipt1, npts )
-
-
+ IF (.NOT.has_edges) CALL TM_IRREGAX_MID(
+ . linemem(axcalt)%ptr, lineedg(axcalt)%ptr, npts )
390 CONTINUE
* Save the axis name (upper case) and memory storage. For all irregular axes,
@@ -330,9 +352,6 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
CALL TM_NEW_LINE_NAME ( 'TF_CAL_T', buff )
line_name(axcalt) = buff
line_name_orig(axcalt) = buff
- IF ( .NOT.line_regular(axcalt) ) THEN
- next_line_mem_pos = next_line_storage + 2*npts+1
- ENDIF
line_dattype(axcalt) = nf_double
********* NOW FINALLY THE FORECAST LEAD TIME AXIS OF THE FMRC *************
@@ -375,16 +394,9 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
5000 RETURN
-
- 5300 CALL TM_ERRMSG (merr_linstorlim, status, 'CD_MAKE_FMRC_AXES',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(maxlinestore)),
- . no_errstring, *5000)
-
5400 CALL TM_ERRMSG (merr_notimeinfo, status, 'CD_MAKE_FMRC_AXES',
. no_descfile, no_stepfile,
. 'unrecognizable time encoding',
. no_errstring, *5000)
-
RETURN
END
diff --git a/fmt/src/cd_make_fmrc_fcal_axis.F b/fmt/src/cd_make_fmrc_fcal_axis.F
index 0522c63..8b21eb2 100644
--- a/fmt/src/cd_make_fmrc_fcal_axis.F
+++ b/fmt/src/cd_make_fmrc_fcal_axis.F
@@ -1,4 +1,5 @@
- SUBROUTINE CD_MAKE_FMRC_FCAL_AXIS (dset, ens_ax, nF, axcalt, status)
+ SUBROUTINE CD_MAKE_FMRC_FCAL_AXIS (dset, ens_ax, nF, axcalt,
+ . status)
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -73,22 +74,20 @@
. coordvar, got_it, do_warn, ok_cal, yyyymmdd_time, got_torg
INTEGER STR_UPCASE, TM_LENSTR1, TM_FIND_LIKE_DYN_LINE,
. i, l, n, nvdim, vdims(8), nvatts,
- . npts_cdf, ipt1, ipte, iptn, iptnp1,
+ . ipt1, ipte, iptn, iptnp1,
. outflag, next_line_storage, pre_exist,
. start(nferdims),count(nferdims), zero(nferdims),
. maxlen, attlen, attoutflag, cal_id, since_T0, slen, vlen,
. units, istat, nlag, noverlap, nleadtimes
- REAL val, t0NextForecast
- REAL*8 depsilon_46, depsilon, dlast_coord, dfirs_coord,
- . dfirst_delta, ddelta, avg_lag
+ REAL GET_LINE_COORD, val, t0NextForecast,
+ . depsilon_46, depsilon, dlast_coord, dfirs_coord,
+ . dfirst_delta, ddelta, avg_lag, t1, t2
INTEGER tt ! nice short name
EQUIVALENCE (tt,lunit_errors)
-
* initialize things
- ipt1 = next_line_mem_pos
- ipte = ipt1 + nF - 1
+
depsilon_46 = 2.**(-46)
* from cd_get_1_axis.
@@ -96,30 +95,30 @@
* the variables (depsilon, etc) are in double precision. The tolerance
* chec, in TM_FPEQ_EPS is done to an equivalent single precision tol.
- dlast_coord = line_mem(ipte)
- dfirs_coord = line_mem(ipt1)
- dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
- depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+ dlast_coord = GET_LINE_COORD (linemem(ens_ax)%ptr, nf)
+ dfirs_coord = GET_LINE_COORD (linemem(ens_ax)%ptr, 1)
+ dfirst_delta = GET_LINE_COORD (linemem(ens_ax)%ptr, 2) - dfirs_coord
+ depsilon = depsilon_46 * 2.*(ABS(dfirs_coord) / dfirst_delta )
- DO i = ipt1+2, ipte
- ddelta = line_mem(i) - line_mem(i-1)
+ t1 = dfirs_coord
+ DO i = 2, nf
+ t2 = GET_LINE_COORD (linemem(ens_ax)%ptr, i)
+ ddelta = t2 - t1
IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 100
+ t1 = t2
ENDDO
* It's regular - save it as such
! line_regular(ens_ax) = .TRUE. ! already set
- line_start (ens_ax) = line_mem(ipt1)
- line_delta (ens_ax) =
- . (line_mem(ipte)-line_mem(ipt1))/DBLE(nF-1)
-! line_subsc1 (ens_ax) = unspecified_int4 ! already set
+ line_start (ens_ax) = dfirs_coord
+ line_delta (ens_ax) = (dlast_coord-dfirs_coord)/DBLE(nF-1)
+
+ IF (line_allocated(ens_ax) .GT. 0) CALL FREE_LINE_DYNMEM(ens_ax)
GOTO 200
* Irregular
100 line_regular(ens_ax) = .FALSE.
- line_subsc1(ens_ax) = next_line_mem_pos
- IF ((next_line_mem_pos+2*nF+1).GT.maxlinestore) GOTO 5300
! CALL TM_IRREGAX_MID( ipt1, nF ) -- not needed. have real edges
- next_line_mem_pos = next_line_mem_pos + 2*nF + 1
200 CONTINUE
@@ -143,11 +142,5 @@
5000 RETURN
-
- 5300 CALL TM_ERRMSG (merr_linstorlim, status, 'CD_MAKE_FMRC_FCAL_AXIS',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(maxlinestore)),
- . no_errstring, *5000)
-
RETURN
END
diff --git a/fmt/src/cd_rd_r8_arr.F b/fmt/src/cd_rd_r8_arr.F
index 84c9616..4875ae9 100644
--- a/fmt/src/cd_rd_r8_arr.F
+++ b/fmt/src/cd_rd_r8_arr.F
@@ -64,7 +64,7 @@
* argument declarations
INTEGER cdfid, varid, start, n, dtype, status
- REAL*8 dvals(n)
+ REAL*8 dvals(*)
CHARACTER*(*) errstr
include 'netcdf.inc'
diff --git a/fmt/src/cd_scan_vars.F b/fmt/src/cd_scan_vars.F
index bf0b4a2..2ef2180 100644
--- a/fmt/src/cd_scan_vars.F
+++ b/fmt/src/cd_scan_vars.F
@@ -182,8 +182,6 @@
EQUIVALENCE ( ds_precision, cd_data_type )
* initialize: save the state of grid memory prior to any new definitions
-* ... save original start of free line memory
- orig_line_mem = next_line_mem_pos
* ... flag all axes as non-reversed as the default
DO 10 i = max_lines, line_ceiling
diff --git a/fmt/src/cd_write_axis.F b/fmt/src/cd_write_axis.F
index 0097332..d2e2624 100644
--- a/fmt/src/cd_write_axis.F
+++ b/fmt/src/cd_write_axis.F
@@ -126,6 +126,10 @@
* as irregularly spaced daily axes.
* 1/26/2017 *acm* Ticket 1480. Do not write a modulo attribute if the requested
* region is largerthan the length of the modulo axis.
+* 10/6/2017 *acm* See fix in cd_get_line_direction.F, where axis or dim named
+* TIME but with no attributes was not marked in the T direction.
+* An axis made from a dimension-only is not written out as the
+* record axis.
* argument definitions:
* dset - dset (if netcdf file, for getting name and attribute
@@ -424,8 +428,8 @@
CALL CD_SET_MODE(cdfid, pcd_mode_define, status)
IF ( status .NE. merr_ok ) RETURN
-* define the dimension
- IF ( recdim ) THEN
+* define the dimension (if its just a dimension, will not write as a record axis)
+ IF ( recdim .AND. .NOT.line_dim_only(iaxis)) THEN
#ifdef usingDODSf2cUnderscore
cdfstat = NF_DEF_DIM_( cdfid, name(:nlen), NF_UNLIMITED, dimid )
ELSE
diff --git a/fer/utl/gcf_set_normal_axis.F b/fmt/src/copy_line_coords.F
similarity index 75%
copy from fer/utl/gcf_set_normal_axis.F
copy to fmt/src/copy_line_coords.F
index 3a0ed70..1e3a6ec 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fmt/src/copy_line_coords.F
@@ -1,8 +1,10 @@
- SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+ SUBROUTINE COPY_LINE_COORDS ( line, newline, npts )
+*
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -33,22 +35,29 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* A grid has been determined to need a normal axis in a particular direction,
-* when setting an alternate function to run depending on direction arguments.
+* Copy coordinate values for for a dynamically stored line to another line
+
+* programmer - Ansley Manke
+* revision 0.0 - 26-Jun-2016
+* V72 8/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+* Following main-memory dynamic
-*
-* V720 3/16 *acm*
- include 'ferret.parm'
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
-* calling argument declarations
- INTEGER grid, idim
+* calling argument declarations:
+ INTEGER npts
+ REAL line(*), newline(*)
- grid_line(idim, grid) = mnormal
-! anything else?
+ INTEGER i
+
+ DO i = 1, npts
+ newline(i) = line(i)
+ ENDDO
RETURN
END
+
diff --git a/ppl/complot/symwid.F b/fmt/src/get_line_coord.F
similarity index 79%
copy from ppl/complot/symwid.F
copy to fmt/src/get_line_coord.F
index dfd0e3a..c5156cd 100644
--- a/ppl/complot/symwid.F
+++ b/fmt/src/get_line_coord.F
@@ -1,9 +1,10 @@
- FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
+ REAL FUNCTION GET_LINE_COORD ( line, indx )
*
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -33,17 +34,23 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* Split off from file symbel.F 5/2015
-
-C *kob* 04/07/96 passed in character strings had to be declared
-C with "*(*)" for the linux port
- CHARACTER STRING*(*)
- NC=-IABS(NCHAR)
-C
-C THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
-C
- SS=0.
- IF (NC .NE. 0) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
- SYMWID=SS
+*
+* Return the value of a coordinate for a dynamically stored line at index indx
+
+* programmer - Ansley Manke
+* revision 0.0 - 26-Jun-2016
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+* Following main-memory dynamic
+
+
+ IMPLICIT NONE
+
+* calling argument declarations:
+ INTEGER indx
+ REAL line(*)
+
+ GET_LINE_COORD = line(indx)
+
RETURN
END
+
diff --git a/fmt/src/gt_get_time_axis.F b/fmt/src/gt_get_time_axis.F
index 8f3d143..e28ef48 100644
--- a/fmt/src/gt_get_time_axis.F
+++ b/fmt/src/gt_get_time_axis.F
@@ -104,7 +104,6 @@
external xunits_data
include 'xio.cmn_text'
external xio_data
-
*
* LOCAL DEFINITIONS
CHARACTER*1080 string
@@ -121,6 +120,10 @@
PARAMETER ( dp_epsilon = 1.D-10)
PARAMETER ( scr = 0 )
+
+* Initialize to "no line" for error return
+ GT_GET_TIME_AXIS = int4_init
+
* Determine the length and delta of the time axis, check regularity, and find
* first timestep
nsteps = 0
@@ -160,17 +163,15 @@
IF (line_regular(scr)) THEN
* ... regular
line_delta(scr) = delta
- line_subsc1(scr) = unspecified_int4
ELSE
* ... irregular
-* *kob* 8/96 removed all bpos and bpos0 stuff
+
+ CALL GET_LINE_DYNMEM (nsteps, scr, status)
+ IF (status .NE. merr_ok) GOTO 9999
+
line_start(scr) = unspecified_val8
line_delta(scr) = unspecified_val8
- line_subsc1(scr) = next_line_mem_pos
- cpos = line_subsc1(scr)
- cpos1 = cpos
- IF ((line_subsc1(scr)+2*line_dim(scr)) .GT. maxlinestore)
- . GOTO 9000
+ cpos = 1
* Create the time axis and grid box list
* kob - 8/96 - modify so loop not based on itt (now a real) but instead on
* nsteps_in_file
@@ -184,19 +185,21 @@
. sf_1step(istp))/delta) + 1
itt = sf_1step(istp)
DO 110 i = 1,nsteps_in_file
- line_mem(cpos) = itt
- cpos = cpos+1
- itt = itt + delta
+ CALL PUT_LINE_COORD ( linemem(scr)%ptr, cpos, itt )
+ cpos = cpos+1
+ itt = itt + delta
110 CONTINUE
ENDIF
+
120 CONTINUE
- CALL TM_IRREGAX_MID(line_subsc1(scr),line_dim(scr))
+ CALL TM_IRREGAX_MID( linemem(scr)%ptr, lineedg(scr)%ptr, nsteps )
+
ENDIF
* Time axis created, fill in the missing pieces
* ... name?
- line_fixname(scr) = .FALSE.
- IF (line_name(scr) .EQ. 'TIME') line_fixname(scr) = .TRUE.
+ line_fixname(scr) = line_name(scr) .EQ. 'TIME'
+
CALL TM_NEW_LINE_NAME('TIME',line_name(scr))
IF (line_fixname(scr)) line_name_orig(scr) = 'TIME'
@@ -252,34 +255,43 @@
* ...Warn about possible gaps in axis
* Bug fix - change next statment from compound if to if then ---kob 10/8/91
IF (.NOT. line_regular(nline)) THEN
- IF (.NOT. TM_CHECK_BOX_LOC(nline) ) GOTO 9100
+ IF (.NOT. TM_CHECK_BOX_LOC(linemem(scr)%ptr,
+ . lineedg(scr)%ptr, nsteps ) ) GOTO 9100
+ CALL TM_COPY_LINE ( scr, nline )
+ line_name(nline) = line_name(scr)
+ ENDIF
+
+* deallocate the temporary line storage used to compile the axis.
+ IF ( .NOT. line_regular(scr) ) THEN
+ CALL FREE_LINE_DYNMEM(scr)
+ line_regular(scr) = .TRUE.
ENDIF
-! IF (.NOT. line_regular(nline) .AND.
-! . .NOT. TM_CHECK_BOX_LOC(nline) ) GOTO 9100
* Time axis complete
GT_GET_TIME_AXIS = nline
- line_cal_name(scr) = 'GREGORIAN' ! Restore to the default
+ line_cal_name(nline) = 'GREGORIAN' ! Restore to the default
-* If necessary - find next free line memory storage position
- IF (.NOT. line_regular(nline))
- . next_line_mem_pos = next_line_mem_pos + 2*line_dim(nline) + 1
status = merr_ok
GOTO 9999
- 9000 CALL TM_ERRMSG (merr_linstorlim, status,'GT_GET_TIME_AXIS',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(maxlinestore)),
- . no_errstring, *9999)
-
- 9100 CALL TM_ERRMSG (merr_badlinedef, status, 'GT_GET_TIME_AXIS',
+ 9100 CONTINUE
+ IF ( .NOT. line_regular(scr) ) THEN
+ CALL FREE_LINE_DYNMEM(scr)
+ line_regular(scr) = .TRUE.
+ ENDIF
+ CALL TM_ERRMSG (merr_badlinedef, status, 'GT_GET_TIME_AXIS',
. no_descfile, no_stepfile,
. 'A gap or overlap exists in time axis',
. no_errstring, *9999)
- 9200 CALL TM_ERRMSG (merr_linelim, status, 'GT_GET_TIME_AXIS',
+ 9200 CONTINUE
+ IF ( .NOT. line_regular(scr) ) THEN
+ CALL FREE_LINE_DYNMEM(scr)
+ line_regular(scr) = .TRUE.
+ ENDIF
+ CALL TM_ERRMSG (merr_badlinedef, status, 'GT_GET_TIME_AXIS',
. no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(max_lines)), no_errstring,
+ . 'error defining axis for descriptor file', no_errstring,
. *9999)
* Exit subroutine
diff --git a/ppl/complot/symwid.F b/fmt/src/put_line_coord.F
similarity index 79%
copy from ppl/complot/symwid.F
copy to fmt/src/put_line_coord.F
index dfd0e3a..e48f951 100644
--- a/ppl/complot/symwid.F
+++ b/fmt/src/put_line_coord.F
@@ -1,9 +1,10 @@
- FUNCTION SYMWID(HEIGHT,NCHAR,STRING)
+ SUBROUTINE PUT_LINE_COORD ( line, indx, value )
*
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
*
* Access and use of this software shall impose the following
@@ -33,17 +34,23 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* Split off from file symbel.F 5/2015
-
-C *kob* 04/07/96 passed in character strings had to be declared
-C with "*(*)" for the linux port
- CHARACTER STRING*(*)
- NC=-IABS(NCHAR)
-C
-C THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
-C
- SS=0.
- IF (NC .NE. 0) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
- SYMWID=SS
+*
+* Set a coordinate value for for a dynamically stored line at index indx
+
+* programmer - Ansley Manke
+* revision 0.0 - 26-Jun-2016
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+* Following main-memory dynamic
+
+
+ IMPLICIT NONE
+
+* calling argument declarations:
+ INTEGER indx
+ REAL line(*), value
+
+ line(indx) = value
+
RETURN
END
+
diff --git a/fmt/src/tm_adjust_bounds.F b/fmt/src/tm_adjust_bounds.F
index b2f14f9..e969c3d 100644
--- a/fmt/src/tm_adjust_bounds.F
+++ b/fmt/src/tm_adjust_bounds.F
@@ -1,4 +1,4 @@
- SUBROUTINE TM_ADJUST_BOUNDS(iaxis, modlen, axwwlen, ok)
+ SUBROUTINE TM_ADJUST_BOUNDS(iaxis, npts, modlen, axwwlen, ok)
* This software was developed by the Thermal Modeling and Analysis
@@ -40,26 +40,30 @@
* bounds on a DEFINE AXIS given without cell edges or from a netCDF file
* where bounds were not included in the file.
*
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+*
* return axwwlen
# include "tmap_dset.parm"
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
+* Argument declarations
LOGICAL ok
- INTEGER iaxis
+ INTEGER iaxis, npts
REAL modlen, axwwlen
+* Local declarations
LOGICAL TM_FPEQ
INTEGER TM_LENSTR1, ipt1, ipte
- REAL TM_WW_AXLEN, delta
+ REAL GET_LINE_COORD, TM_WW_AXLEN,
+ . delta, pt1, ptn
REAL*4 r4delta
*
ok = .TRUE.
axwwlen = TM_WW_AXLEN(iaxis)
-
* Exit if the modulo length is 0. which indicates modulo length is axis length.
IF (modlen .EQ. 0.) GOTO 5000
@@ -69,12 +73,12 @@
* Exit if the line is regularly spaced
IF ( line_regular(iaxis) ) GOTO 5000
- ipt1 = line_subsc1(iaxis)
- ipte = ipt1 + line_dim(iaxis) - 1
-
- delta = modlen - (line_mem(ipte) - line_mem(ipt1))
- line_mem(ipte+1) = line_mem(ipt1) - delta/2.
- line_mem(ipte+line_dim(iaxis)+1) = line_mem(ipte) + delta/2.
+ pt1 = GET_LINE_COORD (linemem(iaxis)%ptr,1)
+ ptn = GET_LINE_COORD (linemem(iaxis)%ptr, npts)
+ delta = modlen - (ptn - pt1)
+
+ CALL PUT_LINE_COORD ( lineedg(iaxis)%ptr, 1, pt1 - delta/2. )
+ CALL PUT_LINE_COORD ( lineedg(iaxis)%ptr, npts+1, ptn + delta/2. )
* did the adjustment keep the length within the defined moudulo length?
* (probably always the case if we've got this far.)
diff --git a/fmt/src/tm_check_bnds.F b/fmt/src/tm_check_bnds.F
index 86b98e3..586a4a2 100644
--- a/fmt/src/tm_check_bnds.F
+++ b/fmt/src/tm_check_bnds.F
@@ -1,4 +1,5 @@
- LOGICAL FUNCTION TM_CHECK_BNDS (nline, nb, doubletype, vname)
+ LOGICAL FUNCTION TM_CHECK_BNDS (line, line_edges, npts,
+ . iaxis, doubletype, vname)
*
* This software was developed by the Thermal Modeling and Analysis
@@ -34,7 +35,6 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-*
* Checks to make sure bounds are contiguous and the data points are
* enclosed by its bounds on an axis
@@ -48,7 +48,7 @@
* N+1 bounds) and no need to check for gaps for N+1 bounds
* V694 5/15 *acm* Match precision for bounds checks (as is done for coords).
* V696 10/15 *acm* Ticket 2321: Fix logic when detecting coords that match grid bounds
-
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage.
INCLUDE 'xio.cmn_text'
INCLUDE 'tmap_dims.parm'
@@ -58,13 +58,13 @@
* Arguments
LOGICAL doubletype
- INTEGER nline, nb
+ INTEGER iaxis, npts
+ REAL line(*), line_edges(*)
CHARACTER*(*) vname
* Internal definitions
LOGICAL TM_FPEQ_EPS, TM_DFPEQ_TOL, equal, equal_ends, overlapping
- INTEGER TM_LENSTR1, npts, ipt1, ibx1, i, ngap, vlen, status,
- . nothing
+ INTEGER TM_LENSTR1, ipt1, ibx1, i, ngap, vlen, status
REAL*8 pt, del, bhi, blo
REAL epsilon_23, epsilon
@@ -77,180 +77,78 @@
epsilon_23 = 2.**(-22)
depsilon_46 = 2.**(-45)
- ipt1 = line_subsc1(nline)
- npts = line_dim(nline)
- ibx1 = ipt1 + npts
- IF (ibx1 + nb .GT. maxlinestore) GOTO 5100
-
- blast = REAL(line_mem(ibx1+1)) ! First box_hi
+ blast = line_edges(2) ! First box-hi
TM_CHECK_BNDS = .TRUE.
ngap = 0
overlapping = .FALSE.
- IF (nb .EQ. 2*npts) THEN
-
- first_delta = line_mem(ipt1+1) - line_mem(ipt1)
- depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
- epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
-
- IF (line_regular(nline)) THEN
-
- pt = line_start(nline)
- del = line_delta(nline)
- DO 100 i = 0, npts-1
- blo = line_mem(ibx1+2*i)
- bhi = line_mem(ibx1+2*i+1)
- IF ( (pt .LT. blo) .OR. (pt .GT. bhi) ) THEN
- IF (doubletype) THEN
- equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon)
- ELSE
- equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
- ENDIF
- IF (.NOT. equal) THEN
- TM_CHECK_BNDS = .FALSE.
- RETURN
- ENDIF
- ENDIF
- pt = line_start(nline) + DBLE(i+1)* del
-
- 100 CONTINUE
-
- ELSE ! (not line_regular)
-
-
- DO 200 i = 0, npts-1
- pt = line_mem(ipt1+i)
- blo = line_mem(ibx1+2*i)
- bhi = line_mem(ibx1+2*i+1)
- IF ( (pt .LT. blo) .OR. (pt .GT. bhi) ) THEN
-
- IF (doubletype) THEN
- equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon)
- ELSE
- equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
- ENDIF
- IF (.NOT. equal) THEN
- TM_CHECK_BNDS = .FALSE.
- RETURN
- ENDIF
-
- RETURN
- ENDIF
- IF (i .GE. 1) THEN
- IF (doubletype) THEN
- equal_ends = TM_DFPEQ_TOL(blast, REAL(blo), depsilon)
- ELSE
- equal_ends = TM_FPEQ_EPS(epsilon, blast, REAL(blo))
- ENDIF
- IF (.NOT.equal_ends .AND. blo.LT.blast) THEN
- overlapping = .TRUE.
- GOTO 330
- ENDIF
- IF (.NOT. equal_ends ) THEN
- ngap = ngap + 1
- line_mem(ibx1+2*i) = blast
- ENDIF
- blast = REAL(bhi)
- ENDIF
-
- 200 CONTINUE
- ENDIF ! line_regular
-
-* Change from N*2 storage of bounds to N+1 edges.
-
- DO 300 i = 0, npts-1
- bhi = line_mem(ibx1+2*i+1)
- line_mem(ibx1+i+1) = bhi
- 300 CONTINUE
-
- IF (ngap .EQ. 0) THEN
- TM_CHECK_BNDS = .TRUE.
- RETURN
- ELSE
-
- vbuff = vname
- vlen = TM_LENSTR1(vbuff)
- CALL WARN( 'Axis definition error on axis: '
+ first_delta = line(2) - line(1)
+ depsilon = depsilon_46 * 2.*(ABS(line(1)) / first_delta )
+ epsilon = epsilon_23 * 2.*(ABS(line(1)) / first_delta )
+
+ DO i = 1, npts
+ pt = line(i)
+ blo = line_edges(2*(i-1)+1)
+ bhi = line_edges(2*(i-1)+2)
+ IF ( (pt .LT. blo) .OR. (pt .GT. bhi) ) THEN
+
+ IF (doubletype) THEN
+ equal = TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon)
+ ELSE
+ equal = TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi)
+ ENDIF
+ IF (.NOT. equal) THEN
+ TM_CHECK_BNDS = .FALSE.
+ GOTO 5000
+ ENDIF
+
+ GOTO 5000
+ ENDIF
+ IF (i .GT. 1) THEN
+ IF (doubletype) THEN
+ equal_ends = TM_DFPEQ_TOL(blast, REAL(blo), depsilon)
+ ELSE
+ equal_ends = TM_FPEQ_EPS(epsilon, blast, REAL(blo))
+ ENDIF
+ IF (.NOT.equal_ends .AND. blo.LT.blast) THEN
+ overlapping = .TRUE.
+ GOTO 330
+ ENDIF
+ IF (.NOT. equal_ends ) THEN
+ ngap = ngap + 1
+ line_edges(2*(i-1)+1) = blast
+ ENDIF
+ blast = REAL(bhi)
+ ENDIF
+
+ ENDDO
+
+ IF (ngap .EQ. 0) THEN
+ TM_CHECK_BNDS = .TRUE.
+ GOTO 5000
+ ELSE
+
+ vbuff = vname
+ vlen = TM_LENSTR1(vbuff)
+ CALL WARN( 'Axis definition error on axis: '
. //vbuff(:vlen))
- CALL WARN(
+ CALL WARN(
. 'Bounds given describe non-contiguous axis cells ')
- CALL WARN(
+ CALL WARN(
. 'Using the LOWER bound specified for each axis cell')
- TM_CHECK_BNDS = .TRUE.
+ TM_CHECK_BNDS = .TRUE.
- ENDIF
- 330 IF (overlapping) THEN
- vbuff = vname
- vlen = TM_LENSTR1(vbuff)
- CALL WARN( 'Axis definition error on axis: '
+ ENDIF
+
+ 330 IF (overlapping) THEN
+ vbuff = vname
+ vlen = TM_LENSTR1(vbuff)
+ CALL WARN( 'Axis definition error on axis: '
. //vbuff(:vlen)//'. Bounds describe cells '//
. 'that overlap one another ')
- TM_CHECK_BNDS = .FALSE.
- ENDIF
-
-
- ELSE ! bounds are already specified as N+1 values
-
- IF (line_regular(nline)) THEN
- pt = line_start(nline)
- del = line_delta(nline)
- DO 400 i = 0, npts-1
- blo = line_mem(ibx1+i)
- bhi = line_mem(ibx1+i+1)
-
- IF ( (pt .LT. blo) .OR. (pt .GT. bhi) ) THEN
- IF (doubletype) THEN
- IF (TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) ) THEN
- nothing = 0
- ELSE
- TM_CHECK_BNDS = .FALSE.
- ENDIF
- ELSE
- IF (TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi) ) THEN
- nothing = 0
- ELSE
- TM_CHECK_BNDS = .FALSE.
- ENDIF
- ENDIF
- RETURN
- ENDIF
- pt = line_start(nline) + FLOAT(i+1)* del
-
- 400 CONTINUE
-
- ELSE ! line_regular
-
- DO 500 i = 0, npts-1
- pt = line_mem(ipt1+i)
- blo = line_mem(ibx1+i)
- bhi = line_mem(ibx1+i+1)
- IF ( (pt .LT. blo) .OR. (pt .GT. bhi) ) THEN
- IF (doubletype) THEN
- IF (TM_DFPEQ_TOL(pt,blo,depsilon) .OR. TM_DFPEQ_TOL(pt,bhi,depsilon) ) THEN
- nothing = 0
- ELSE
- TM_CHECK_BNDS = .FALSE.
- ENDIF
- ELSE
- IF (TM_FPEQ_EPS(epsilon,pt,blo) .OR. TM_FPEQ_EPS(epsilon,pt,bhi) ) THEN
- nothing = 0
- ELSE
- TM_CHECK_BNDS = .FALSE.
- ENDIF
- ENDIF
- RETURN
- ENDIF
-
- 500 CONTINUE
- ENDIF ! line_regular
-
- ENDIF
+ TM_CHECK_BNDS = .FALSE.
+ ENDIF
5000 RETURN
- 5100 TM_CHECK_BNDS = .FALSE.
- CALL TM_ERRMSG (merr_linstorlim, status, 'TM_CHECK_BNDS',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(maxlinestore)),
- . no_errstring, *5000)
END
diff --git a/fmt/src/tm_check_bnds_centered.F b/fmt/src/tm_check_bnds_centered.F
index 4d81e23..f18de4b 100644
--- a/fmt/src/tm_check_bnds_centered.F
+++ b/fmt/src/tm_check_bnds_centered.F
@@ -1,4 +1,5 @@
- LOGICAL FUNCTION TM_CHECK_BNDS_CENTERED (nline, doubletype)
+ LOGICAL FUNCTION TM_CHECK_BNDS_CENTERED (line, line_edges, npts,
+ . iaxis, doubletype)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -42,41 +43,45 @@
* whether the boxes are equal sized.
* V601 *acm* 9/19 Fix bug 1434; check bounds for regularly-spaced axes
* V694 5/15 *acm* Match precision for bounds checks (as is done for coords).
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+* line and line_edges are the coordinates and edges for this line
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
external xgt_grid_data
-* Argument declaration
- LOGICAL doubletype
- INTEGER nline
+* Argument declarations
+ REAL line(*), line_edges(*)
+ LOGICAL doubletype, regular
+ INTEGER npts, iaxis
* Local variable declarations
LOGICAL TM_FPEQ_EPS, TM_DFPEQ_TOL, equal
- INTEGER ipt1, npts, ibx1, i
+ INTEGER i
REAL diff_hi, diff_lo, diff_last
- REAL pt, del
+ REAL pt, del, blo, bhi
REAL epsilon_23, epsilon
REAL*8 depsilon_46, depsilon, first_delta
- epsilon_23 = 2.**(-23)
- depsilon_46 = 2.**(-46)
+ epsilon_23 = 2.**(-23)
+ depsilon_46 = 2.**(-46)
- ipt1 = line_subsc1(nline)
- npts = line_dim(nline)
- ibx1 = ipt1 + npts
+ first_delta = line(2) - line(1)
- first_delta = line_mem(ipt1+1) - line_mem(ipt1)
- depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / first_delta )
- epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+ depsilon = depsilon_46 * 2.*(ABS(line(1)) / first_delta )
+ epsilon = epsilon_23 * 2.*(ABS(line(1)) / first_delta )
- IF (line_regular(nline)) THEN
- pt = line_start(nline)
- del = line_delta(nline)
+ IF (line_regular(iaxis)) THEN
+ pt = line_start(iaxis)
+ del = line_delta(iaxis)
- DO 100 i = 0, npts-1
- diff_hi = line_mem(ibx1+i+1) - pt
- diff_lo = pt - line_mem(ibx1+i)
+ DO 100 i = 1, npts
+
+ blo = line_edges(2*(i-1)+1)
+ bhi = line_edges(2*(i-1)+2)
+
+ diff_hi = bhi - pt
+ diff_lo = pt - blo
IF (doubletype) THEN
equal = TM_DFPEQ_TOL(diff_lo, diff_hi, depsilon)
@@ -89,22 +94,25 @@
RETURN
ENDIF
- IF (i .GT. 0) THEN
+ IF (i .GT. 1) THEN
IF (diff_hi .NE. diff_last) THEN
TM_CHECK_BNDS_CENTERED = .FALSE.
RETURN
ENDIF
ENDIF
diff_last = diff_hi
- pt = float(i+1) * del + line_start(nline)
+ pt = float(i) * del + line_start(iaxis)
100 CONTINUE
ELSE ! not line_regular
- DO 200 i = 0, npts-1
- diff_hi = line_mem(ibx1+i+1) - line_mem(ipt1+i)
- diff_lo = line_mem(ipt1+i)- line_mem(ibx1+i)
+ DO 200 i = 1, npts
+ blo = line_edges(2*(i-1)+1)
+ bhi = line_edges(2*(i-1)+2)
+
+ diff_hi = bhi - line(i)
+ diff_lo = line(i)- blo
IF (doubletype) THEN
equal = TM_DFPEQ_TOL(diff_lo, diff_hi, depsilon)
@@ -116,7 +124,7 @@
RETURN
ENDIF
- IF (i .GT. 0) THEN
+ IF (i .GT. 1) THEN
IF (diff_hi .NE. diff_last) THEN
TM_CHECK_BNDS_CENTERED = .FALSE.
RETURN
diff --git a/fmt/src/tm_check_box_loc.F b/fmt/src/tm_check_box_loc.F
index 0883cbd..efc849d 100644
--- a/fmt/src/tm_check_box_loc.F
+++ b/fmt/src/tm_check_box_loc.F
@@ -1,4 +1,4 @@
- LOGICAL FUNCTION TM_Check_box_loc (nline)
+ LOGICAL FUNCTION TM_CHECK_BOX_LOC (line, line_edges, npts)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -39,27 +39,26 @@
*
* revision 0.00 - 05/26/88 - by M. Verschell for PMEL/TMAP
* V63 *acm* 10/09 Changes for gfortran build
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+* line and line_edges are the coordinates and edges for this line
*
-* Argument
- INTEGER*4 nline
+* Arguments
+ REAL line(*), line_edges(*)
+ INTEGER npts
*
include 'tmap_dims.parm'
#include "tmap_dset.parm"
include 'xtm_grid.cmn_text'
external xgt_grid_data
-*
- INTEGER*4 ipt1, npts, ibx1, i, nothing
- LOGICAL TM_DFPEQ
+
+ INTEGER i, nothing
+ LOGICAL TM_DFPEQ
REAL*8 a,b1,b2
-*
- ipt1 = line_subsc1(nline)
- npts = line_dim(nline)
- ibx1 = ipt1 + npts
- DO 100 i=0,npts-1
- a = line_mem(ipt1+i)
- b1 = line_mem(ibx1+i)
- b2 = line_mem(ibx1+i+1)
+ DO 100 i = 1,npts-1
+ a = line(i)
+ b1 = line_edges(i)
+ b2 = line_edges(i+1)
IF (a .LT. b1 .OR. a .GT. b2) THEN
IF (TM_DFPEQ(a,b1) .OR. TM_DFPEQ(a,b2) ) THEN
nothing = 0
@@ -70,6 +69,6 @@
ENDIF
100 CONTINUE
- TM_Check_box_loc = .TRUE.
+ TM_CHECK_BOX_LOC = .TRUE.
RETURN
END
diff --git a/fmt/src/tm_check_coords.F b/fmt/src/tm_check_coords.F
index eeaa49f..18476d1 100644
--- a/fmt/src/tm_check_coords.F
+++ b/fmt/src/tm_check_coords.F
@@ -1,4 +1,4 @@
- SUBROUTINE TM_CHECK_COORDS (ipt1, ipte, is_double, use_strict,
+ SUBROUTINE TM_CHECK_COORDS (line, npts, is_double, use_strict,
. has_repeated, misordered, micro,
. epsilon, depsilon)
@@ -36,6 +36,8 @@
*
*
* Ferret v7.1 *acm* 1/13/2017
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+
* This routine replaces identical logic in cd_get_1_axis and xeq_define,
* checking for repeated coordinates and doing micro-adjusting if possible.
*
@@ -43,7 +45,7 @@
* or xeq_define.Apply micro-adjusging to correct this, unless flag use_strict is set.
* Arguments
-* ipt1, ipte range of values in line_mem
+* line coordinates for the line
* is_double, for netCDF files, flag is true if the coordinates in the file are double precision.
* use_strict, for netCDF files, flag is true if the user requested /STRICT; do not do micro-adjusting
* micro If positive, use this value for the micro-adjustment, otherwise compute it.
@@ -64,8 +66,8 @@
* argument declarations
LOGICAL is_double, has_repeated, misordered, use_strict
- INTEGER ipt1, ipte
- REAL micro, epsilon, depsilon
+ INTEGER npts
+ REAL line(*), micro, epsilon, depsilon
* Local variable declarations
LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS
@@ -80,20 +82,19 @@
has_repeated = .FALSE.
misordered = .FALSE.
-
- IF (ipte-ipt1 .LE. 1) RETURN
-
* Set epsilon value for comparing coordinates
epsilon = 0.
depsilon = 0.
+ IF (npts .LT. 2) RETURN
+
IF (is_double) THEN
- dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
+ dfirst_delta = line(2) - line(1)
IF (dfirst_delta .LT. depsilon_46) THEN
- DO i = ipt1+2, ipte
- dfirst_delta = line_mem(i) - line_mem(i-1)
+ DO i = 2, npts
+ dfirst_delta = line(i) - line(i-1)
IF (dfirst_delta .GE. depsilon_46) EXIT ! from loop
ENDDO
IF (dfirst_delta .LT. depsilon_46) THEN
@@ -101,18 +102,18 @@
GOTO 1000
ENDIF
ENDIF
- depsilon = depsilon_46 * 2.*(ABS(line_mem(ipte)) / dfirst_delta )
- depsilon = depsilon_46 * 2.*(ABS(line_mem(ipt1)) / dfirst_delta )
+ depsilon = depsilon_46 * 2.*(ABS(line(npts)) / dfirst_delta )
+ depsilon = depsilon_46 * 2.*(ABS(line(1)) / dfirst_delta )
ELSE
- dfirst_delta = line_mem(ipt1+1) - line_mem(ipt1)
- epsilon = epsilon_23 * 2.*(ABS(line_mem(ipte)) / first_delta )
- epsilon = epsilon_23 * 2.*(ABS(line_mem(ipt1)) / first_delta )
+ dfirst_delta = line(2) - line(1)
+ epsilon = epsilon_23 * 2.*(ABS(line(npts)) / first_delta )
+ epsilon = epsilon_23 * 2.*(ABS(line(1)) / first_delta )
IF (first_delta .LT. epsilon_23) THEN
- DO i = ipt1+2, ipte
- first_delta = line_mem(i+1) - line_mem(i)
+ DO i = 1, npts
+ first_delta = line(i+1) - line(i)
IF (first_delta .GE. epsilon_23) EXIT ! from loop
ENDDO
IF (first_delta .LT. epsilon_23) THEN
@@ -129,15 +130,15 @@
IF (micro .GT. 0.) THEN
micro_adj = micro
ELSE
- micro_adj = 1E-7 * (line_mem(ipte) - line_mem(ipt1))
+ micro_adj = 1E-7 * (line(npts) - line(1))
ENDIF
* ... are there repeated values?
IF (is_double) THEN
zero = 0.
- DO 110 i1 = ipt1+1, ipte
- delta = line_mem(i1) - line_mem(i1-1)
+ DO 110 i1 = 2, npts
+ delta = line(i1) - line(i1-1)
IF (TM_DFPEQ_TOL(delta, zero, depsilon) ) THEN
has_repeated = .TRUE.
GOTO 130
@@ -146,8 +147,8 @@
ELSE
zero = 0.0
- DO 120 i1 = ipt1+1, ipte
- delta = line_mem(i1) - line_mem(i1-1)
+ DO 120 i1 = 2, npts
+ delta = line(i1) - line(i1-1)
IF (TM_FPEQ_EPS(epsilon, delta, zero) ) THEN
has_repeated = .TRUE.
GOTO 130
@@ -165,35 +166,35 @@
* ... make micro-adjustments if axis has repeated values (4/99)
IF (micro_adj .EQ. 0.) THEN
- i1 = ipt1+1
+ i1 = 1
misordered = .TRUE.
GOTO 1000
ENDIF
- i0 = ipt1
+ i0 = 1
* --- adjust coordinates coming in as double-precision
IF (is_double) THEN
- DO 170 i1 = ipt1+1, ipte
+ DO 170 i1 = 2, npts
- delta = line_mem(i1) - line_mem(i1-1)
+ delta = line(i1) - line(i1-1)
IF (TM_DFPEQ_TOL(delta, zero, depsilon) ) THEN
* ... locate end of repeating block
- DO 140 i2 = i1, ipte
- delta = line_mem(i2) - line_mem(i1)
+ DO 140 i2 = i1, npts
+ delta = line(i2) - line(i1)
IF ( delta .GT. depsilon ) GOTO 150
140 CONTINUE
- i2 = ipte + 1 ! one beyond last value
+ i2 = npts + 1 ! one beyond last value
i0 = i1 - 2
i3 = i2 - 1
* ... micro-adjust repeating values from i1 to i2-1
150 CONTINUE
- delta = line_mem(i2)-line_mem(i1)
+ delta = line(i2)-line(i1)
IF (.NOT.TM_DFPEQ_TOL(delta, zero, depsilon) .AND.
- . line_mem(i2).GT.line_mem(i1)) THEN
+ . line(i2).GT.line(i1)) THEN
i0 = i1-1
i3 = i2
ENDIF
@@ -201,8 +202,8 @@
* Check and readjust the size of micro_adj if too small
madj = micro_adj
IF (micro_adj*(i2-i1+1) .GT.
- . line_mem(i3) - line_mem(i0) ) THEN
- madj = (line_mem(i3)-line_mem(i0))/(i2-i1+1)
+ . line(i3) - line(i0) ) THEN
+ madj = (line(i3)-line(i0))/(i2-i1+1)
IF (madj .EQ. 0.) THEN
misordered = .TRUE.
GOTO 1000
@@ -210,12 +211,12 @@
ENDIF
DO 160 i3 = i1, i2-1
- line_mem(i3) = line_mem(i3) + (i3-i1+1)* madj
+ line(i3) = line(i3) + (i3-i1+1)* madj
160 CONTINUE
- delta = line_mem(i2)-line_mem(i2-1)
- IF ( i2 .LT. ipte .AND. .NOT.TM_DFPEQ_TOL(delta, zero, depsilon) .AND.
- . (line_mem(i2-1) .GE. line_mem(i2))) THEN
+ delta = line(i2)-line(i2-1)
+ IF ( i2 .LT. npts .AND. .NOT.TM_DFPEQ_TOL(delta, zero, depsilon) .AND.
+ . (line(i2-1) .GE. line(i2))) THEN
misordered = .TRUE.
GOTO 1000
ENDIF
@@ -226,24 +227,24 @@
* --- adjust coordinates coming in as single-precision
ELSE ! single
- DO 270 i1 = ipt1+1, ipte
+ DO 270 i1 = 2, npts
- delta = line_mem(i1) - line_mem(i1-1)
+ delta = line(i1) - line(i1-1)
IF (TM_FPEQ_EPS(epsilon, delta, zero) ) THEN
* ... locate end of repeating block
- DO 240 i2 = i1, ipte
- delta = line_mem(i2) - line_mem(i1)
+ DO 240 i2 = i1, npts
+ delta = line(i2) - line(i1)
IF (delta .GT. epsilon) GOTO 250
240 CONTINUE
- i2 = ipte + 1 ! one beyond last value
+ i2 = npts + 1 ! one beyond last value
i0 = i1 - 2
i3 = i2 - 1
* ... micro-adjust repeating values from i1 to i2-1
250 CONTINUE
- delta = line_mem(i2)-line_mem(i1)
+ delta = line(i2)-line(i1)
IF (.NOT.TM_FPEQ_EPS(epsilon, delta, zero) .AND.
- . line_mem(i2).GT.line_mem(i1)) THEN
+ . line(i2).GT.line(i1)) THEN
i0 = i1-1
i3 = i2
ENDIF
@@ -251,21 +252,21 @@
* Check and readjust the size of micro_adj if too small
madj = micro_adj
IF (micro_adj*(i2-i1+1) .GT.
- . line_mem(i3) - line_mem(i0) ) THEN
- madj = (line_mem(i3)-line_mem(i0))/(i2-i1+1)
+ . line(i3) - line(i0) ) THEN
+ madj = (line(i3)-line(i0))/(i2-i1+1)
IF (madj .EQ. 0.) THEN
misordered = .TRUE.
GOTO 1000
ENDIF
ENDIF
DO 260 i3 = i1, i2-1
- line_mem(i3) = line_mem(i3) + (i3-i1+1)* madj
+ line(i3) = line(i3) + (i3-i1+1)* madj
260 CONTINUE
- delta = line_mem(i2)-line_mem(i2-1)
- IF ( i2 .LT. ipte .AND. .NOT.TM_FPEQ_EPS(epsilon, delta, zero) .AND.
- . (line_mem(i2-1) .GE. line_mem(i2))) THEN
+ delta = line(i2)-line(i2-1)
+ IF ( i2 .LT. npts .AND. .NOT.TM_FPEQ_EPS(epsilon, delta, zero) .AND.
+ . (line(i2-1) .GE. line(i2))) THEN
misordered = .TRUE.
GOTO 1000
ENDIF
diff --git a/fmt/src/tm_check_line.F b/fmt/src/tm_check_line.F
new file mode 100644
index 0000000..66d1f1c
--- /dev/null
+++ b/fmt/src/tm_check_line.F
@@ -0,0 +1,194 @@
+ SUBROUTINE TM_CHECK_LINE ( line, npts, reversed, vname, vlen,
+ . is_double, its_irregular, use_strict, regular, misordered)
+
+*
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+* Check coordinate data from a netCDF file
+*
+* Check for misordered or repeated data.
+* If repeated values, apply micro-adjusting, or report as a warning if the
+* user requested /STRICT.
+
+* Check if axis is actually regularly spaced (though not flagged as "even")
+* Use the precision of the data in the file.
+
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
+
+* revision 0.0 - 6/17
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+
+
+ include 'tmap_errors.parm'
+ include 'xio.cmn_text'
+ external xio_data
+
+* argument declarations
+
+ LOGICAL reversed, is_double, has_repeated, its_irregular,
+ . use_strict, regular, misordered
+ REAL line(*)
+ INTEGER npts, vlen
+ CHARACTER*(*) vname
+
+
+* local declarations
+ LOGICAL TM_DFPEQ_TOL, TM_FPEQ_EPS
+ REAL tmp8, micro_adj, epsilon_23, depsilon_46, epsilon, depsilon,
+ . dfirst_delta, ddelta, delta, firs_coord, last_coord, first_delta
+ INTEGER i, istat
+ CHARACTER*12 TM_LEFINT
+
+ misordered = .FALSE. ! valid until proven otherwise
+
+* (From Wikipedia on precision:)
+* Single precision, called "float" in the C language family, and "real"
+* or "real*4" in Fortran. This is a binary format that occupies 32 bits (4 bytes)
+* and its significand has a precision of 24 bits (about 7 decimal digits).
+* Double precision, called "double" in the C language family, and "double precision"
+* or "real*8" in Fortran. This is a binary format that occupies 64 bits (8 bytes)
+* and its significand has a precision of 53 bits (about 16 decimal digits).
+
+ epsilon_23 = 2.**(-23)
+ depsilon_46 = 2.**(-46)
+
+* if the coordinates are decreasing-ordered then reverse them
+
+ IF (npts .GT. 1) THEN
+ first_delta = line(2) - line(1)
+ reversed = first_delta .LT. 0.0
+ ENDIF
+
+ IF (reversed) THEN
+ DO i = 1, npts/2
+ tmp8 = line(i)
+ line(i) = line(npts+1-i)
+ line(npts+1-i) = tmp8
+ ENDDO
+ ENDIF
+
+* If repeated values, apply micro-adjusting.
+* Or report as a warning if the user requested /STRICT.
+
+ misordered = .FALSE.
+ DO i = 2, npts
+ IF (line(i) .LT. line(i-1) )
+ . misordered = .TRUE.
+ IF (use_strict .AND. (line(i) .LE. line(i-1)) )
+ . misordered = .TRUE.
+
+ IF (misordered) EXIT ! from loop
+ ENDDO
+
+* 0726348357
+
+* out of order axis coordinates.
+* If reversed above, remove that designation to
+* just hand the user the original data
+
+ IF (misordered) THEN
+ CALL TM_NOTE(
+ . 'Coordinates out of order or missing on axis '//
+ . vname(:vlen)//' at subscript '//TM_LEFINT(i, istat),
+ . lunit_errors)
+ CALL TM_NOTE(
+ . 'A dummy axis of subscripts will be used', lunit_errors)
+
+ IF (reversed) THEN
+ DO i = 1, npts/2
+ tmp8 = line(i)
+ line(i) = line(npts+1-i)
+ line(npts+1-i) = tmp8
+ ENDDO
+ ENDIF
+
+ GOTO 1000
+ ENDIF
+
+ misordered = .FALSE.
+ micro_adj = 1E-7 *
+ . (line(npts) - line(1))
+
+* ... are there repeated values?
+
+ CALL TM_CHECK_COORDS (line, npts, is_double, use_strict,
+ . has_repeated, misordered, micro_adj,
+ . epsilon, depsilon)
+
+ IF (misordered) GOTO 2000
+ IF ( has_repeated .AND. .NOT.misordered ) THEN
+ CALL TM_NOTE('Axis has repeated values -- micro-adjusting '//
+ . vname(:vlen), lunit_errors)
+ ENDIF
+
+* Check if axis is actually regularly spaced (though not flagged as "even")
+
+ IF (its_irregular) GOTO 1000 ! If the file says its irreg, treat it at such
+
+* See if double-precision coordinates are regularly-spaced
+ epsilon = 0.
+ depsilon = 0.
+
+ IF (is_double) THEN
+ dfirst_delta = line(2) - line(1)
+ depsilon = depsilon_46 * 2.*(ABS(line(npts)) / first_delta )
+ depsilon = depsilon_46 * 2.*(ABS(line(1)) / first_delta )
+
+ DO i = 2, npts
+ ddelta = line(i) - line(i-1)
+ IF (.NOT. TM_DFPEQ_TOL(dfirst_delta, ddelta, depsilon) ) GOTO 1000
+ ENDDO
+
+* See if single-precision (or integer??) coordinates are regularly-spaced
+ ELSE
+ last_coord = line(npts)
+ firs_coord = line(1)
+ first_delta = line(2) - line(1)
+ epsilon = epsilon_23 * 2.*(ABS(line(npts)) / first_delta )
+ epsilon = epsilon_23 * 2.*(ABS(line(1)) / first_delta )
+
+ DO i = 3, npts
+ delta = line(i) - line(i-1)
+ IF (.NOT. TM_FPEQ_EPS(epsilon, first_delta, delta) ) GOTO 1000
+ ENDDO
+ ENDIF
+ regular = .TRUE.
+ RETURN
+
+ 1000 CONTINUE
+ regular = .FALSE.
+
+ 2000 RETURN
+ END
diff --git a/fmt/src/tm_check_line_bounds.F b/fmt/src/tm_check_line_bounds.F
new file mode 100644
index 0000000..3a86cf6
--- /dev/null
+++ b/fmt/src/tm_check_line_bounds.F
@@ -0,0 +1,69 @@
+ SUBROUTINE TM_CHECK_LINE_BOUNDS ( line, line_bnds, npts, iaxis,
+ . reversed, vname, vlen, is_double, regular, ok)
+
+
+ include 'tmap_dims.parm'
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
+c#include "gt_lib.parm"
+
+* argument declarations
+
+ LOGICAL TM_CHECK_BNDS, TM_CHECK_BNDS_CENTERED,
+ . reversed, is_double, its_irregular, regular, ok
+ REAL line(*), line_bnds(*)
+ INTEGER npts, vlen, iaxis, bad_bndsid
+ CHARACTER*(*) vname
+
+* Local declarations
+ INTEGER i, irev
+ REAL tmp8
+
+* if the coordinates were reversed then the box bounds must be, too
+ IF ( reversed .AND. npts .GT. 1) THEN
+ irev = 2*npts
+ DO 550 i = 1, npts
+ tmp8 = line_bnds(i)
+ line_bnds(i) = line_bnds(irev)
+ line_bnds(irev) = tmp8
+ irev = irev - 1
+ 550 CONTINUE
+ ENDIF
+
+* check to see that each data point is contained inside its box,
+* and if the bounds are contiguous, warning user if not. 7/27/2017
+
+ IF (.NOT. TM_CHECK_BNDS(line, line_bnds, npts, iaxis, is_double, vname) ) THEN
+
+ ok = .FALSE.
+
+ ELSE ! Only check for centered bounds if the bounds are valid
+
+* For axes specified with BOUNDS, check whether coordinates are also
+* centered in the boxes, and whether the size of the boxes are equal.
+* If there is one point, use upper and lower bound as given in the file
+* to determine line_delta.
+
+ IF (TM_CHECK_BNDS_CENTERED(line, line_bnds, npts, iaxis, is_double)) THEN
+* It's actually regular - save it as such
+ IF (.NOT. line_regular(iaxis)) THEN
+ line_regular(iaxis) = .TRUE.
+ line_start (iaxis) = line(1)
+ IF (npts .GT. 1) THEN
+ line_delta (iaxis) =
+ . (line(npts) - line(1))/DBLE(npts-1)
+ ELSE
+ line_delta(iaxis) = line_bnds(2)-line_bnds(1)
+ ENDIF
+ ENDIF
+ ELSE
+ line_regular(iaxis) = .FALSE.
+ ENDIF
+ ok = .TRUE.
+
+ ENDIF ! valid bounds, also checked centered
+
+* If valid, will convert these bounds to edges back in the calling routine
+
+ RETURN
+ END
diff --git a/fmt/src/tm_irregax_mid.F b/fmt/src/tm_check_line_edges.F
similarity index 61%
copy from fmt/src/tm_irregax_mid.F
copy to fmt/src/tm_check_line_edges.F
index 98ac46e..2a0d163 100644
--- a/fmt/src/tm_irregax_mid.F
+++ b/fmt/src/tm_check_line_edges.F
@@ -1,4 +1,5 @@
- SUBROUTINE TM_IRREGAX_MID( ipt1, npts )
+ SUBROUTINE TM_CHECK_LINE_EDGES ( line, line_edges, npts,
+ . iaxis, reversed, vname, vlen, is_double, regular, ok)
*
*
@@ -33,45 +34,49 @@
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
-*
-*
-* Fill in the midpoint values as the default boundaries between grid
-* boxes
-* Programmer Steve Hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
+* Checks for edge coordinate data in a netCDF file
-* revision 0.0 - 2/93 - code lifted from cd_get_1_axis
-* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
-* argument definitions:
-* ipt1 - subscript of first coordinate for axis in line_memory
-* npt - length of axis
+* revision 0.0 - 6/17
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
* argument declarations
- INTEGER ipt1, npts
-* internal variable declarations:
- INTEGER i
+ LOGICAL reversed, is_double, its_irregular, regular, ok
+ REAL line(*), line_edges(*)
+ INTEGER npts, vlen, iaxis, bad_bndsid
+ CHARACTER*(*) vname
+
+* Local declarations
+ LOGICAL TM_CHECK_BOX_LOC, TM_CHECK_BNDS_CENTERED
+ INTEGER i, irev, npp1
+ REAL tmp8
+
+* if the coordinates were reversed then the box edges must be, too
+ IF ( reversed .AND. npts .GT. 1) THEN
+ npp1 = npts+1
+ DO i = 1, npp1/2
+ tmp8 = line_edges(i)
+ line_edges(i) = line_edges(npp1+1-i)
+ line_edges(npp1+1-i) = tmp8
+ ENDDO
+ ENDIF
+
+* Checks to make sure coordinates are enclosed by boxes on the axis
-* include files
- include 'tmap_dims.parm'
-#include "gt_lib.parm"
- include 'xio.cmn_text'
- external xio_data
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+ IF ( .NOT.TM_CHECK_BOX_LOC(line, line_edges, npts) ) THEN
+ ok = .FALSE.
+ ELSE
-* compute midpoints lying between coordinates
- DO 100 i = ipt1, ipt1+npts-2
- 100 line_mem(i+npts+1) = (line_mem(i)+line_mem(i+1)) / 2.0D0
+* check to see that each data point is contained inside its box.
+* See if they're centered after all.
-* lower bound of first box
- line_mem(ipt1+npts) = line_mem(ipt1)
- . - (line_mem(ipt1+1)-line_mem(ipt1))/2.D0
-* upper bound of last box
- line_mem(ipt1+npts+npts) = line_mem(ipt1+npts-1)
- . + (line_mem(ipt1+npts-1)-line_mem(ipt1+npts-2))/2.D0
+ regular = TM_CHECK_BNDS_CENTERED(line, line_edges, npts, iaxis, is_double)
+ ok = .TRUE.
+ ENDIF
- RETURN
+ RETURN
END
diff --git a/fmt/src/tm_close_set_cond_deallo.F b/fmt/src/tm_close_set_cond_deallo.F
index 4426d8d..922f569 100644
--- a/fmt/src/tm_close_set_cond_deallo.F
+++ b/fmt/src/tm_close_set_cond_deallo.F
@@ -101,6 +101,7 @@
include 'tmap_errors.parm' ! error code parameter defs
#include "tmap_dset.parm"
+#include "gt_lib.parm"
include 'tmap_dims.parm'
include 'xstep_files.cmn_text'
external xstep_files_data
@@ -113,7 +114,7 @@
* internal variable declarations
LOGICAL its_cdf
- INTEGER NCF_DELETE_DSET,
+ INTEGER NCF_DELETE_DSET, STR_SAME,
. f_num, ivar, iparm, iaux, idim
* initialize: do we have an open set?
@@ -125,6 +126,12 @@
. .OR. ds_type(ds_num) .EQ. 'CDF'
. .OR. ds_type(ds_num) .EQ. 'ECDF'
+* free the coordinate memory for the time axis of an aggregation
+ IF (ds_type(ds_num) .EQ. 'FCT' .OR. STR_SAME(ds_type(ds_num), ' MC') .EQ. 0) THEN
+ IF (ds_time_axis(ds_num).NE.int4_init .AND. ds_time_axis(ds_num).NE.unspecified_int4)
+ . CALL FREE_LINE_DYNMEM (ds_time_axis(ds_num))
+ ENDIF
+
* First clear variables associated only with data set number
ds_type(ds_num) = char_init04
ds_format(ds_num) = char_init04
diff --git a/fer/utl/gcf_set_normal_axis.F b/fmt/src/tm_convert_bounds_edges.F
similarity index 80%
copy from fer/utl/gcf_set_normal_axis.F
copy to fmt/src/tm_convert_bounds_edges.F
index 3a0ed70..62a8fec 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fmt/src/tm_convert_bounds_edges.F
@@ -1,4 +1,5 @@
- SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+ SUBROUTINE TM_CONVERT_BOUNDS_EDGES (line_bounds, line_edges, npts)
+
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -32,23 +33,26 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-*
-* A grid has been determined to need a normal axis in a particular direction,
-* when setting an alternate function to run depending on direction arguments.
+* Change from 2*npts bounds to npts+1 edges
+
+* Programmer Ansley Manke
+* NOAA/PMEL, Seattle, WA - SDIG
-*
-* V720 3/16 *acm*
+* revision 0.0 - 6/17
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
- include 'ferret.parm'
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+
+* Argument declarations
+ REAL line_bounds(*), line_edges(*)
+ INTEGER npts
-* calling argument declarations
- INTEGER grid, idim
+* Local declarations
+ INTEGER i
- grid_line(idim, grid) = mnormal
-! anything else?
+ DO i = 1, npts
+ line_edges(i) = line_bounds(2*(i-1)+1)
+ ENDDO
+ line_edges(npts+1) = line_bounds(2*npts)
RETURN
END
diff --git a/fmt/src/tm_copy_line.F b/fmt/src/tm_copy_line.F
index 380f403..28e56da 100644
--- a/fmt/src/tm_copy_line.F
+++ b/fmt/src/tm_copy_line.F
@@ -52,11 +52,14 @@
* Parameters and commons
include 'tmap_dims.parm'
+ include 'tmap_errors.parm'
#include "tmap_dset.parm"
#include "gt_lib.parm"
include 'xtm_grid.cmn_text'
external xgt_grid_data
+ INTEGER status
+
*
line_name(dest) = line_name(source)
line_name_orig(dest) = line_name_orig(source)
@@ -74,14 +77,18 @@
line_cal_name(dest) = line_cal_name(source)
line_dim_only(dest) = line_dim_only(source)
- IF ( dest.LE.max_lines .AND. source.LE.max_lines) THEN
+ IF ( dest.LE.max_lines .AND. source.LE.max_lines
+ . .AND. .NOT.line_regular(source) ) THEN
* non-dynamic lines, only
- line_subsc1(dest) = line_subsc1(source)
+ CALL GET_LINE_DYNMEM (line_dim(source), dest, status)
+ IF (status .NE. merr_ok) GOTO 5000
+ CALL COPY_LINE_COORDS (linemem(source)%ptr, linemem(dest)%ptr, line_dim(source))
+ CALL COPY_LINE_COORDS (lineedg(source)%ptr, lineedg(dest)%ptr, line_dim(source)+1)
ELSEIF ( dest.GT.max_lines .AND. source.GT.max_lines) THEN! ELSEIF 1/96
* dynamic lines, only
line_class (dest) = line_class (source)
line_parent(dest) = line_parent(source)
ENDIF
- RETURN
+ 5000 RETURN
END
diff --git a/fmt/src/tm_deallo_dyn_line_sub.F b/fmt/src/tm_deallo_dyn_line_sub.F
index a278576..a1bc999 100644
--- a/fmt/src/tm_deallo_dyn_line_sub.F
+++ b/fmt/src/tm_deallo_dyn_line_sub.F
@@ -90,7 +90,7 @@
next_used_line = line_flink(line)
line_flink(line) = line_free_ptr
line_free_ptr = line
-
+
* ... unhook from used list
line_flink(line_blink(line)) = next_used_line
line_blink(next_used_line) = line_blink(line)
@@ -101,7 +101,8 @@
ENDIF
* Recover the coordinate storage used for an irregularly-spaced line.
- IF ( .NOT. line_regular(line) ) CALL PACK_LINE_STORAGE (line)
+ IF ( .NOT. line_regular(line) ) CALL FREE_LINE_DYNMEM (line)
+ line_regular(line) = .TRUE.
* return flag to indicate if the quasi-recursive descent ends here
* ... zero or index of parent axis to deallocate
diff --git a/fmt/src/tm_garb_col_lines.F b/fmt/src/tm_garb_col_lines.F
deleted file mode 100644
index 91d065d..0000000
--- a/fmt/src/tm_garb_col_lines.F
+++ /dev/null
@@ -1,142 +0,0 @@
- SUBROUTINE TM_GARB_COL_LINES ( first, last )
-
-*
-*
-* This software was developed by the Thermal Modeling and Analysis
-* Project(TMAP) of the National Oceanographic and Atmospheric
-* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
-* hereafter referred to as NOAA/PMEL/TMAP.
-*
-* Access and use of this software shall impose the following
-* obligations and understandings on the user. The user is granted the
-* right, without any fee or cost, to use, copy, modify, alter, enhance
-* and distribute this software, and any derivative works thereof, and
-* its supporting documentation for any purpose whatsoever, provided
-* that this entire notice appears in all copies of the software,
-* derivative works and supporting documentation. Further, the user
-* agrees to credit NOAA/PMEL/TMAP in any publications that result from
-* the use of this software or in any product that includes this
-* software. The names TMAP, NOAA and/or PMEL, however, may not be used
-* in any advertising or publicity to endorse or promote any products
-* or commercial entity unless specific written permission is obtained
-* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
-* is not obligated to provide the user with any support, consulting,
-* training or assistance of any kind with regard to the use, operation
-* and performance of this software nor to provide the user with any
-* updates, revisions, new versions or "bug fixes".
-*
-* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
-* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
-* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
-* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
-*
-*
-* garbage collect wasted space in newly defined lines (axes)
-
-* Programmer Steve Hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-
-* revision 0.0 - 2/92
-*
-* IBM PORT 14apr94 *kob* : Port to IBM revealed a transfer controll problem at
-* around label 200. A "goto" statment was passing
-* control to a continue statment.
-* V500: 7/99 *sh* - bug fix: need consistent use of char_init16 on line_name
-* bug fix: invalid branch at 4/94 fix -- was hidden all
-* this time because line_name check was invalid
-* so code was never executed
-* V674 2/12 *acm* 6D Ferret: use nferdims rather than 4 for dimension indexing
-
-* argument definitions:
-* first - highest number line to check
-* last - lowest number line to check
-* note: lines are allocated from high to low
-
-* include files
-
- include 'tmap_errors.parm'
- include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
- include 'xtm_grid.cmn_text'
-
-* argument declarations
- INTEGER first, last
-
-* local variable declarations:
- INTEGER iaxis, hiaxis, igrid, i, idim, next_mem, freed_mem
-
-* there is no way that grids can be using unnamed axes
-* delete 'em incrementing the grid axis pointers and compacting line memory
-
-* initialize axis loop
-! like: DO 400 iaxis = first, last but hiaxis keeps shifting down
- iaxis = first
- hiaxis = last
- IF (first .GT. last) RETURN
-
-* is this a hole ?
- 10 IF ( line_name(iaxis) .NE. char_init16 ) GOTO 400
-
-* modify axis pointer saved in the grids
- DO 110 igrid = 1, max_grids
- IF ( grid_name(igrid) .EQ. char_init ) GOTO 110
- DO 100 idim = 1, nferdims
- IF ( grid_line(idim, igrid) .EQ. iaxis )
- . write (6,*) 'grid defns are garbled!: TM_GRID_GARBAGE' ! diag
- IF ( grid_line(idim, igrid) .GT. iaxis
- . .AND. grid_line(idim, igrid) .LE. hiaxis )
- . grid_line(idim,igrid) = grid_line(idim,igrid) - 1
- 100 CONTINUE
- 110 CONTINUE
-
-* is there line memory to free ?
-* this next goto was 200, but the IBM compiler wouldn't accept a
-* transfer of control to a continue statment. *kob* 14apr94
-* 7/99 *sh* for regular lines skip over line_subsc and line_mem code
- IF ( line_regular(iaxis) ) GOTO 295 ! was 205 pre 7/00 (bug)
-
-* look ahead to the next line with uneven point spacing
- DO 200 i = iaxis+1, hiaxis
- IF ( .NOT.line_regular(i) ) THEN
- next_mem = line_subsc1(i)
- GOTO 210
- ENDIF
- 200 CONTINUE
- 205 next_mem = next_line_mem_pos
- 210 freed_mem = next_mem - line_subsc1(iaxis)
-
-* shift this much line memory to fill the hole
- DO 250 i = next_mem, next_line_mem_pos
- 250 line_mem(i-freed_mem) = line_mem(i)
-
-* update line memory pointers
- DO 280 i = iaxis+1, hiaxis
- IF ( .NOT.line_regular(i) ) THEN
- line_subsc1(i) = line_subsc1(i) - freed_mem
- ENDIF
- 280 CONTINUE
- next_line_mem_pos = next_line_mem_pos - freed_mem
-
-* shift all the definitions back to fill the hole
- 295 DO 300 i = iaxis+1, hiaxis
- 300 CALL TM_COPY_LINE( i, i-1 )
-
-* initialize new hole at end
- line_name(hiaxis) = char_init16
- line_subsc1(hiaxis) = unspecified_int4
- hiaxis = hiaxis - 1
- iaxis = iaxis - 1 ! nullify decrement below
-
-! like: 400 CONTINUE
- 400 iaxis = iaxis + 1
- IF ( iaxis .LE. hiaxis ) GOTO 10
-
-* successful completion
- RETURN
-
- END
diff --git a/fmt/src/tm_irregax_mid.F b/fmt/src/tm_irregax_mid.F
index 98ac46e..c5de2cc 100644
--- a/fmt/src/tm_irregax_mid.F
+++ b/fmt/src/tm_irregax_mid.F
@@ -1,4 +1,4 @@
- SUBROUTINE TM_IRREGAX_MID( ipt1, npts )
+ SUBROUTINE TM_IRREGAX_MID( line, line_edges, npts )
*
*
@@ -44,12 +44,17 @@
* revision 0.0 - 2/93 - code lifted from cd_get_1_axis
* V6.74 3/12 *acm* cleanup ifdefs and unnecessary include files
+* V72 6/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
+* The argument is the coordinates for just this line
+
* argument definitions:
-* ipt1 - subscript of first coordinate for axis in line_memory
-* npt - length of axis
+* line - coordinates of the line in dynamic memory
+* line_edges - coordinates of the bounds in dynamic memory
+* npt - length of axis
* argument declarations
- INTEGER ipt1, npts
+ REAL line(*), line_edges(*)
+ INTEGER npts
* internal variable declarations:
INTEGER i
@@ -62,16 +67,25 @@
include 'xtm_grid.cmn_text'
external xgt_grid_data
+* nominal treatment for one-point axis.
+
+ IF (npts .EQ. 1) THEN
+ i = 1
+ line_edges(i) = line(i) - 1.
+ line_edges(i+1) = line(i) + 1.
+ RETURN
+ ENDIF
+
* compute midpoints lying between coordinates
- DO 100 i = ipt1, ipt1+npts-2
- 100 line_mem(i+npts+1) = (line_mem(i)+line_mem(i+1)) / 2.0D0
+ DO i = 1, npts-1
+ line_edges(i+1) = (line(i)+line(i+1)) / 2.0D0
+ ENDDO
* lower bound of first box
- line_mem(ipt1+npts) = line_mem(ipt1)
- . - (line_mem(ipt1+1)-line_mem(ipt1))/2.D0
+ line_edges(1) = line(1) - (line(2)-line(1))/2.D0
+
* upper bound of last box
- line_mem(ipt1+npts+npts) = line_mem(ipt1+npts-1)
- . + (line_mem(ipt1+npts-1)-line_mem(ipt1+npts-2))/2.D0
+ line_edges(npts+1) = line(npts) + (line(npts)-line(npts-1))/2.D0
RETURN
END
diff --git a/fmt/src/tm_line_match.F b/fmt/src/tm_line_match.F
index 7d67399..f088544 100644
--- a/fmt/src/tm_line_match.F
+++ b/fmt/src/tm_line_match.F
@@ -65,6 +65,7 @@
* Local definitions
INTEGER*4 j, lc1, lc2
LOGICAL TM_FPEQ
+ REAL GET_LINE_COORD, v1, v2
* Same regularity/irregularity?
IF (line_regular(line1) .NEQV. line_regular(line2)) GOTO 110
@@ -111,16 +112,21 @@
ELSE
lc1 = line_subsc1(line1)
lc2 = line_subsc1(line2)
- DO 100 j = 0,2*line_dim(line1)
-! added ".NOT." 5/93 *sh*
-#ifdef double_p
- IF (.NOT.TM_FPEQ( (line_mem(lc1+j)),
- . (line_mem(lc2+j)) )) GOTO 110
-#else
- IF (.NOT.TM_FPEQ( SNGL(line_mem(lc1+j)),
- . SNGL(line_mem(lc2+j)) )) GOTO 110
-#endif
+ DO 100 j = 1,line_dim(line1)
+ v1 = GET_LINE_COORD (linemem(line1)%ptr, j)
+ v2 = GET_LINE_COORD (linemem(line2)%ptr, j)
+ IF (.NOT.TM_FPEQ(v1, v2)) GOTO 110
+
+ v1 = GET_LINE_COORD (lineedg(line1)%ptr, j)
+ v2 = GET_LINE_COORD (lineedg(line2)%ptr, j)
+ IF (.NOT.TM_FPEQ(v1, v2)) GOTO 110
100 CONTINUE
+
+* Upper box edges
+ v1 = GET_LINE_COORD (lineedg(line1)%ptr, line_dim(line1)+1)
+ v2 = GET_LINE_COORD (lineedg(line2)%ptr, line_dim(line1)+1)
+ IF (.NOT.TM_FPEQ(v1, v2)) GOTO 110
+
ENDIF
* Yes, lines match
diff --git a/fer/utl/gcf_set_normal_axis.F b/fmt/src/tm_lonw2e_line.F
similarity index 74%
copy from fer/utl/gcf_set_normal_axis.F
copy to fmt/src/tm_lonw2e_line.F
index 3a0ed70..4dec967 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/fmt/src/tm_lonw2e_line.F
@@ -1,5 +1,7 @@
- SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
+ SUBROUTINE TM_LONW2E_LINE ( line, npts )
+*
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -33,22 +35,28 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* A grid has been determined to need a normal axis in a particular direction,
-* when setting an alternate function to run depending on direction arguments.
+* convert a coordinate line which is west positive, discontinuous
+* at the dateline (as in EPIC netCDF) to one which has east positive and is
+* discontinuous at Greenwhich
+
+* Programmer Steve Hankin
+* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-*
-* V720 3/16 *acm*
+* revision 0.0 - 3/93
+* V72 6/17 *acm* for trac enhancement #767 -- dynamic coordinate storage
+* Convert an entire line
- include 'ferret.parm'
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+* argument declarations
+ REAL*8 line(*)
+ INTEGER npts
-* calling argument declarations
- INTEGER grid, idim
+* local declarations
+ REAL*8 TM_LONW2LONE
+ INTEGER i
- grid_line(idim, grid) = mnormal
-! anything else?
+ DO i = 1, npts
+ line(i) = TM_LONW2LONE( line(i) )
+ ENDDO
- RETURN
- END
+ RETURN
+ END
diff --git a/fmt/src/tm_read_gridfile.F b/fmt/src/tm_read_gridfile.F
index 8454a1a..8b51aa4 100644
--- a/fmt/src/tm_read_gridfile.F
+++ b/fmt/src/tm_read_gridfile.F
@@ -92,565 +92,13 @@
INTEGER*4 status
include 'tmap_errors.parm'
- include 'tmap_dims.parm'
-#include "tmap_dset.parm"
-#include "gt_lib.parm"
- include 'xdset_info.cmn_text'
- external xdset_info_data
- include 'xio.cmn_text'
- external xio_data
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
- include 'xunits.cmn_text'
- external xunits_data
- include 'xsys_names.cmn_text'
- external xsys_names_data
+c GET RID OF THIS ROUTINE? Otherwise work out dynamic line allocation.
-* local definitions
-* *kob* explicit definitions not allowed on decl line in linux...
-* moved it to parameter line 10/96
- CHARACTER*6 grid_define, line_define, coords_define,
- . time_define, comment_char
- CHARACTER def_ext*4
- CHARACTER*13 TM_STRING
- CHARACTER*25 buff(11), newline
- CHARACTER*80 def_error
- CHARACTER*128 TM_INQ_PATH, gfile_path
- CHARACTER*132 TM_CMPRSS, input_buf, cmprss_buf
- INTEGER*4 lunit, i, j, ipt1, ipte, npts,
- . cline, tline, temp
- PARAMETER (temp = 0) !kob 10/96
- INTEGER*4 p_gname, p_gline(4), p_grot, p_lname, p_llen,
- . p_ldirect, ngrid, nline, istat, p_goutp(4),
- . p_lunits, p_lstart, p_ldelta, p_cform, p_lstore,
- . p_modulo, p_lbox0, p_t0, inner, outer, newgrid,
- . g_used, l_used, orig_line_mem_pos, dim
- LOGICAL reg_coords, irreg_coords
- REAL*8 rdummy
- INTEGER*4 TM_UNIT_ID, STR_CASE_BLIND_COMPARE,
- . TM_FIND_GRID_SLOT, TM_FIND_LINE_SLOT
- LOGICAL opened
- LOGICAL TM_HAS_STRING, TM_GRID_MATCH, TM_LINE_MATCH,
- . TM_CHECK_BOX_LOC
-
- DATA p_gline/4, 6, 8, 10/
- DATA p_goutp/5, 7, 9, 11/
- DATA def_ext/'.grd'/
-
- PARAMETER (grid_define = 'GRID ',
- . line_define = 'LINE ',
- . coords_define = 'COORDS',
- . time_define = 'TIME ',
- . comment_char = '* ')
-
- PARAMETER (p_gname = 2,
- . p_grot = 3,
- . p_lname = 2,
- . p_llen = 3,
- . p_ldirect = 4,
- . p_lunits = 5,
- . p_lstore = 6,
- . p_lstart = 7,
- . p_ldelta = 8,
- . p_modulo = 9,
- . p_cform = 3,
- . p_lbox0 = 4,
- . p_t0 = 3)
-
-* Store original start of free line memory
- orig_line_mem_pos = next_line_mem_pos
-
-* Find full file specification
- opened = .FALSE. ! 1/93
- gfile_path = TM_INQ_PATH( gfile_name, tmap_grids, def_ext,
- . .TRUE., status )
- IF ( status .NE. merr_ok ) GOTO 9999
-
-* Check to see if this gridfile has already been read
- DO 100 i = 1, maxgridfiles
- istat = STR_CASE_BLIND_COMPARE(grid_filename(i),gfile_path)
- IF (istat .EQ. str_match) THEN
- status = merr_no_action
- RETURN
- ENDIF
- 100 CONTINUE
-
-* Find locations to store info from this gridfile
- DO 110 i = maxgridfiles,1,-1
- IF (grid_filename(i) .NE. char_init128) THEN
- IF (i .EQ. maxgridfiles) GOTO 9050 !Too many grid files to store
- newgrid = i + 1
- GOTO 120
- ENDIF
- 110 CONTINUE
- newgrid = 1
- 120 grid_filename(newgrid) = gfile_path
-
-* How many grid spaces used
- status = TM_FIND_GRID_SLOT ( ngrid )
- IF (status .NE. merr_ok) GOTO 9200
- ngrid = ngrid - 1
- g_used = ngrid
-
-* How many line spaces used
- status = TM_FIND_LINE_SLOT ( nline )
- IF (status .NE. merr_ok) GOTO 9500
- nline = nline - 1
- l_used = nline
-
-* get a free logical unit #
- CALL LIB_GET_LUN (lunit)
-
-* open grid filename
- OPEN (UNIT = lunit,
- . FILE = grid_filename(newgrid),
-#ifdef READONLY_ALLOWED
- . READONLY,
-#endif
- . STATUS = 'OLD',
- . ERR = 9010)
- opened = .TRUE.
-
-* read in record from grid file
- 170 READ (lunit, '(A)',END=330,ERR=9010) input_buf
-* remove extraneous spaces and tabs
- cmprss_buf = TM_CMPRSS(input_buf)
-* blank buff string
- DO 180 i =1,11
- buff(i) = ' '
- 180 CONTINUE
-
-********************************************************************************
-* GRID DEFINITION *
-********************************************************************************
-* Check if grid definition, and if so seperate necessary elements
- IF (cmprss_buf(1:4) .EQ. grid_define) THEN
- CALL TM_BREAK_STR(cmprss_buf, buff, 11)
-
-* store info in common - temporary location 0
- READ (buff(p_grot), *, ERR=9600) grid_rotation(temp)
-
-* check to see if line defined - if so: place in common - if not: error
- DO 210 i = 1,4
- newline = buff(p_gline(i))
- IF (STR_CASE_BLIND_COMPARE(newline(:7),'UNKNOWN') .EQ.
- . str_match) THEN
- grid_line(i,temp) = mpsunkn
- GOTO 200
- ENDIF
- IF (STR_CASE_BLIND_COMPARE(newline(:6),'NORMAL') .EQ.
- . str_match) THEN
- grid_line(i,temp) = mpsnorm
- GOTO 200
- ENDIF
-* ... check among static axes to see if it already exists
- DO 190 j = 1, nline
- istat = STR_CASE_BLIND_COMPARE ( line_name(j), newline )
- IF (istat .EQ. str_match) THEN
- grid_line(i,temp) = j
- GOTO 200
- ENDIF
- 190 CONTINUE
-* Check among dynamic lines to see if it already exists
- j = 0 ! to get start of linked list
- 195 CALL TM_NEXT_DYN_LINE( j, *9300) ! 9300 if doesn't exist
- istat = STR_CASE_BLIND_COMPARE( line_name(j), newline )
- IF (istat .EQ. str_match) THEN
- grid_line(i,temp) = j
- GOTO 200
- ENDIF
- GOTO 195
-
-* Inner or outer product?
- 200 outer = STR_CASE_BLIND_COMPARE('OUTER',buff(p_goutp(i)))
- inner = STR_CASE_BLIND_COMPARE('INNER',buff(p_goutp(i)))
- IF (inner .EQ. str_match) THEN
- grid_out_prod(i,temp) = .FALSE.
- ELSE IF (outer .EQ. str_match) THEN
- grid_out_prod(i,temp) = .TRUE.
- ELSE
- GOTO 9610
- ENDIF
- 210 CONTINUE
-
-* Check among static grids for unique grid name
- DO 220 i = 1, ngrid
- istat = STR_CASE_BLIND_COMPARE(grid_name(i),buff(p_gname))
- IF (istat .EQ. str_match) THEN
- IF (TM_GRID_MATCH(i,temp)) THEN
- GOTO 170 ! Already defined - no need to re-store
- ELSE
- GOTO 9100 ! Whoops - same name - different def.
- ENDIF
- ENDIF
- 220 CONTINUE
-
-* Check among dynamic grids for unique grid name
- i = 0 ! to get start of linked list
- 230 CALL TM_NEXT_DYN_GRID( i, *235)
- istat = STR_CASE_BLIND_COMPARE(grid_name(i),buff(p_gname))
- IF (istat .EQ. str_match) THEN
- IF (TM_GRID_MATCH(i,temp)) THEN
- GOTO 170 ! Already defined - no need to re-store
- ELSE
- GOTO 9100 ! Whoops - same name - different def.
- ENDIF
- ENDIF
- GOTO 230
-
-* Name is unique .. Next location to store info; if too many grids - give error
- 235 status = TM_FIND_GRID_SLOT ( ngrid )
- IF (status .NE. merr_ok) GOTO 9200
-
-* Seems ok - transfer to permanent spot
- CALL TM_COPY_GRID_W_LINE_USE ( temp, ngrid )
-* Store grid name as flag of completed grid definition
- grid_name(ngrid) = buff(p_gname)
-
-********************************************************************************
-* LINE DEFINITION *
-********************************************************************************
-* Check if line definition, and if so seperate necessary elements
- ELSE IF (cmprss_buf(1:4) .EQ. line_define) THEN
- CALL TM_BREAK_STR(cmprss_buf, buff, 9)
-
-* store info in common - temporary location 0
- READ (buff(p_llen), *, ERR=9700) line_dim(temp)
- line_direction(temp) = buff(p_ldirect)
- line_units(temp) = buff(p_lunits)
- line_unit_code(temp) = TM_UNIT_ID(buff(p_lunits))
- line_subsc1(temp) = unspecified_int4 !coordinates given later?
- reg_coords = TM_HAS_STRING( buff(p_lstore), 'START')
- irreg_coords = TM_HAS_STRING( buff(p_lstore), 'GIVEN')
- line_modulo(temp) = TM_HAS_STRING( buff(p_modulo), 'MODULO')
- line_modulo_len(temp) = 0.0D0
- line_t0(temp) = char_init20
- line_shift_origin(temp) = .FALSE.
- line_tunit(temp) = real4_init
- IF (reg_coords) THEN
- IF (line_direction(temp) .EQ. 'WE') dim = x_dim
- IF (line_direction(temp) .EQ. 'SN') dim = y_dim
- IF (line_direction(temp) .EQ. 'UD') dim = z_dim
- IF (line_direction(temp) .EQ. 'TI') dim = t_dim
- CALL TM_TRANSLATE_AXIS(buff(p_lstart),dim,line_start(temp),
- . status)
- IF (status .NE. merr_ok) GOTO 9950 !error reported already
- READ (buff(p_ldelta), *, ERR=9720) line_delta(temp)
- IF (line_delta(temp) .LE. 0.0D0) GOTO 9730
- line_regular(temp) = .TRUE.
- ELSE
- line_delta(temp) = unspecified_val8
- line_regular(temp) = .FALSE.
- ENDIF
-
-* Check for unknown units or orientation
- IF (line_unit_code(temp) .EQ. 0) THEN
- istat = STR_CASE_BLIND_COMPARE(line_units(temp),'none')
- IF (istat .EQ. str_match) THEN
- line_units(temp) = ' '
- ELSE
- input_buf = ' '
- WRITE (input_buf, *) 'cannot convert axis units: ',
- . line_units(temp)
- CALL TM_NOTE( input_buf, lunit_errors)
- ENDIF
- ENDIF
- DO 240 i = 1, max_axis_orients
- IF (line_direction (temp) .EQ. axis_orients( i ) ) GOTO 250
- 240 CONTINUE
- input_buf = ' '
- WRITE (input_buf, *) 'UNKNOWN LINE ORIENTATION : ',
- . line_direction(temp),' on ',buff(p_lname)
- CALL TM_NOTE( input_buf, lunit_errors)
-
-* If line is irregular - store it now and check it later
- 250 IF (reg_coords) THEN
-* Check among static lines for unique line name
- DO 260 i = 1, nline
- istat = STR_CASE_BLIND_COMPARE(line_name(i),buff(p_lname))
- IF (istat .EQ. str_match) THEN
-* Check for unique definition
- IF (TM_LINE_MATCH(i,temp)) THEN
- GOTO 170 ! Already defined - no need to re-store
- ELSE
- GOTO 9400 ! Whoops - same name - different def.
- ENDIF
- ENDIF
- 260 CONTINUE
-* Check among dynamic lines for unique line name
- i = 0 ! to get start of linked list
- 265 CALL TM_NEXT_DYN_LINE( i, *266)
- istat = STR_CASE_BLIND_COMPARE(line_name(i),buff(p_lname))
- IF (istat .EQ. str_match) THEN
-* Check for unique definition
- IF (TM_LINE_MATCH(i,temp)) THEN
- GOTO 170 ! Already defined - no need to re-store
- ELSE
- GOTO 9400 ! Whoops - same name - different def.
- ENDIF
- ENDIF
- GOTO 265
- ENDIF
-
-* Name is unique .. Next location to store info; if too many lines - give error
- 266 status = TM_FIND_LINE_SLOT ( nline )
- IF (status .NE. merr_ok) GOTO 9500
-
-* Seems ok - transfer to permanent spot
- CALL TM_COPY_LINE ( temp, nline )
-* Store line name as a flag of completed line definition
- line_name(nline) = buff(p_lname)
-
-********************************************************************************
-* COORD DEFINITION *
-********************************************************************************
-* Check if coord definition, and if so seperate necessary elements
- ELSE IF (cmprss_buf(1:6) .EQ. coords_define) THEN
- CALL TM_BREAK_STR(cmprss_buf, buff, 4)
-
-* Locate the line this defines - already defined must be dupl. name or error
- DO 270 i = l_used+1, nline
- IF (line_delta(i) .EQ. unspecified_val8) THEN
- istat = STR_CASE_BLIND_COMPARE(line_name(i),buff(p_lname))
- IF (istat .EQ. str_match) THEN
-* Make sure it hasn't been already defined
- IF (line_subsc1(i) .EQ. unspecified_int4) THEN
- cline = i
- GOTO 280
- ENDIF
- ENDIF
- ENDIF
- 270 CONTINUE
- GOTO 9310 !No match found - error
-
-* Allocate some storage for the coordinates
- 280 line_subsc1(cline) = next_line_mem_pos
- IF ((line_subsc1(cline)+2*line_dim(cline)) .GT.
- . maxlinestore) GOTO 9800
-* Store initial box lower bound (start of axis)
- ipt1 = line_subsc1(cline)
- npts = line_dim(cline)
- ipte = ipt1 + npts-1
- READ (buff(p_lbox0), *, ERR=9740) line_mem(ipte+1)
-
-* Read line coords and box sizes from file
- READ (lunit, buff(p_cform),ERR=9750)
- . (line_mem(i),line_mem(i+npts+1),i=ipt1,ipte)
-
-* Check for invalid ordering of data or box sizes
- DO 290 i=ipt1+1,ipte
- IF (line_mem(i) .LE. line_mem(i-1)) GOTO 9760
- 290 CONTINUE
- DO 300 i=ipt1,ipte
- IF (line_mem(i+npts+1) .LT. 0.0D0 ) GOTO 9770
- 300 CONTINUE
-
-* Change box sizes to box locations
- DO 310 i=ipt1,ipte
- line_mem(i+npts+1) = line_mem(i+npts) + line_mem(i+npts+1)
- 310 CONTINUE
-
-* Check to see that each data point is contained inside it's box
- IF (.NOT. TM_CHECK_BOX_LOC(cline)) GOTO 9780
-
-* Check for unique name
- DO 320 i = 1, nline
- IF (i .EQ. cline) GOTO 320
- istat = STR_CASE_BLIND_COMPARE(line_name(i),line_name(cline))
- IF (istat .EQ. str_match) THEN
-* Check for unique definition
- IF (TM_LINE_MATCH(i,cline)) THEN
- line_name(cline) = ' ' ! Already defined - no need to re-store
- GOTO 170
- ELSE
- GOTO 9400 ! Whoops - same name - different def.
- ENDIF
- ENDIF
- 320 CONTINUE
-
-* Store next line mem position - good line definition
- next_line_mem_pos = next_line_mem_pos + 2*line_dim(cline) + 1
-
-********************************************************************************
-* TIME LINE DEFINITION *
-********************************************************************************
-* Check if time line definition, and if so seperate necessary elements
- ELSE IF (cmprss_buf(1:4) .EQ. time_define) THEN
- CALL TM_BREAK_STR(cmprss_buf, buff, 4)
-
-* Locate the line this defines - already defined must be dupl. name or error
- DO 370 i = l_used+1, nline
- IF (line_direction(i) .EQ. 'TI') THEN
- istat = STR_CASE_BLIND_COMPARE(line_name(i),buff(p_lname))
- IF (istat .EQ. str_match) THEN
-* Make sure it hasn't been already defined
- IF (line_t0(i) .EQ. char_init20) THEN
- tline = i
- GOTO 380
- ENDIF
- ENDIF
- ENDIF
- 370 CONTINUE
- GOTO 9320 !No match found - error
-
-* Found available slot - let's store values
- 380 CALL TM_TRANSLATE_AXIS(buff(p_t0),t_dim,rdummy,status)
- IF (status .NE. merr_ok) GOTO 9910
- line_t0(tline) = buff(p_t0)
- line_shift_origin(tline) = .FALSE.
- line_tunit(tline) = un_convert(line_unit_code(tline))
-
-********************************************************************************
-* COMMENT LINE *
-********************************************************************************
- ELSE IF (cmprss_buf(1:1) .EQ. ' ' ) THEN ! allow blank lines 6/92
- GOTO 170
- ELSE IF (cmprss_buf(1:1) .NE. comment_char) THEN
- input_buf = ' '
- WRITE (input_buf,*) 'Unrecognized line in gridfile',
- . grid_filename(newgrid)
- CALL TM_NOTE( input_buf, lunit_errors)
- CALL TM_NOTE( cmprss_buf(1:79), lunit_errors)
- ENDIF
- GOTO 170
-
-********************************************************************************
-* FINAL CLEAN-UP *
-********************************************************************************
- 330 DO 340 i = 1, nline
- IF ( line_name(i) .NE. char_init16 ) THEN
-* Are there lines left without coordinates?
- IF (line_subsc1(i) .EQ. unspecified_int4 .AND.
- . line_delta(i) .EQ. unspecified_val8 ) GOTO 9900
-* Are there time axis left without time info?
-! disabled T0 check 9/95
-! IF (line_direction(i) .EQ. 'TI' .AND.
-! . line_t0(i) .EQ. char_init20 ) GOTO 9920
- ENDIF
- 340 CONTINUE
- GOTO 9990
-
-* error messages
-! 9000 CALL TM_ERRMSG (merr_erreq, status, 'TM_READ_GRIDFILE',
-! . no_descfile, no_stepfile,
-! . 'FILE='//grid_filename(newgrid),
-! . no_errstring, *9999)
-
- 9010 CALL TM_ERRMSG (merr_erreq, status, 'TM_READ_GRIDFILE',
+ CALL TM_ERRMSG (merr_notsupport, status, 'TM_READ_GRIDFILE',
. no_descfile, no_stepfile,
- . 'FILE='//grid_filename(newgrid),
- . no_errstring, *9950)
-
+ . 'Gridfiles no longer supported', no_errstring, *5000)
- 9050 CALL TM_ERRMSG ( merr_grfillim, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(maxgridfiles)),
- . no_errstring, *9999)
-
- 9100 CALL TM_ERRMSG (merr_gridpredef, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . 'GRIDNAME='//buff(p_gname), no_errstring,
- . *9950)
-
- 9200 CALL TM_ERRMSG (merr_gridlim, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(max_grids)), no_errstring,
- . *9950)
-
- 9300 def_error = 'LINENAME='//newline//' GRIDNAME='//buff(p_gname)
- GOTO 9399
- 9310 def_error = 'LINENAME='//buff(p_lname)//' in COORD definition'
- GOTO 9399
- 9320 def_error = 'LINENAME='//buff(p_lname)//' in TIME definition'
- 9399 CALL TM_ERRMSG (merr_lineundef, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . def_error, no_errstring, *9950)
-
- 9400 CALL TM_ERRMSG (merr_linepredef, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . 'LINENAME='//buff(p_lname), no_errstring,
- . *9950)
-
- 9500 CALL TM_ERRMSG (merr_linelim, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(max_lines)), no_errstring,
- . *9950)
-
- 9600 def_error = 'Read error in grid rotation field. '//
- . 'GRIDNAME='//buff(p_gname)
- GOTO 9699
- 9610 def_error = 'Inner/outer product flag must be INNER or OUTER'//
- . 'GRIDNAME='//buff(p_gname)
- 9699 CALL TM_ERRMSG (merr_badgriddef, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . def_error, no_errstring, *9950)
-
- 9700 def_error = 'Read error in gridline length field. '//
- . 'LINENAME='//buff(p_lname)
- GOTO 9799
-! 9710 def_error = 'Read error in gridline start field. '//
-! . 'LINENAME='//buff(p_lname)
-! GOTO 9799
- 9720 def_error = 'Read error in gridline delta field. '//
- . 'LINENAME='//buff(p_lname)
- GOTO 9799
- 9730 def_error = 'Gridline delta is negative or zero. '//
- . 'LINENAME='//buff(p_lname)
- GOTO 9799
- 9740 def_error = 'Read error in initial box lower bound field. '//
- . 'LINENAME='//buff(p_lname)
- GOTO 9799
- 9750 def_error = 'Read error in line coord. or box size field. '//
- . 'LINENAME='//buff(p_lname)
- GOTO 9799
- 9760 def_error = 'Coord at (i) less than coord at (i-1). '//
- . 'LINENAME='//buff(p_lname)
- GOTO 9799
- 9770 def_error = 'Box size specified less than zero. '//
- . 'LINENAME='//buff(p_lname)
- GOTO 9799
- 9780 def_error = 'A coordinate given is not enclosed by box. '//
- . 'LINENAME='//buff(p_lname)
- 9799 CALL TM_ERRMSG (merr_badlinedef, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . def_error, no_errstring, *9950)
-
- 9800 CALL TM_ERRMSG (merr_linstorlim, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . 'MAX='//TM_STRING(DBLE(maxlinestore)),
- . no_errstring, *9950)
-
- 9900 CALL TM_ERRMSG (merr_nocoordlin, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . 'LINENAME='//line_name(i), no_errstring,
- . *9950)
-
- 9910 def_error = 'Read error for line_t0 - '//buff(p_t0)
-! GOTO 9949
-! 9920 def_error = 'No t0 info for line '//line_name(i) ! disabled 9/95
- 9949 CALL TM_ERRMSG (merr_badtimedef, status, 'TM_READ_GRIDFILE',
- . no_descfile, no_stepfile,
- . def_error, no_errstring, *9950)
-
-* Reset memory locations if error occurs
- 9950 grid_filename(newgrid) = char_init
- IF (ngrid .GT. g_used) THEN
- DO 350 i = g_used+1, ngrid
- grid_name(i) = char_init
- 350 CONTINUE
- ENDIF
- IF (nline .GT. l_used) THEN
- DO 360 i = l_used+1, nline
- line_name(i) = char_init16
- line_subsc1(i) = unspecified_int4
- 360 CONTINUE
- ENDIF
- next_line_mem_pos = orig_line_mem_pos
- GOTO 9999
-
- 9990 status = merr_ok
-
- 9999 IF ( opened ) CLOSE (UNIT = lunit)
- RETURN
+ 5000 RETURN
END
+
diff --git a/fmt/src/tm_rm_tmp_line.F b/fmt/src/tm_rm_tmp_line.F
index 0a0f805..824e347 100644
--- a/fmt/src/tm_rm_tmp_line.F
+++ b/fmt/src/tm_rm_tmp_line.F
@@ -65,11 +65,15 @@
next_used_line = line_flink(line)
line_flink(line) = line_free_ptr
line_free_ptr = line
-
+
* ... unhook from tmp list
line_flink(line_blink(line)) = next_used_line
line_blink(next_used_line) = line_blink(line)
+* Recover the coordinate storage used for an irregularly-spaced line.
+ IF ( .NOT. line_regular(line) ) CALL FREE_LINE_DYNMEM (line)
+ line_regular(line) = .TRUE.
+
* successful completion
RETURN
diff --git a/fmt/src/tm_warn_subspan.F b/fmt/src/tm_set_clim_axes.F
similarity index 53%
copy from fmt/src/tm_warn_subspan.F
copy to fmt/src/tm_set_clim_axes.F
index f57e9c4..ec7065b 100644
--- a/fmt/src/tm_warn_subspan.F
+++ b/fmt/src/tm_set_clim_axes.F
@@ -1,10 +1,11 @@
- SUBROUTINE TM_WARN_SUBSPAN (iaxis)
+ SUBROUTINE TM_SET_CLIM_AXES
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
* hereafter referred to as NOAA/PMEL/TMAP.
-*.
+*
* Access and use of this software shall impose the following
* obligations and understandings on the user. The user is granted the
* right, without any fee or cost, to use, copy, modify, alter, enhance
@@ -32,52 +33,69 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* 5/2016 Ansley Manke
-* See ticket 1432.
-* Write a NOTE if an axis definition is a subspan modulo axis
-* but its length is within a grid cell of the full modulo length.
+*
+* Allocate dynamic line storage and put coordinate data into lines for climatogical axes
+
include 'tmap_dims.parm'
-#include "tmap_dset.parm"
#include "gt_lib.parm"
- include 'xio.cmn_text'
- external xio_data
include 'xtm_grid.cmn_text'
external xgt_grid_data
-* argument declarations
- INTEGER iaxis
+
+ INTEGER i, npts, status
+
+ npts = 12
+
+* MONTH_IRREG
+
+ CALL GET_LINE_DYNMEM (npts, clmirr, status)
+
+ DO i = 1, npts
+ CALL PUT_LINE_COORD ( linemem(clmirr)%ptr, i, clim_line_coords(i,clmirr) )
+ CALL PUT_LINE_COORD ( lineedg(clmirr)%ptr, i, clim_line_edges(i,clmirr) )
+ ENDDO
+ CALL PUT_LINE_COORD ( lineedg(clmirr)%ptr, npts+1, clim_line_edges(i,clmirr) )
+
+
+* MONTH_GREGORIAN
+
+ CALL GET_LINE_DYNMEM (npts, clmgrg, status)
+ DO i = 1, npts
+ CALL PUT_LINE_COORD ( linemem(clmgrg)%ptr, i, clim_line_coords(i,clmgrg) )
+ CALL PUT_LINE_COORD ( lineedg(clmgrg)%ptr, i, clim_line_edges(i,clmgrg) )
+ ENDDO
+ CALL PUT_LINE_COORD ( lineedg(clmgrg)%ptr, npts+1, clim_line_edges(i,clmgrg) )
-* local variable declarations:
- LOGICAL TM_ITS_SUBSPAN_MODULO
- INTEGER TM_LENSTR1, alen, blen, vlen
- REAL TM_WW_AXLEN, axwwlen, delta
- CHARACTER*16 TM_FMT, buff1, buff2
+* MONTH_NOLEAP
+
+ CALL GET_LINE_DYNMEM (npts, clmnol, status)
+ DO i = 1, npts
+ CALL PUT_LINE_COORD ( linemem(clmnol)%ptr, i, clim_line_coords(i,clmnol) )
+ CALL PUT_LINE_COORD ( lineedg(clmnol)%ptr, i, clim_line_edges(i,clmnol) )
+ ENDDO
+ CALL PUT_LINE_COORD ( lineedg(clmnol)%ptr, npts+1, clim_line_edges(i,clmnol) )
- INTEGER tt ! nice short name
- EQUIVALENCE (tt,lunit_errors)
- vlen = TM_LENSTR1(line_name(iaxis))
- axwwlen = TM_WW_AXLEN(iaxis)
+* MONTH_ALL_LEAP
+
+ CALL GET_LINE_DYNMEM (npts, clmall, status)
+ DO i = 1, npts
+ CALL PUT_LINE_COORD ( linemem(clmall)%ptr, i, clim_line_coords(i,clmall) )
+ CALL PUT_LINE_COORD ( lineedg(clmall)%ptr, i, clim_line_edges(i,clmall) )
+ ENDDO
+ CALL PUT_LINE_COORD ( lineedg(clmall)%ptr, npts+1, clim_line_edges(i,clmall) )
-* get the nominal delta grid cell length for comparison
- IF (line_delta(iaxis) .NE. unspecified_val8) THEN
- delta = line_delta(iaxis)
- ELSE
- delta = line_mem(line_subsc1(iaxis)+1) - line_mem(line_subsc1(iaxis))
- ENDIF
+* MONTH_JULIAN
+
+ CALL GET_LINE_DYNMEM (npts, clmjul, status)
+ DO i = 1, npts
+ CALL PUT_LINE_COORD ( linemem(clmjul)%ptr, i, clim_line_coords(i,clmjul) )
+ CALL PUT_LINE_COORD ( lineedg(clmjul)%ptr, i, clim_line_edges(i,clmjul) )
+ ENDDO
+ CALL PUT_LINE_COORD ( lineedg(clmjul)%ptr, npts+1, clim_line_edges(i,clmjul) )
- IF (line_modulo(iaxis) .AND. TM_ITS_SUBSPAN_MODULO(iaxis) .AND.
- . (line_modulo_len(iaxis)-axwwlen) .LE. delta ) THEN
- buff1 = TM_FMT( SNGL(axwwlen),7,32,alen )
- buff2 = TM_FMT( SNGL(line_modulo_len(iaxis)),7,32,blen )
- CALL TM_NOTE('Subspan modulo axis '//line_name(iaxis)(:vlen)//
- . '. Axis span = '//buff1(:alen)//
- . ', modulo length = ' //buff2(:blen)//
- . '. Is this intended to be a full-span axis?', tt)
- ENDIF
-
RETURN
END
diff --git a/fmt/src/tm_warn_subspan.F b/fmt/src/tm_warn_subspan.F
index f57e9c4..e5fb1bb 100644
--- a/fmt/src/tm_warn_subspan.F
+++ b/fmt/src/tm_warn_subspan.F
@@ -52,7 +52,7 @@
* local variable declarations:
LOGICAL TM_ITS_SUBSPAN_MODULO
INTEGER TM_LENSTR1, alen, blen, vlen
- REAL TM_WW_AXLEN, axwwlen, delta
+ REAL TM_WW_AXLEN, GET_LINE_COORD, axwwlen, delta
CHARACTER*16 TM_FMT, buff1, buff2
INTEGER tt ! nice short name
@@ -66,7 +66,7 @@
IF (line_delta(iaxis) .NE. unspecified_val8) THEN
delta = line_delta(iaxis)
ELSE
- delta = line_mem(line_subsc1(iaxis)+1) - line_mem(line_subsc1(iaxis))
+ delta = GET_LINE_COORD(linemem(iaxis)%ptr, 2) - GET_LINE_COORD(linemem(iaxis)%ptr, 1)
ENDIF
IF (line_modulo(iaxis) .AND. TM_ITS_SUBSPAN_MODULO(iaxis) .AND.
diff --git a/fmt/src/tm_world_ax.F b/fmt/src/tm_world_ax.F
index e3e97a0..380feb3 100644
--- a/fmt/src/tm_world_ax.F
+++ b/fmt/src/tm_world_ax.F
@@ -72,7 +72,7 @@
. ITSA_TRUEMONTH_AXIS, recursive, true_month
INTEGER TM_MODULO_LINE_DIM, isub, line_len, rmod, new_ss,
. lo_ss, hi_ss, parent_len, new_where
- REAL*8 TM_WORLD_RECUR, TM_MODULO_AXLEN,
+ REAL*8 TM_WORLD_RECUR, TM_MODULO_AXLEN, GET_LINE_COORD,
. midpoint, box_size, tempwld, lo, hi
* initialize
@@ -219,16 +219,16 @@
ELSE
* irregularly spaced points
-* ... keep subscript within bounds ( between 1 and dimension of axis )
- isub = isub + line_subsc1(iaxis) - 1
+
* ... now where within the grid box ?
IF ( where_in_box .EQ. box_lo_lim ) THEN
- tempwld = line_mem(isub+line_dim(iaxis))
+ tempwld = GET_LINE_COORD (lineedg(iaxis)%ptr, isub)
ELSEIF ( where_in_box .EQ. box_middle ) THEN
- tempwld = line_mem(isub)
+ tempwld = GET_LINE_COORD (linemem(iaxis)%ptr, isub)
ELSE
- tempwld = line_mem(isub+line_dim(iaxis)+1)
+ tempwld = GET_LINE_COORD (lineedg(iaxis)%ptr, isub+1)
ENDIF
+
IF ( line_modulo( iaxis ) ) THEN
IF (isubscript .LE. 0) THEN
rmod = isubscript/line_len - 1
diff --git a/fmt/src/tm_ww_ax_1_n.F b/fmt/src/tm_ww_ax_1_n.F
index b1d5c72..1896393 100644
--- a/fmt/src/tm_ww_ax_1_n.F
+++ b/fmt/src/tm_ww_ax_1_n.F
@@ -49,8 +49,8 @@
* internal variable declarations
LOGICAL ITSA_TRUEMONTH_AXIS
- INTEGER isub1, llen, iiaxis
- REAL TM_WORLD
+ INTEGER llen, iiaxis
+ REAL TM_WORLD, GET_LINE_COORD
IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
lo = unspecified_val8
@@ -64,10 +64,9 @@
ELSE
iiaxis = axis
IF (line_parent(axis) .NE. 0) iiaxis = line_parent(axis)
- isub1 = line_subsc1(iiaxis)
llen = line_dim(iiaxis)
- lo = line_mem(isub1)
- hi = line_mem(isub1 + llen - 1)
+ lo = GET_LINE_COORD (linemem(axis)%ptr, 1)
+ hi = GET_LINE_COORD (linemem(axis)%ptr, llen)
ENDIF
RETURN
diff --git a/fmt/src/tm_ww_axlims.F b/fmt/src/tm_ww_axlims.F
index b8a8561..af5d142 100644
--- a/fmt/src/tm_ww_axlims.F
+++ b/fmt/src/tm_ww_axlims.F
@@ -50,8 +50,8 @@
* internal variable declarations
LOGICAL ITSA_TRUEMONTH_AXIS
- INTEGER isub1, llen, iiaxis
- REAL TM_WORLD
+ INTEGER llen, iiaxis
+ REAL TM_WORLD, GET_LINE_COORD
IF ( axis .LT. 0 .OR. axis .GT. line_ceiling ) THEN
lo = unspecified_val8
@@ -65,10 +65,11 @@ c hi = TM_WORLD (line_dim(axis), axis, box_hi_lim )
ELSE
iiaxis = axis
IF (line_parent(axis) .NE. 0) iiaxis = line_parent(axis)
- isub1 = line_subsc1(iiaxis)
llen = line_dim(iiaxis)
- hi = line_mem(isub1 + 2*llen)
- lo = line_mem(isub1 + llen)
+
+ lo = GET_LINE_COORD (lineedg(iiaxis)%ptr, 1)
+ hi = GET_LINE_COORD (lineedg(iiaxis)%ptr, llen+1)
+
ENDIF
RETURN
diff --git a/fmt/src/xgt_grid_data.F b/fmt/src/xgt_grid_data.F
index e7f7e3a..ac86bea 100644
--- a/fmt/src/xgt_grid_data.F
+++ b/fmt/src/xgt_grid_data.F
@@ -74,6 +74,7 @@
* V698 3/16 *acm* Define monthly climatology for Julian axis.
* V702 11/16 *sh* Commented out initialization of of grids cuz
* was taking unacceptable long time to compile
+* V72 8/17 *acm* For trac enhancement #767 -- dynamic coordinate storage
include 'tmap_dims.parm'
include 'implicit.parm'
@@ -83,23 +84,16 @@
include 'xtm_grid.cmn_text'
INTEGER ngrd_def, nlne_def, grids_left, lines_left,
- . grid_lines_left, i, j,
- . pline_mem_next, pline_mem_left, outtype
+ . grid_lines_left, i, j, outtype
PARAMETER (ngrd_def = 0,
. nlne_def = 8,
. grids_left = grid_ceiling-ngrd_def,
. lines_left = line_ceiling-nlne_def,
- . grid_lines_left= nferdims*grids_left,
- . pline_mem_next = 127,
- . pline_mem_left = maxlinestore-pline_mem_next+1)
+ . grid_lines_left= nferdims*grids_left)
PARAMETER (outtype = 6) ! netcdf type double, output axis type.
-* LAST LINE_MEM POSITION + 1
- DATA next_line_mem_pos /pline_mem_next/
- DATA pline_mem_init / pline_mem_next/
-
* DEFINE LINES
DATA
@@ -275,6 +269,10 @@
DATA (line_regular(i),i=nlne_def+1,line_ceiling)
. /lines_left*.FALSE./
+ DATA (line_dim_only(i),i=nlne_def+1,line_ceiling)
+ . /lines_left*.FALSE./
+ DATA (line_allocated(i),i=nlne_def+1,line_ceiling)
+ . /lines_left*0/
DATA (line_t0(i),i=nlne_def+1,line_ceiling)
. /lines_left*char_init20/
@@ -298,9 +296,6 @@
DATA (line_dattype(i),i=1,line_ceiling)
. /line_ceiling*outtype/
-c comment out to speed compilation and decrease mem needs *kob* 7/92
-c DATA (line_mem(i),i=pline_mem_next,maxlinestore)
-c . /pline_mem_left*real8_init/
DATA (grid_name(i),i=ngrd_def+1,grid_ceiling)
. /grids_left*char_init16/
@@ -319,26 +314,32 @@ c . /pline_mem_left*real8_init/
* MONTH_IRREG
+* on startup, allocate these lines dynamically and store the following coordinates
+
* COORDS FOR MONTH_IRREG
- DATA (line_mem(i),i=2,13)
+
+ DATA (clim_line_coords( i,clmirr ), i=1,12)
. / 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425,
. 196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425/
* BOX BOUNDARIES FOR MONTH_IRREG
- DATA (line_mem(i),i=14,26)
+ DATA (clim_line_edges ( i,clmirr ), i=1,13)
. / 0.0, 31.0, 59.2425, 90.2425, 120.2425, 151.2425,
. 181.2425, 212.2425, 243.2425, 273.2425, 304.2425,
. 334.2425, 365.2425/
-
+
+
* MONTH_GREGORIAN
* COORDS FOR MONTH_GREGORIAN
- DATA (line_mem(i),i=27,38)
+
+ DATA (clim_line_coords( i,clmgrg ), i=1,12)
. / 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425,
. 196.7425, 227.7425, 258.2425, 288.7425, 319.2425, 349.7425/
+
* BOX BOUNDARIES FOR MONTH_GREGORIAN
- DATA (line_mem(i),i=39,51)
+ DATA (clim_line_edges ( i,clmgrg ), i=1,13)
. / 0.0, 31.0, 59.2425, 90.2425, 120.2425, 151.2425,
. 181.2425, 212.2425, 243.2425, 273.2425, 304.2425,
. 334.2425, 365.2425/
@@ -346,38 +347,37 @@ c . /pline_mem_left*real8_init/
* MONTH_NOLEAP
* COORDS FOR MONTH_NOLEAP
- DATA (line_mem(i),i=52,63)
+ DATA (clim_line_coords( i,clmnol ), i=1,12)
. / 15.5, 45.0, 74.5, 105.0, 135.5, 166.0, 196.5,
. 227.5, 258.0, 288.5, 319.0, 349.5/
* BOX BOUNDARIES FOR MONTH_NOLEAP
- DATA (line_mem(i),i=64,76)
+ DATA (clim_line_edges ( i,clmnol ), i=1,13)
. / 0.0, 31.0, 59.0, 90.0, 120.0, 151.0, 181.0,
. 212.0, 243.0, 273.0, 304.0, 334.0, 365.0/
+
* MONTH_ALL_LEAP
-
+
* COORDS FOR MONTH_ALL_LEAP
- DATA (line_mem(i),i=77,88)
+ DATA (clim_line_coords( i,clmall ), i=1,12)
. / 15.5, 45.5, 75.5, 106.0, 136.5, 167.0, 197.5,
. 228.5, 259.0, 289.5, 320.0, 350.5/
* BOX BOUNDARIES FOR MONTH_ALL_LEAP
- DATA (line_mem(i),i=89,101)
+ DATA (clim_line_edges ( i,clmall ), i=1,13)
. / 0.0, 31.0, 60.0, 91.0, 121.0, 152.0, 182.0, 213.0,
. 244.0, 274.0, 305.0, 335.0, 366.0/
-
* MONTH_JULIAN
* COORDS FOR MONTH_JULIAN
- DATA (line_mem(i),i=102,113)
+ DATA (clim_line_coords( i,clmjul ), i=1,12)
. / 15.50, 45.25, 74.75, 105.25, 135.75, 166.25,
. 196.75, 227.75, 258.25, 288.75, 319.25, 349.750/
-
* BOX BOUNDARIES FOR MONTH_JULIAN
- DATA (line_mem(i),i=114,126)
+ DATA (clim_line_edges ( i,clmjul ), i=1,13)
. / 0.0, 31.0, 59.25, 90.25, 120.25, 151.25, 181.25,
. 212.25, 243.25, 273.25, 304.25, 334.25, 365.25/
diff --git a/jnls/contrib/greatcircle.jnl b/jnls/contrib/greatcircle.jnl
new file mode 100644
index 0000000..7ae4b70
--- /dev/null
+++ b/jnls/contrib/greatcircle.jnl
@@ -0,0 +1,59 @@
+
+! greatcircle : definitions for great circle calculations between
+! two locations lon1,lat1 and lon2,lat2 (in degrees)
+! Contributed by Mick Spillane, September 2011
+!
+let d2r=atan(1.)/45
+let rlon1=d2r*lon1 ; let rlat1=d2r*lat1
+let rlon2=d2r*lon2 ; let rlat2=d2r*lat2
+
+! define great circle distances from lon1,lat1 to lon2,lat2 in radians ...
+let/title="Great Circle Distance (radians)" \
+ gcrad=acos(sin(rlat1)*sin(rlat2)+cos(rlat1)*cos(rlat2)*cos(rlon2-rlon1))
+! ... and kilometers
+let/title="Great Circle Distance (km)" gckm=111.11*gcrad/d2r
+let/title="Great Circle Distance (nm)" gcnm=60*gcrad/d2r
+
+! define initial heading from lon1,lat1 to lon2,lat2 (clockwise from north)
+let gcharg=acos((sin(rlat2)-sin(rlat1)*cos(gcrad))/(sin(gcrad)*cos(rlat1)))
+! correct for near north-south pairings
+let gchfix=gcharg[x=@fln]/d2r
+let/title="Initial Heading (degrees)" \
+ gchead=if(sin(rlon2-rlon1) gt 0)then gchfix else 360-gchfix
+
+let lat=atan((tan(d2r*lat2)*sin(d2r*(lon-lon1))-tan(d2r*lat1)*sin(d2r*(lon-lon2)))/ \
+ sin(d2r*(lon2-lon1)))/d2r
+
+! Usage: the results "gcrad", "gckm", and "gchead" are computed based on
+! existing variables lon1,lat1 representing the start point and
+! lon2,lat2 representing the destination.
+!
+! NOTE : To plot a greatcircle from lon1,lat1 to lon2,lat2 define a variable "lon"
+! that spans the interval between them with sufficient resolution, for example
+! def axis/x=`lon1`:`lon2`:0.1 xax ; let lon=x[gx=xax]
+! plot/o/vs/nolab/line=2 lon,lat
+! If a gridded file such as a topography is available it may be convenient to
+! use that x-axis for "lon":
+! let lon=x[g=...]
+! plot/o/vs/nolab/line=2/x=`lon1`:`lon2` lon,lat
+!
+
+! rhumbline : definitions for rhumb line calculations between
+! two locations lon1,lat1 and lon2,lat2 (in degrees)
+!
+let d2r=atan(1.)/45
+let rlon1=d2r*lon1 ; let rlat1=d2r*lat1 ; let mlat1=d2r*(45+lat1/2)
+let rlon2=d2r*lon2 ; let rlat2=d2r*lat2 ; let mlat2=d2r*(45+lat2/2)
+
+! define rhumbline course from lon1,lat1 to lon2,lat2
+let/title="Rhumb Line Heading (deg)" \
+ rlhead=mod(360-atan2(rlon1-rlon2,ln(tan(mlat2))-ln(tan(mlat1)))/d2r,360)
+let/title="Rhumb Line Distance (km)"\
+ rlkm=111.32*(if(lat1 eq lat2)then abs(lon2-lon1)*cos(rlat1) else (lat2-lat1)/cos(d2r*rlhead))
+let/title="Rhumb Line Distance (radians)"\
+ rlrad=rlkm/(111.32*d2r)
+!
+! to compute points on a rhumbline from (lon1,lat1) with distance "dist" at heading "dirn"
+!
+ let rllat=LAT1+DIST*COS(D2R*DIRN)/111.32
+ let rllon=if(cos(d2r*dirn) eq 0)then dist/(111.32*cos(d2r*lat1)) else LON1-TAN(D2R*DIRN)*(LN(TAN(D2R*(45+LAT1/2)))-LN(TAN(D2R*(45+rllat/2))))/d2r
diff --git a/jnls/examples/compress_str.jnl b/jnls/examples/compress_str.jnl
new file mode 100644
index 0000000..840a740
--- /dev/null
+++ b/jnls/examples/compress_str.jnl
@@ -0,0 +1,46 @@
+
+\CAN MODE verify
+
+! compress_str.jnl
+! Compresses a 1D string variable along its axis
+
+! Programmed by Ansley Manke & E.D. Cokelet, NOAA/PMEL, 2 Nov 2017
+! Last modified 2 Nov 2017
+
+! Usage:
+! go compressi_str my_str_var my_str_var_compressed
+! $1 $2
+! Where
+! $1 = name of the string variable to be compressed
+! $2 = name of the compressed string variable
+
+! Get the direction of the variable
+
+DEFINE SYMBOL cstr_sh = `$1,RETURN=shape`
+
+! Is the variable 1-D?
+IF `STRLEN("($cstr_sh)") GT 1` THEN
+ SAY Exiting: compress_str.jnl works on a 1D variable. ($1) is ($cstr_sh)
+ EXIT/SCRIPT
+ENDIF
+
+! Is the variable a character variable?
+DEFINE SYMBOL cstr_typ = `$1,RETURN=dtype`
+IF `($cstr_typ"0|CHAR>1|*>0") NE 1` THEN
+ SAY Exiting: compress_str.jnl works on a string variable. ($1) is numeric
+ EXIT/SCRIPT
+ENDIF
+
+! Index name for the direction
+DEFINE SYMBOL cstr_shi = ($cstr_sh"|X>i|Y>j|Z>k|T>l|E>m|F>n")
+
+! Define the compressed string variable
+LET $1_str_length = STRLEN( $1 )
+
+LET $1_valid = IF STRLEN( $1 ) GT 0 THEN 1
+LET $1_sample_indices = \
+ COMPRESS($cstr_shi)( $1_valid*_($cstr_shi)[G($cstr_sh)=$1,($cstr_shi)=1:`$1,RETURN=($cstr_shi)size`] )
+LET $2 = SAMPLE($cstr_shi)( $1, $1_sample_indices )
+
+CANCEL SYMBOL cstr_*
+SET MODE/LAST verify
diff --git a/jnls/go/polyshape.jnl b/jnls/go/polyshape.jnl
index b351d64..e7e9ce7 100644
--- a/jnls/go/polyshape.jnl
+++ b/jnls/go/polyshape.jnl
@@ -7,6 +7,9 @@
! 2/09 *acm* add bslash and hslash, and variations on some previous shapes
! trianglec and deltac are centered vertically
! exc is smaller, as are rectanglec and tallboxc.
+! 9/17 *acm* In order to plot correctly on a log axis, the shapes
+! need to be symmetric vertically and left to right, fix the
+! definitions for triangle, delta and star
! Description: define xpolyshape, ypolyshape variables for polygon fills
@@ -39,11 +42,15 @@ query/ignore $1"|triangle|delta|square|diamond|pentagon|hexagon|circle\
IF $1"|triangle>1|*>0|" THEN
LET/QUIET xpolyshape = COS(3.14159/180 * X[X=90:`2*120+90`:120])
LET/QUIET ypolyshape = SIN(3.14159/180 * X[X=90:`2*120+90`:120])
+ LET/QUIET xpolyshape = COS(3.14159/180 * X[X=90:`2*120+90`:120])
+ LET/QUIET ypolyshape = {0.75,-0.75,-0.75}
ENDIF
IF $1"|delta>1|*>0|" THEN
LET/QUIET xpolyshape = COS(3.14159/180 * X[X=30:`2*120+30`:120])
LET/QUIET ypolyshape = SIN(3.14159/180 * X[X=30:`2*120+30`:120])
+ LET/QUIET ypolyshape = {0.75,0.75,-.75}
+
ENDIF
IF $1"|square>1|*>0|" THEN
@@ -81,7 +88,8 @@ IF $1"|star>1|*>0|" THEN
!LET/QUIET ypeni = 0.3*SIN(3.14159/180 * X[X=`90-36`:`4*72+90-36`:72])
!poly/over/line/hlimits=-1:1/vlimits=-1:1 xpeni,ypeni,0
LET/QUIET xpolyshape = { 0.17634 , 0.00000 , -0.17634, -0.95106, -0.28532, -0.58779, 0.00000 , 0.58778 , 0.28532 , 0.95106 }
- LET/QUIET ypolyshape = { 0.24270, 1.00000, 0.24271, 0.30902, -0.09270, -0.80902, -0.30000, -0.80902, -0.09271, 0.30901 }
+ LET/QUIET ypolyshape = { 0.1472, 0.9045, 0.1472, 0.2135, -0.1882, -0.9045, -0.3955, -0.9045, -0.1882, 0.2135}
+
ENDIF
IF $1"|plus>1|*>0|" THEN
diff --git a/palettes/six_line_colors.spk b/palettes/six_line_colors.spk
new file mode 100644
index 0000000..b8d34ea
--- /dev/null
+++ b/palettes/six_line_colors.spk
@@ -0,0 +1,10 @@
+RGB_Mapping By_level
+! Ferret line-colors (not in order used by Ferret)
+
+! Level Red Green Blue
+ 1 0 0 100 ! blue
+ 2 100 0 0 ! red
+ 3 0 100 0 ! green
+ 4 0 100 100 ! cyan
+ 5 100 0 100 ! purple
+ 6 0 0 0 ! black
diff --git a/ppl/complot/symbel.F b/ppl/complot/symbel.F
index ecae03e..0ccbabf 100644
--- a/ppl/complot/symbel.F
+++ b/ppl/complot/symbel.F
@@ -4,6 +4,8 @@ C A simple forward to SYMBEL_HERSHEY.
C This was done to match PyFerret where the original
C subroutine here was renamed SYMBEL_HERSHEY.
C**
+C V7.22 *acm* 10/17 Fix ticket 2566: if zero or negative character size, exit.
+
C
C CALL SYMBEL(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
C
@@ -20,7 +22,8 @@ C NCHAR - NUMBER OF CHARACTERS TO BE DRAWN.
C STRING - ARRAY CONTAINING THE DISPLAY CODES OF THE
C CHARACTERS TO BE DRAWN.
C
- CALL SYMBEL_HERSHEY(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
+ IF (height .LE. 0. ) RETURN
+ CALL SYMBEL_HERSHEY(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
RETURN
END
diff --git a/ppl/complot/symwid.F b/ppl/complot/symwid.F
index dfd0e3a..9b64876 100644
--- a/ppl/complot/symwid.F
+++ b/ppl/complot/symwid.F
@@ -37,13 +37,15 @@
C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
+C V7.22 *acm* 10/17 Fix ticket 2566: if zero or negative character size, exit.
+
CHARACTER STRING*(*)
NC=-IABS(NCHAR)
C
C THIS FUNCTION RETURNS THE WIDTH OF THE STRING WITHOUT DRAWING IT
C
SS=0.
- IF (NC .NE. 0) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
+ IF (NC.NE.0 .AND. height.GT.0.) CALL SYMBEL(SS,0.,0.,HEIGHT,NC,STRING)
SYMWID=SS
RETURN
END
diff --git a/ppl/nine_by_levels.spk b/ppl/nine_by_levels.spk
new file mode 100644
index 0000000..f1d5af7
--- /dev/null
+++ b/ppl/nine_by_levels.spk
@@ -0,0 +1,12 @@
+RGB_Mapping By_level
+
+! Level Red Green Blue
+ 1 80 0 100 ! violet
+ 2 100 50 0 ! orange
+ 3 50 90 30 ! light green
+ 4 30 40 100 ! med blue
+ 5 100 8 58 ! magenta
+ 6 0 80 85 ! turq
+ 7 100 75 0 ! gold
+ 8 60 0 0 ! dark red
+ 9 80 73 59 ! tan
diff --git a/ppl/plot/pltit.F b/ppl/plot/pltit.F
index 88e6f2b..41e44d8 100644
--- a/ppl/plot/pltit.F
+++ b/ppl/plot/pltit.F
@@ -331,6 +331,13 @@ C Call WINDOW to restore values of XMIN, XMAX, YMIN, YMAX.
ELSE IF(MAKEP.EQ.'PLOT') THEN
IPV = 0
CALL PLOTXY(X,NXS,XF,YF,IPV)
+
+* See ticket 2565, shifted lbels on time overlay plots
+ IF(SOVER .AND. (ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
+ XHI = XTI
+ XLO = XTL
+ ENDIF
+
if (interrupted) go to 3333
**** JD * ALINE CALL
@@ -443,6 +450,11 @@ c CALL PLOTPOL(X,NXS,XF,YF)
***************************************************
* TMAP addition for FILLPOL call
ELSE IF(MAKEP.EQ.'FILLPOL' .OR. MAKEP.EQ.'POLYGON')THEN
+* Get the time-axis scale right
+ IF(SOVER .AND. (ITFLG.EQ.1 .OR. ITFLG.EQ.2)) THEN
+ XHI = XTI
+ XLO = XTL
+ ENDIF
CALL FILLPOL(X,NXS,XF,YF,iwind)
IF ( interrupted ) GOTO 3333
diff --git a/ppl/tmapadds/SOURCE_FILES b/ppl/tmapadds/SOURCE_FILES
index 19c7ef3..8d7f097 100644
--- a/ppl/tmapadds/SOURCE_FILES
+++ b/ppl/tmapadds/SOURCE_FILES
@@ -57,6 +57,7 @@ set_fill_area_rep.F\
set_fill_ndx.F\
set_gks_metafile.F\
set_levels_shade_fill.F\
+set_nshd_levels.F\
set_num_linecolors.F\
set_one_color.F\
set_open_levels.F\
diff --git a/fer/utl/gcf_set_normal_axis.F b/ppl/tmapadds/set_nshd_levels.F
similarity index 76%
copy from fer/utl/gcf_set_normal_axis.F
copy to ppl/tmapadds/set_nshd_levels.F
index 3a0ed70..f22a59d 100644
--- a/fer/utl/gcf_set_normal_axis.F
+++ b/ppl/tmapadds/set_nshd_levels.F
@@ -1,5 +1,6 @@
- SUBROUTINE GCF_SET_NORMAL_AXIS( grid, idim )
-
+ SUBROUTINE SET_NSHD_LEVELS (numlevs)
+
+*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -32,23 +33,22 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-*
-* A grid has been determined to need a normal axis in a particular direction,
-* when setting an alternate function to run depending on direction arguments.
-*
-* V720 3/16 *acm*
+ IMPLICIT NONE
+ include 'shade_vars.cmn'
- include 'ferret.parm'
- include 'tmap_dims.parm'
- include 'xtm_grid.cmn_text'
- external xgt_grid_data
+ INTEGER numlevs
-* calling argument declarations
- INTEGER grid, idim
+* 10/10/2017 *acm*
+*
+* Update shd_levels to match the current value of nlev.
+* ... For ticket 2564. Calls to load the palette and colors, PPL SHASET, use
+* the stored setting shd_levels in the call to setup_color_table. In some
+* instances that previous setting causes colors to be computed for non-existent
+* levels and rgb colors outside the range [0:1]. Set shd_levels to correspond to
+* the nlev for this plot.
- grid_line(idim, grid) = mnormal
-! anything else?
+ shd_levels = MAX (numlevs,1)
- RETURN
- END
+ return
+ end
diff --git a/site_specific.mk.in b/site_specific.mk.in
index 7c0af97..a8d327e 100644
--- a/site_specific.mk.in
+++ b/site_specific.mk.in
@@ -69,16 +69,3 @@ NETCDF4_DIR = /usr/local/netcdf-4.4.1.1-64
# READLINE_DIR = /usr/local/Cellar/readline/7.0.3_1
##
-## Java home directory - this may be already defined from your shell
-## environment. If JAVA_HOME is defined, $(JAVA_HOME)/bin/javac and
-## $(JAVA_HOME)/bin/jar is called to build threddsBrowser.jar;
-## otherwise, threddsBrowser.jar is not built and the Ferret command
-## SET DATA /BROWSE (or the alias OPEN) will not work.
-##
-# JAVA_HOME = /usr/java/latest
-# JAVA_HOME = /usr/lib/jvm/java-oracle
-# JAVA_HOME = /usr/lib/jvm/java-sun
-JAVA_HOME = /usr/lib/jvm/java
-# JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
-
-##
diff --git a/threddsBrowser/.classpath b/threddsBrowser/.classpath
deleted file mode 100644
index 9ab0566..0000000
--- a/threddsBrowser/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="unittests"/>
- <classpathentry kind="lib" path="toolsUI/toolsUI-4.1.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/threddsBrowser/.project b/threddsBrowser/.project
deleted file mode 100644
index 9fbe662..0000000
--- a/threddsBrowser/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>ThreddsBrowser</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/threddsBrowser/.settings/org.eclipse.jdt.core.prefs b/threddsBrowser/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 31c5aed..0000000
--- a/threddsBrowser/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Sun Jun 20 10:12:34 PDT 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
diff --git a/threddsBrowser/.settings/scoped_pref_store.prefs b/threddsBrowser/.settings/scoped_pref_store.prefs
deleted file mode 100644
index db2da74..0000000
--- a/threddsBrowser/.settings/scoped_pref_store.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jun 21 09:17:18 PDT 2010
-EnableVPG=false
-eclipse.preferences.version=1
diff --git a/threddsBrowser/Makefile b/threddsBrowser/Makefile
deleted file mode 100644
index a964a2e..0000000
--- a/threddsBrowser/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Makefile for creating threddsBrowser.jar
-#
-
-#
-# Include ../site_specific.mk for the possible definition of JAVA_HOME
-#
-include ../site_specific.mk
-
-TOOLSUI_JAR = toolsUI/toolsUI-4.1.jar
-
-JAVA_SOURCE_FILES = $(wildcard src/gov/noaa/pmel/ferret/threddsBrowser/*.java)
-
-.PHONY : all
-all : threddsBrowser.jar
-
-.PHONY : clean
-clean :
- rm -fr threddsBrowser.jar bin
-
-threddsBrowser.jar : $(JAVA_SOURCE_FILES) Makefile
- rm -fr threddsBrowser.jar bin
- mkdir bin
-ifdef JAVA_HOME
- $(JAVA_HOME)/bin/javac -sourcepath src -classpath bin:$(TOOLSUI_JAR) -d bin $(JAVA_SOURCE_FILES)
- $(JAVA_HOME)/bin/jar cf threddsBrowser.jar -C bin gov/noaa/pmel/ferret/threddsBrowser
-else
- echo "JAVA_HOME not defined; building of threddsBrowser.jar skipped"
-endif
-
diff --git a/threddsBrowser/README b/threddsBrowser/README
deleted file mode 100644
index 0452df5..0000000
--- a/threddsBrowser/README
+++ /dev/null
@@ -1,24 +0,0 @@
-
-This is an Eclipse Java project directory, thus the reason for
-the .classpath and .project files, and .settings directory.
-The Makefile was created to mimic the standard Eclipse build,
-thus the reason for the separate src and bin directory trees.
-
-To successfully create threddsBrowser.jar using Makefile,
-the environment variable JAVA_HOME needs to be defined as
-the location of a Java 6 Development Kit. If not defined,
-the Makefile will attempt to define it if a directory
-matching /usr/local/jdk1.6* is found.
-
-Also, the toolsUI jar file given by TOOLSUI_JAR in
-Makefile needs to be present. The latest release version
-of the toolsUI jar file can be downloaded from
- http://www.unidata.ucar.edu/software/netcdf-java/
-
-The resulting threddsBrowser.jar as well as the toolsUI
-jar file need to be put into the $FER_DIR/lib directory.
-The toolsUI jar file is accessed using the name toolsUI.jar,
-so, if not already given by this name, add a symbolic link
-named toolsUI.jar pointing to the actual toolsUI jar file:
- ln -s <actual_name> toolsUI.jar
-
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/BrowserDefaults.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/BrowserDefaults.java
deleted file mode 100644
index 89a39f3..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/BrowserDefaults.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.awt.Dimension;
-import java.io.File;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import ucar.util.prefs.PreferencesExt;
-
-/**
- * Default settings for a ThreddsBrowser
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class BrowserDefaults {
-
- /** XMLStore key for a Dimension giving the size of the browser JPanel */
- public static final String BROWSER_SIZE = "BrowserSize";
-
- /** XMLStore key for an int giving the location of the divider between the tree viewer and the HTML viewer */
- public static final String DIVIDER_LOCATION = "DividerLocation";
-
- /** XMLStore key for a String giving a space/comma/semicolon separated list of acceptable filename extensions for local datasets */
- public static final String DATASET_FILENAME_EXTENSIONS = "DatasetFilenameExtensions";
-
- /** XMLStore key for a String given the default directory for the local directory file chooser */
- public static final String LOCAL_BROWSE_DIRNAME = "LocalBrowseDirname";
-
- /** XMLStore key for a List of Strings giving locations for the drop-down list */
- public static final String LOCATION_STRINGS_LIST = "LocationStringsList";
-
- /** Initial Strings for the drop-down list of locations */
- private Collection<String> locations;
-
- /** Location of the split pane divider */
- private int dividerLocation;
-
- /** Initial directory of the local browse file chooser */
- private File localBrowseDir;
-
- /** String of acceptable filename extensions for datasets */
- private String extensionsString;
-
- /** Size of the ThreddsBrowser */
- private Dimension browserSize;
-
- /**
- * Get the defaults for ThreddsBrowser from the given preferences and the initial
- * locations environment variable.
- * A location String will appear only once in the locations collection and
- * will be in the order when they first appear:
- * <ol>
- * <li> in the locations list saved in stored preferences </li>
- * <li> in the value of the locations environment variable</li>
- * </ol>
- * @param prefs the stored preferences; may be null
- * @param defLocsEnvName the name of the locations environment variable whose
- * value is a space-separated list of possibly-quoted locations; may be null
- */
- public BrowserDefaults(PreferencesExt prefs, String defLocsEnvName) {
- // Get the list from the store preferences
- List<String> locationsList = null;
- if ( prefs != null ) {
- @SuppressWarnings("unchecked")
- List<String> locsList = (List<String>) prefs.getList(LOCATION_STRINGS_LIST, null);
- locationsList = locsList;
- }
-
- // Use a LinkedHashSet to maintain ordered single copies of the locations
- locations = new LinkedHashSet<String>();
- if ( locationsList != null ) {
- for (String loc : locationsList) {
- if ( (loc != null) && ! loc.isEmpty() ) {
- locations.add(loc);
- }
- }
- }
-
- // Add locations from the environment variable
- try {
- String locsEnvValue = System.getenv(defLocsEnvName);
- // space separated, possibly double- or single-quoted, values - does not recognize escaping
- String patStr = "\\s*\"([^\"]*?)\"|\\s*'([^']*?)'|\\s*(\\S*)";
- Pattern p = Pattern.compile(patStr);
- Matcher m = p.matcher(locsEnvValue);
- while ( m.find() ) {
- String loc = m.group(1);
- if ( loc == null )
- loc = m.group(2);
- if ( loc == null )
- loc = m.group(3);
- if ( (loc != null) && ! loc.isEmpty() )
- locations.add(loc);
- }
- } catch (Exception e) {
- ; // nothing to add
- }
-
- // Location of the split pane divider
- dividerLocation = 400;
- if ( prefs != null ) {
- int loc = prefs.getInt(DIVIDER_LOCATION, dividerLocation);
- if ( loc > 0 ) {
- dividerLocation = loc;
- }
- }
-
- // Local browse directory
- localBrowseDir = null;
- if ( prefs != null ) {
- String localBrowseDirname = (String) prefs.getBean(LOCAL_BROWSE_DIRNAME, null);
- if ( localBrowseDirname != null ) {
- File localDir = new File(localBrowseDirname + File.separator);
- if ( localDir.isDirectory() ) {
- localBrowseDir = localDir;
- }
- }
- }
-
- // String of acceptable filename extensions for displayed datasets
- extensionsString = "cdf, nc, ncd, des, dat, txt";
- if ( prefs != null ) {
- String newStr = (String) prefs.getBean(DATASET_FILENAME_EXTENSIONS, extensionsString);
- // Make sure the string is in a standard, clean format
- extensionsString = createExtensionsString(parseExtensionsString(newStr));
- }
-
- // Size of the browser
- browserSize = new Dimension(800, 500);
- if ( prefs != null ) {
- Dimension size = (Dimension) prefs.getBean(BROWSER_SIZE, browserSize);
- if ( (size.getHeight() > 0.0) && (size.getWidth() > 0.0) ) {
- browserSize = size;
- }
- }
- }
-
- /**
- * @return the complete Collection of Strings for the drop-down list of locations
- */
- public Collection<String> getLocationStrings() {
- return locations;
- }
-
- /**
- * @return the location of the split pane divider
- */
- public int getDividerLocation() {
- return dividerLocation;
- }
-
- /**
- * @return the initial directory of the local file chooser
- */
- public File getLocalBrowseDir() {
- return localBrowseDir;
- }
-
- /**
- * @return the String of acceptable filename extensions for datasets
- */
- public String getExtensionsString() {
- return extensionsString;
- }
-
- /**
- * @return the preferred size for the ThreddsBrowser
- */
- public Dimension getBrowserSize() {
- return browserSize;
- }
-
- /**
- * Save the initial list of locations string to a PreferencesExt that can be used
- * in the construction of a BrowserDefaults object.
- * @param prefs save the List of location strings in here.
- * @param locationsList the List of location strings to save; cannot be null.
- */
- public static void saveLocationsList(PreferencesExt prefs, List<String> locationsList) {
- prefs.putList(LOCATION_STRINGS_LIST, locationsList);
- }
-
- /**
- * Save the split pane divider location to a PerferencesExt that can be used
- * in the construction of a BrowserDefaults object.
- * @param prefs save the divider location here.
- * @param dividerLoc the divider location to save.
- */
- public static void saveDividerLocation(PreferencesExt prefs, int dividerLoc) {
- prefs.putInt(DIVIDER_LOCATION, dividerLoc);
- }
-
- /**
- *
- * Save the initial directory for the local file chooser to a PerferencesExt
- * that can be used in the construction of a BrowserDefaults object.
- * @param prefs save the local directory here.
- * @param localDir the local directory to save; can be null.
- */
- public static void saveLocalBrowseDir(PreferencesExt prefs, File localDir) {
- if ( localDir != null ) {
- prefs.putBeanObject(LOCAL_BROWSE_DIRNAME, localDir.getPath());
- }
- }
-
- /**
- * Save the String of acceptable filename extensions for datasets to a PreferencesExt
- * that can be used in the construction of a BrowserDefaults object.
- * @param prefs save the filename extensions String here.
- * @param extsString the filename extensions String to save; cannot be null.
- */
- public static void saveExtensionsString(PreferencesExt prefs, String extsString) {
- prefs.putBeanObject(DATASET_FILENAME_EXTENSIONS, extsString);
- }
-
- /**
- * Save the size of the browser to a PreferencesExt
- * that can be used in the construction of a BrowserDefaults object.
- * @param prefs save the browser size here.
- * @param size the browser size to save; cannot be null.
- */
- public static void saveBrowserSize(PreferencesExt prefs, Dimension size) {
- prefs.putBeanObject(BROWSER_SIZE, size);
- }
-
- /**
- * Parses a String of comma/semicolon/space-separated acceptable filename extensions
- * for datasets and produces a Collection of the individual extension Strings.
- * @param extsString the String of comma/semicolon/space-separated extensions; cannot be null.
- * @return a Collection of the acceptable filename extension Strings.
- * Will not be null but may be empty.
- */
- public static Collection<String> parseExtensionsString(String extsString) {
- // Parse the returned string to get the individual extensions
- String[] extensions = extsString.split("\\s*[\\s;,]\\s*");
- LinkedHashSet<String> extsSet = new LinkedHashSet<String>(extensions.length);
- for (String ext : extensions) {
- if ( ! ext.isEmpty() ) {
- extsSet.add(ext);
- }
- }
- return extsSet;
- }
-
- /**
- * Creates String of comma-space separated acceptable filename extensions for
- * datasets from a Collection of individual extension Strings.
- * @param extsColl the Collection of individual extension Strings; cannot be null.
- * @return the String of comma-space separated acceptable filename extensions.
- * Will not be null but may be empty.
- */
- public static String createExtensionsString(Collection<String> extsColl) {
- StringBuilder extBuilder = new StringBuilder();
- boolean first = true;
- for (String ext : extsColl) {
- if ( (ext == null) || ext.isEmpty() )
- continue;
- if ( first )
- first = false;
- else
- extBuilder.append(", ");
- extBuilder.append(ext);
- }
- return extBuilder.toString();
- }
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ExtensionFileFilter.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ExtensionFileFilter.java
deleted file mode 100644
index 05b53d3..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ExtensionFileFilter.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.util.Collection;
-import java.util.HashSet;
-
-/**
- * A file filter based on a set of filename extensions
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class ExtensionFileFilter extends HashSet<String> implements FileFilter {
- private static final long serialVersionUID = -5282011356208993578L;
-
- /**
- * Create a file filter with an empty set of extensions;
- * thus all files are accepted.
- */
- public ExtensionFileFilter() {
- }
-
- /**
- * Create a file filter from the given Collection of extensions.
- * If this set of extensions is empty, all files are accepted.
- * @param extensionsSet the set of acceptable extensions.
- * Cannot be null.
- * The extensions should <b> not </b> contain the '.'
- */
- public ExtensionFileFilter(Collection<String> extensionsSet) {
- super(extensionsSet);
- }
-
- /**
- * @return true if fileToCheck is a file with an extension given in
- * the set of extension (if not empty) used to construct this object.
- * If that set of extensions is empty, all files are accepted.
- * Hidden files/directories always return false.
- * Visible directories always return true.
- */
- @Override
- public boolean accept(File fileToCheck) {
- if ( fileToCheck.isHidden() )
- return false;
- if ( size() == 0 )
- return true;
- if ( fileToCheck.isDirectory() )
- return true;
- String name = fileToCheck.getName();
- int loc = name.lastIndexOf('.') + 1;
- if ( (loc <= 0) || (loc >= name.length()) )
- return false;
- String ext = name.substring(loc);
- if ( contains(ext) )
- return true;
- return false;
- }
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/HTMLViewer.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/HTMLViewer.java
deleted file mode 100644
index 03347d2..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/HTMLViewer.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.io.IOException;
-import java.net.URL;
-
-import javax.swing.JEditorPane;
-import javax.swing.JScrollPane;
-import javax.swing.event.HyperlinkListener;
-
-/**
- * Used to display HTML in a scrolled JEditorPane
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class HTMLViewer extends JScrollPane {
-
- private static final long serialVersionUID = -8436110289990707935L;
-
- private static final String HTML_HEADER_STRING =
- "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n" +
- "<html>\n" +
- "<head>\n" +
- "<meta http-equiv=\"Content-Type\" content=\"text/html\">\n" +
- "</head>\n" +
- "<body>\n";
-
- private static final String HTML_FOOTER_STRING =
- "</body>\n" +
- "</html\n";
-
- private JEditorPane htmlEditor;
-
- /**
- * Creates this JScrolledPane containing a non-editable JEditorPane
- */
- public HTMLViewer() {
- // Editor of view HTML description of the selected dataset
- htmlEditor = new JEditorPane();
- htmlEditor.setEditable(false);
- setViewportView(htmlEditor);
- }
-
- /**
- * Adds a hyperlinkListener to the JEditorPane component.
- * @see JEditorPane#addHyperlinkListener(HyperlinkListener)
- * @param hyperlinkListener the listener to add
- */
- public void addHyperlinkListener(HyperlinkListener hyperlinkListener) {
- // Just pass this on to the JEditorPane
- htmlEditor.addHyperlinkListener(hyperlinkListener);
- }
-
- /**
- * Reset the displayed page to a new empty HTML document.
- * This will reset the style sheet to the default.
- */
- public void clearPage() {
- htmlEditor.setContentType("text/html");
- htmlEditor.setDocument(htmlEditor.getEditorKit().createDefaultDocument());
- htmlEditor.setText(HTML_HEADER_STRING + HTML_FOOTER_STRING);
- }
-
- /**
- * Displays the given string as the body of an HTML page in the current
- * document in the HTMLViwer. Standard HTML header (up to and including
- * the <body> tag) and footer (the </body> tag and after) tags are added
- * to the given string before displaying.
- */
- public void showHTMLBodyText(String htmlBodyString) {
- htmlEditor.setText(HTML_HEADER_STRING + htmlBodyString + HTML_FOOTER_STRING);
- }
-
- /**
- * Opens and displays the HTML page at the given URL.
- * @see JEditorPane#setPage(URL)
- * @param url URL of the page to display
- * @throws IOException if the JEditorPane thows one
- */
- public void setPage(URL url) throws IOException {
- // Just pass this on to the JEditorPane
- htmlEditor.setPage(url);
- }
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirInvDatasetImpl.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirInvDatasetImpl.java
deleted file mode 100644
index 8b94483..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirInvDatasetImpl.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import thredds.catalog.InvDatasetImpl;
-
-/**
- * An InvDatasetImpl that overrides hasNestedDatasets to always return true.
- * The only purpose of this class is to create an InvDatasetImpl that will
- * always be shown as a folder in a {@link thredds.catalog.ui.CatalogTreeView}.
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocalDirInvDatasetImpl extends InvDatasetImpl {
-
- /**
- * Creates an InvDatsetImpl with null for the dataType and the urlPath.
- * The hasNestedDatasets method of this InvDatasetImpl is overridden to
- * always return true.
- * @param parent parent dataset
- * @param name display name of the dataset
- * @param serviceName default service (may be null)
- */
- public LocalDirInvDatasetImpl(InvDatasetImpl parent, String name, String serviceName) {
- super(parent, name, null, serviceName, null);
- }
-
- /**
- * Always returns true so this dataset will be displayed as a folder in
- * a {@link thredds.catalog.ui.CatalogTreeView}.
- * @return true
- */
- @Override
- public boolean hasNestedDatasets() {
- return true;
- }
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanMonitor.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanMonitor.java
deleted file mode 100644
index 251b291..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanMonitor.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.concurrent.ExecutionException;
-
-import javax.swing.JComponent;
-import javax.swing.ProgressMonitor;
-
-import thredds.catalog.InvCatalogImpl;
-
-/**
- * A monitor that sets up and runs a LocalDirTreeScanner, displays the scan progress, and fires
- * off a PropertyChange event when the scan is complete.
- *
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocalDirTreeScanMonitor extends PropertyChangeSupport implements PropertyChangeListener {
- private static final long serialVersionUID = 6099749370566968112L;
-
- /** Maximum length of a truncated path String */
- private final static int MAX_TRUNCATED_PATH_LENGTH = 60;
-
- /** root of the local directory tree to scan */
- File rootDir;
- /** flag so that the final property change event sent to the ThreddsBrowser is sent only once */
- boolean completed;
- /** scanner/catalog builder for the local directory tree */
- LocalDirTreeScanner scanner;
- /** dialog for displaying the progress of the scan */
- ProgressMonitor scanMonitor;
-
- /**
- * Create a LocalDirTreeScanner as well as a ProgressMonitor. The LocalDirTreeScanner will scan
- * and build a catalog for the local directory tree rooted at localDir using datasetFilter as the
- * file filter. The ProgressMonitor will report the progress of this scan. The scan is started
- * (in the background) by calling the runScan method. A PropertyChange event is fired off to all
- * registered PropertyChangeListeners when the scan is complete. Possible values for this event are:
- * <ul>
- * <li> "Done": successful completion; getOldValue returns localDir, getNewValue returns the generated catalog
- * <li> "Canceled": scan canceled or interrupted; getOldValue returns localDir, getNewValue returns null
- * (if canceled) or the InterruptedException (if interrupted, probably from being canceled)
- * <li> "Died": scan threw an exception; getOldValue returns localDir, getNewValue returns the cause of
- * the ExecutionException (ie, the exception thrown by the scanner)
- * </ul>
- * @param parent the parent of the ProgressMonitor
- * @param localDir the root of the local directory tree to scan
- * @param datasetFilter the file filter for the scan; if null, all files are accepted
- * @throws IOException if localDir is not a valid directory
- */
- LocalDirTreeScanMonitor(JComponent parent, File localDir, FileFilter datasetFilter) throws IOException {
- super(new Object());
- rootDir = localDir;
- completed = false;
- // Create the actual scanner/catalog builder
- scanner = new LocalDirTreeScanner(rootDir, datasetFilter);
- // Have the scanner notify us when PropertyChange events are fired off
- scanner.addPropertyChangeListener(this);
- // Create a ProgressMonitor to go with the scanner (being a SwingWorker, progress values are [0,100])
- scanMonitor = new ProgressMonitor(parent, "Examining the local directory: ",
- truncatedPathname(rootDir, rootDir, MAX_TRUNCATED_PATH_LENGTH), 0, 100);
- /*
- * If taking more than 0.5 s, always popup the progress dialog. Changed from defaults because the progress
- * estimate could easily be quite poor if there are lots of files in the last couple of directories.
- */
- scanMonitor.setMillisToDecideToPopup(500);
- scanMonitor.setMillisToPopup(500);
- }
-
- /**
- * Starts a background scan and build of the local directory tree catalog.
- */
- public void runScan() {
- scanner.execute();
- }
-
- /**
- * @return the total number of entries in the returned catalog. If canceled,
- * the total number of entries examined prior to cancellation.
- */
- public int getNumCatalogEntries() {
- return scanner.getNumCatalogEntries();
- }
-
- /**
- * This gets called when a property changes in the LocalDirTreeScanner
- * (a SwingWorker) or the ProgressMonitor associated with this object.
- */
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- // If already fired off the final property change event just return
- if ( completed )
- return;
-
- // If the scanner has completed, fire off the final property change event
- if ( scanner.isDone() ) {
- completed = true;
- scanMonitor.close();
- if ( scanner.isCancelled() ) {
- firePropertyChange("Canceled", rootDir, null);
- }
- else {
- try {
- InvCatalogImpl catalog = scanner.get();
- firePropertyChange("Done", rootDir, catalog);
- } catch (InterruptedException e) {
- // scanner was interrupted (probably from a cancel)
- firePropertyChange("Canceled", rootDir, e);
- } catch (ExecutionException e) {
- // scanner threw an exception
- firePropertyChange("Died", rootDir, e.getCause());
- }
- }
- return;
- }
-
- /*
- * If the cancel button on the ProgressMonitor has been pressed, cancel the scan and let
- * the resulting propertyChange event trigger the firing of the final property change event.
- * This depends on the scanner firing off PropertyChange events often enough to quickly
- * detect this change. Once the ProgressMonitor is canceled, isCanceled will always return
- * true and so all event handling will stop here.
- */
- if ( scanMonitor.isCanceled() ) {
- scanner.cancel(true);
- return;
- }
-
- // If a progress update from the scanner, update the ProgressMonitor's progress bar
- if ( "progress".equals(evt.getPropertyName()) ) {
- int progress = (Integer) evt.getNewValue();
- scanMonitor.setProgress(progress);
- return;
- }
-
- // If an update in the directory being examined, update the ProgressMonitor's note
- if ( "Directory".equals(evt.getPropertyName()) ) {
- File dir = (File) evt.getNewValue();
- scanMonitor.setNote(truncatedPathname(dir, rootDir, MAX_TRUNCATED_PATH_LENGTH));
- }
- }
-
- /**
- * Return a short pathname for the given File. The name is truncated by using ellipses in
- * the middle of the path to try keep the length from of the returned String from exceeding
- * MmaxLength. If parent is given, the truncated name starts with the parent directory's
- * name if the given File is a directory under parent.
- * @param fil the File to use
- * @param parent the parent File to use as for a relative path (can be null)
- * @param the maximum length of the returned short pathname
- * @return the short pathname
- */
- public static String truncatedPathname(File fil, File parent, int maxLength) {
- String filename = fil.getPath();
- // If parent is given and fil is under parent, always use the relative path
- if ( parent != null ) {
- String parentPath = parent.getPath();
- if ( filename.startsWith(parentPath) ) {
- String parentName = parent.getName();
- filename = parentName + filename.substring(parentPath.length());
- }
- }
-
- // If short enough, use the complete name
- if ( filename.length() <= maxLength )
- return filename;
-
- // Break up the path into each directory name components
- // (a leading '/' will give an empty first component)
- String[] components = filename.split(File.separator);
- // If just a simple name with no path, just return the filename
- if ( components.length < 2 )
- return filename;
-
- // Initialize to "..." + File.separator + final_name
- int numPre = 0;
- int numPost = 1;
- int firstPost = components.length - 1;
- int accumLength = components[firstPost].length() + 4;
-
- // If this shortest name is no shorter than the full filename, return the full filename
- if ( filename.length() <= accumLength )
- return filename;
-
- // Construct the truncated name
- while ( (numPre + numPost < components.length) && (accumLength < maxLength) ) {
- if (numPre <= numPost ) {
- accumLength += components[numPre].length() + 1;
- if ( accumLength <= maxLength ) {
- numPre += 1;
- }
- }
- else {
- accumLength += components[firstPost - 1].length() + 1;
- if ( accumLength <= maxLength ) {
- firstPost -= 1;
- numPost += 1;
- }
- }
- }
-
- // Build the new truncated pathname
- StringBuilder strBuilder = new StringBuilder();
- for (int k = 0; k < numPre; k++) {
- strBuilder.append(components[k]);
- strBuilder.append(File.separator);
- }
- strBuilder.append("...");
- for (int k = firstPost; k < components.length; k++) {
- strBuilder.append(File.separator);
- strBuilder.append(components[k]);
- }
-
- return strBuilder.toString();
- }
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanner.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanner.java
deleted file mode 100644
index 72ddaa8..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocalDirTreeScanner.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-
-import javax.swing.SwingWorker;
-
-import thredds.catalog.InvCatalogImpl;
-import thredds.catalog.InvDataset;
-import thredds.catalog.InvDatasetImpl;
-import thredds.catalog.InvService;
-import thredds.catalog.ServiceType;
-
-/**
- * Scanner for a local directory to generate a complete catalog of the tree implemented as a SwingWorker.
- * Calling the execute on this SwingWorker will generate a complete catalog of the directory tree rooted
- * at the local directory given in the constructor that pass the file filter given in the constructor.
- * This catalog can then be retrieved by the get method. Progress is based on the percentage of the number
- * of entries in the root directory, possibly plus its immediate subdirectories, that have been examined.
- * Progress is reported (as with all SwingWorkers) by firing PropertyChange events with the property name
- * "progress" and a new value in [0,100]. The currently directory being examined is reported by firing
- * PropertyChange events with the property name "Directory" and the File object representing the directory
- * as the new value.
- *
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocalDirTreeScanner extends SwingWorker<InvCatalogImpl, File> {
- /** root of the local directory tree to scan */
- private File localDir;
- /** filter for the files/directories added to the catalog; can be null */
- private FileFilter datasetFilter;
- /** the progress total number of files/directories in localDir and its subdirectory passing the file filter */
- private int numToExamine;
- /** the subdirectory depth to count entries for progress */
- private int countDepth;
- /** the progress examined number of files/directories in localDir and its subdirectory passing the file filter */
- private int numExamined;
- /** the actual number of files/directories under localDir in the catalog */
- private int actualCount;
-
-
- /**
- * Create a scanner/catalog builder ready to scan the local directory tree rooted at localDir
- * @param localDir local root directory of the tree to scan
- * @param datasetFilter filter for the files/directories added to the catalog;
- * can be null, in which case all files/directories are added
- * @throws IOException if localDir is not a valid directory
- */
- public LocalDirTreeScanner(File localDir, FileFilter datasetFilter) throws IOException {
- if ( ! localDir.isDirectory() )
- throw new IOException("Not a valid local directory: " + localDir.getPath());
- this.localDir = localDir;
- this.datasetFilter = datasetFilter;
- numToExamine = 0;
- countDepth = 0;
- numExamined = 0;
- actualCount = 0;
- }
-
- /**
- * Generate a complete catalog of the directory tree rooted at the local
- * directory given in the constructor of this class.
- */
- @Override
- protected InvCatalogImpl doInBackground() throws Exception {
- // Send notice that we are examining the local tree root directory
- setProgress(0);
- publish(localDir);
-
- // Initial the progress variables
- computeNumToExamine();
- numExamined = 0;
- if ( isCancelled() )
- return null;
-
- // Create the service for the catalog and datasets
- InvService service = new InvService("file:", ServiceType.FILE.toString(), "file:", null, null);
-
- // Create a new catalog
- InvCatalogImpl catalog = new InvCatalogImpl(localDir.getPath(), null, localDir.toURI());
- catalog.addService(service);
-
- // Create the top-level dataset. Since an access will be created in finish()
- // for each dataset with a URI path, don't add URI paths to directories
- InvDatasetImpl topDataset = new LocalDirInvDatasetImpl(null, localDir.getName(), service.getName());
- topDataset.setID(localDir.getPath());
- topDataset.setCatalog(catalog);
-
- // Recurse into the tree, adding InvDatasetImpl objects to the datasets field
- addContentDatasets(topDataset, localDir, datasetFilter, service, 0);
- if ( isCancelled() )
- return null;
- // Send notice that we are back to the root of the local directory tree
- publish(localDir);
-
- // Add this dataset to the catalog
- catalog.addDataset(topDataset);
-
- // Finish construction of the catalog
- if ( ! catalog.finish() )
- throw new IOException("Unable to finish construction of the catalog from " + localDir.getPath());
-
- // Set the progress value to complete
- setProgress(100);
-
- return catalog;
- }
-
- /**
- * Using the local directory tree root and file filter used in the construction of this object,
- * assigns numToExamine and countDepth appropriately. The value of numToExamine will be the
- * one (for the root directory) plus the number of files and directories in this root directory,
- * possibly plus the number of file and directories in the immediate subdirectories of this root
- * directory. The value of countDepth will be one (if only subdirectories of the root directory
- * is counted) or two (if subdirectories of these directories are also counted).
- * @throws IOException if localDir cannot be examined
- */
- private void computeNumToExamine() throws IOException {
- numToExamine = 1;
-
- // Get the number of entries in localDir
- File[] dirArray = localDir.listFiles(datasetFilter);
- if ( dirArray == null )
- throw new IOException("Unable to examine " + localDir.getPath());
- numToExamine += dirArray.length;
-
- // Decide whether to stop at this level or go into its subdirectories
- if ( numToExamine >= 20 ) {
- countDepth = 1;
- return;
- }
-
- for (File subDir : dirArray) {
- if ( subDir.isDirectory() ) {
- if ( isCancelled() )
- return;
-
- // Add the number of entries in this subdirectory of localDir
- try {
- File[] subDirArray = subDir.listFiles(datasetFilter);
- if ( subDirArray != null ) {
- numToExamine += subDirArray.length;
- }
- } catch (Exception e) {
- ; // don't care
- }
- }
- }
- countDepth = 2;
- }
-
- /**
- * Adds datasets to parentDataset for each file/directory in parentDir that passes the filter.
- * When subdirectories are encountered, this method calls itself with the subdirectory dataset
- * and subdirectory File, thus filling out the full directory tree rooted at parentDir.
- * @param parentDataset add new child datasets to this dataset
- * @param parentDir directory to examine
- * @param datasetFilter filter on the files/directories to be added to the catalog.
- * If null, all files/directories are added.
- * @param serviceName service name to be added to the InvDatasetImpl objects created
- * @param level the recursion level
- * @throws IOException if any of the file system operations throws one or if parentDir
- * is unable to be read
- */
- private void addContentDatasets(InvDatasetImpl parentDataset, File parentDir, FileFilter datasetFilter,
- InvService service, int level) throws IOException {
- // Get the list of files and directories in this directory
- File[] contentsArray = null;
- try {
- contentsArray = parentDir.listFiles(datasetFilter);
- } catch (SecurityException e) {
- ; // if don't have permission to read the directory, leave contentsArray null
- }
-
- // If there was a problem getting the contents of this directory, or it is empty, just go continue on to the next item
- if ( (contentsArray == null) || (contentsArray.length == 0) ) {
- return;
- }
- actualCount += contentsArray.length;
-
- // Sort the array of files and directories
- if ( contentsArray.length > 1 ) {
- List<File> contentsList = Arrays.asList(contentsArray);
- Collections.sort(contentsList);
- }
-
- // Add to the parent's datasets array a dataset for each file/dir returned
- List<InvDataset> datasets = parentDataset.getDatasets();
- for (File child : contentsArray) {
- if ( isCancelled() )
- return;
- if ( child.isDirectory() ) {
- InvDatasetImpl childDataset;
- // Limited the level of recursion (mainly for infinite loops from symbolic links)
- if ( level < 16 ) {
- // Send notice of the new directory being examine
- publish(child);
- // Create the dataset with a null urlPath argument so no access created
- childDataset = new LocalDirInvDatasetImpl(parentDataset, child.getName(), service.getName());
- childDataset.setID(child.getPath());
- // Add the contents of this directory
- addContentDatasets(childDataset, child, datasetFilter, service, level + 1);
- // Send notice that we are back to the parent directory
- publish(parentDir);
- }
- else {
- // Create the dataset with a null urlPath argument so no access created
- childDataset = new LocalDirInvDatasetImpl(parentDataset, child.getName() + " (not examined)", service.getName());
- childDataset.setID(child.getPath());
- }
- // Add this dataset to the parent's dataset
- datasets.add(childDataset);
- }
- else {
- // Get the URI string
- String uriPathString = child.toURI().toString();
- // Remove the base string from the service
- String serviceBaseString = service.getBase();
- if ( ! uriPathString.startsWith(serviceBaseString) )
- throw new IOException("Unexpected URI string of child: " + uriPathString + "\n" +
- "under service URI string: " + serviceBaseString);
- uriPathString = uriPathString.substring(serviceBaseString.length());
- // Create the dataset with this urlPath argument so an appropriate access is created
- InvDatasetImpl childDataset = new InvDatasetImpl(parentDataset, child.getName(), null, service.getName(), uriPathString);
- childDataset.setID(child.getPath());
- childDataset.setDataSize(child.length());
- childDataset.setLastModifiedDate(new Date(child.lastModified()));
- // Add this dataset to the parent's dataset
- datasets.add(childDataset);
- }
- if ( level < countDepth ) {
- // Update the progress
- numExamined += 1;
- setProgress((100 * numExamined) / numToExamine);
- }
- }
- }
-
- /**
- * @return the total number of entries in the returned catalog. If canceled,
- * the total number of entries examined prior to cancellation.
- */
- public int getNumCatalogEntries() {
- return actualCount;
- }
-
- /**
- * Receives a lists of the directory Files that have been examined.
- * A method generates a PropertyChange event with the name "Directory"
- * and a new value of the last File in the list.
- */
- @Override
- protected void process(List<File> fileList) {
- firePropertyChange("Directory", null, fileList.get(fileList.size() - 1));
- }
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelector.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelector.java
deleted file mode 100644
index fecc529..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelector.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.io.File;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Collection;
-import java.util.Vector;
-
-import javax.swing.JOptionPane;
-
-import ucar.util.prefs.PreferencesExt;
-
-/**
- * Maintains locations and filename extensions for a ThreddsBrowser. Prompts the user for selecting
- * a location and, if applicable, filename extensions of datasets to be displayed in a ThreddsBrowser.
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocationSelector {
-
- /** the ThreddsBrowser associated with this location selector */
- private ThreddsBrowser tBrowser;
-
- /** list of saved locations */
- private Vector<String> savedLocations;
-
- /** Default directory for the local directory file chooser */
- private File localBrowseDir;
-
- /** A comma/semicolon/space separated list of acceptable filename extensions for local datasets */
- private String extensionsString;
-
- /**
- * Maintains locations and filename extensions for the given ThreddsBrowser. Prompts the user for selecting
- * a location and, if applicable, filename extensions of datasets to be displayed in this ThreddsBrowser.
- */
- public LocationSelector(ThreddsBrowser tBrowser) {
- if ( tBrowser == null )
- throw new NullPointerException("null ThreddsBrowser given to the LocationSelector constructor");
- this.tBrowser = tBrowser;
- savedLocations = null;
- localBrowseDir = null;
- extensionsString = null;
- }
-
- /**
- * Reset the default values in the browser to those given in the BrowserDefaults.
- * @param defs the BrowserDefaults to use; cannot be null
- */
- public void resetDefaults(BrowserDefaults defs) {
- // Set the saved locations
- Collection<String> locations = defs.getLocationStrings();
- if ( savedLocations == null ) {
- savedLocations = new Vector<String>(locations);
- }
- else {
- savedLocations.removeAllElements();
- savedLocations.addAll(locations);
- }
-
- // Get the directory for the local directory file chooser
- localBrowseDir = defs.getLocalBrowseDir();
-
- // Get the string of acceptable filename extensions for displayed datasets
- extensionsString = defs.getExtensionsString();
- }
-
- /**
- * Save all the current settings of this ThreddsBrowser to prefs.
- */
- public void savePreferences(PreferencesExt prefs) {
- // Save the list of locations
- if ( savedLocations != null )
- BrowserDefaults.saveLocationsList(prefs, savedLocations);
-
- // Save the default directory for the local directory file chooser
- if ( localBrowseDir != null )
- BrowserDefaults.saveLocalBrowseDir(prefs, localBrowseDir);
-
- // Save the standard String of extensions
- if ( extensionsString != null )
- BrowserDefaults.saveExtensionsString(prefs, extensionsString);
- }
-
- /**
- * Request a new location to be displayed in the associated ThreddsBrowser.
- * If args is not null and not empty, uses args[0] as the new location to be shown;
- * otherwise, brings up a dialog prompting the user to select a new location.
- * The location can be a URI string, URL string, or local directory pathname.
- * If the location is a local directory, the user will then be prompted for the
- * filename extensions of datasets to display.
- */
- public void selectLocation(String [] args) {
- // Get the location to be shown from the arguments, if given
- String location = null;
- if ( (args != null) && (args.length > 0) ) {
- location = args[0].trim();
- if ( location.isEmpty() )
- location = null;
- }
-
- // If arguments not given or the first argument is blank, prompt the user for the location
- if ( location == null ) {
- LocationSelectorDialog selectorDialog = new LocationSelectorDialog(tBrowser, savedLocations, localBrowseDir);
- location = selectorDialog.selectLocation();
- selectorDialog.dispose();
- }
- // Just return if user canceled out of the dialog
- if ( location == null )
- return;
-
- // Add/move this location to the top of the saved list.
- if ( savedLocations == null )
- savedLocations = new Vector<String>();
- else
- savedLocations.remove(location);
- savedLocations.add(0, location);
-
- // Create a URI from the given location string
- URI uri;
- try {
- uri = new URI(location);
- } catch (URISyntaxException e) {
- // If problems, assume this is a local file pathname
- File locFile = new File(location);
- uri = locFile.toURI();
- }
-
- // Check if local directory or a Thredds server
- String scheme = uri.getScheme();
- if ( (scheme == null) || "file".equals(scheme) ) {
- // Save this new default location for the local file browser
- localBrowseDir = new File(uri.getPath());
- // Get the filename extensions of datasets in this local directory
- String newExtensions = JOptionPane.showInputDialog(tBrowser, "Show datasets with the filename extension\n" +
- "(give none to show all files):", extensionsString);
- // Just return if user canceled out of the dialog
- if ( newExtensions == null )
- return;
- // Clean and save the new extensions
- Collection<String> extsColl = BrowserDefaults.parseExtensionsString(newExtensions);
- extensionsString = BrowserDefaults.createExtensionsString(extsColl);
- // Show the datasets in this local directory
- tBrowser.showLocalLocation(localBrowseDir, new ExtensionFileFilter(extsColl));
- }
- else {
- // Show the datasets from this Thredds server
- tBrowser.showThreddsServerLocation(location);
- }
- }
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelectorDialog.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelectorDialog.java
deleted file mode 100644
index 732d832..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/LocationSelectorDialog.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.awt.Component;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.io.File;
-import java.util.Vector;
-
-import javax.swing.Box;
-import javax.swing.ButtonGroup;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JDialog;
-import javax.swing.JFileChooser;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-import javax.swing.JSeparator;
-import javax.swing.JTextField;
-import javax.swing.WindowConstants;
-
-/**
- * Dialog for selecting a location to display in a ThreddsBrowser.
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class LocationSelectorDialog extends JDialog implements ActionListener, FocusListener {
- private static final long serialVersionUID = 5072476287316578226L;
-
- /** Radio button for using the saved locations combo box */
- private JRadioButton savedLocsButton;
- /** Combo box of saved locations */
- private JComboBox savedLocsComboBox;
- /** Radio button for using the new location text field */
- private JRadioButton newLocButton;
- /** Text field for entering a new location */
- private JTextField newLocTextField;
- /** Radio button for selecting the root of a local directory tree */
- private JRadioButton localDirTreeButton;
- /** Select button to dismiss the dialog, using the selected location */
- private JButton selectButton;
- /** Cancel button to dismiss the dialog without selecting a location */
- private JButton cancelButton;
- /** Last radio button selected */
- private JRadioButton lastSelectedRadioButton;
- /** Default for the local directory file selector */
- private File localBrowseDir;
-
- /**
- * Creates, but does not bring up, a LocationSelectorDialog with the given parameters.
- * Use the selectLocation method to bring up the dialog and retrieve the location to use.
- * @param parent create the dialog in the Frame for this component; can be null.
- * @param savedLocations use these locations for the drop-down list of saved locations;
- * can be null or empty.
- * @param localBrowseDir use this directory as the default root of the local
- * directory tree; can be null.
- */
- public LocationSelectorDialog(Component parent, Vector<String> savedLocations, File localBrowseDir) {
- super(JOptionPane.getFrameForComponent(parent), "Select a Location to Display", true);
- this.localBrowseDir = localBrowseDir;
-
- setLayout(new GridBagLayout());
- GridBagConstraints gbc = new GridBagConstraints();
- gbc.anchor = GridBagConstraints.NORTHWEST;
-
- // Label for the radio buttons
- gbc.gridx = 0; gbc.gridy = 0;
- gbc.gridwidth = 2; gbc.gridheight = 1;
- gbc.weightx = 0.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.NONE;
- gbc.insets = new Insets(10,10,10,10);
- add(new JLabel("Select a location to display in the browser:"), gbc);
-
- // Radio button for the drop-down list of saved locations
- savedLocsButton = new JRadioButton("Saved locations:");
- savedLocsButton.setFocusPainted(false);
- savedLocsButton.addActionListener(this);
- gbc.gridx = 0; gbc.gridy = 1;
- gbc.gridwidth = 1; gbc.gridheight = 1;
- gbc.weightx = 0.0; gbc.weighty = 1.0;
- gbc.fill = GridBagConstraints.VERTICAL;
- gbc.insets = new Insets(6,10,6,5);
- add(savedLocsButton, gbc);
-
- // JComboBox of the saved locations
- if ( savedLocations != null )
- savedLocsComboBox = new JComboBox(savedLocations);
- else
- savedLocsComboBox = new JComboBox();
- savedLocsComboBox.setEditable(false);
- savedLocsComboBox.addActionListener(this);
- savedLocsComboBox.addFocusListener(this);
- gbc.gridx = 1; gbc.gridy = 1;
- gbc.gridwidth = 1; gbc.gridheight = 1;
- gbc.weightx = 1.0; gbc.weighty = 1.0;
- gbc.fill = GridBagConstraints.BOTH;
- gbc.insets = new Insets(5,5,5,10);
- add(savedLocsComboBox, gbc);
-
- // Radio button for entering a new location in a TextField
- newLocButton = new JRadioButton("New location:");
- newLocButton.setFocusPainted(false);
- newLocButton.addActionListener(this);
- gbc.gridx = 0; gbc.gridy = 2;
- gbc.gridwidth = 1; gbc.gridheight = 1;
- gbc.weightx = 0.0; gbc.weighty = 1.0;
- gbc.fill = GridBagConstraints.VERTICAL;
- gbc.insets = new Insets(5,10,5,5);
- add(newLocButton, gbc);
-
- // JTextField to enter a new location
- newLocTextField = new JTextField(40);
- newLocTextField.addFocusListener(this);
- gbc.gridx = 1; gbc.gridy = 2;
- gbc.gridwidth = 1; gbc.gridheight = 1;
- gbc.weightx = 1.0; gbc.weighty = 1.0;
- gbc.fill = GridBagConstraints.BOTH;
- gbc.insets = new Insets(5,5,5,10);
- add(newLocTextField, gbc);
-
- // Radio button to select the root directory of a local directory tree
- localDirTreeButton = new JRadioButton("Find a local directory to be the root of a tree of datasets ...");
- localDirTreeButton.setFocusPainted(false);
- localDirTreeButton.addActionListener(this);
- gbc.gridx = 0; gbc.gridy = 3;
- gbc.gridwidth = 2; gbc.gridheight = 1;
- gbc.weightx = 1.0; gbc.weighty = 1.0;
- gbc.fill = GridBagConstraints.BOTH;
- gbc.insets = new Insets(5,10,5,10);
- add(localDirTreeButton, gbc);
-
- // Group these radio buttons
- ButtonGroup radioGroup = new ButtonGroup();
- radioGroup.add(savedLocsButton);
- radioGroup.add(newLocButton);
- radioGroup.add(localDirTreeButton);
-
- // Separator between the radio buttons and the select/cancel buttons
- gbc.gridx = 0; gbc.gridy = 4;
- gbc.gridwidth = 2; gbc.gridheight = 1;
- gbc.weightx = 1.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(5,0,5,0);
- add(new JSeparator(), gbc);
-
- // Create a horizontal panel with Select and Cancel buttons equally spaced
- JPanel horizPanel = new JPanel(new GridLayout(1,0));
- // Horizontal space
- horizPanel.add(Box.createHorizontalGlue());
- // Select button
- selectButton = new JButton("Select");
- selectButton.setFocusPainted(false);
- selectButton.addActionListener(this);
- horizPanel.add(selectButton);
- // Horizontal space
- horizPanel.add(Box.createHorizontalGlue());
- // Cancel button
- cancelButton = new JButton("Cancel");
- cancelButton.setFocusPainted(false);
- cancelButton.addActionListener(this);
- horizPanel.add(cancelButton);
- // Horizontal space
- horizPanel.add(Box.createHorizontalGlue());
-
- // Add the horizontal panel
- gbc.gridx = 0; gbc.gridy = 5;
- gbc.gridwidth = 2; gbc.gridheight = 1;
- gbc.weightx = 1.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(5,10,10,10);
- add(horizPanel, gbc);
-
- // Final touches to the dialog
- getRootPane().setDefaultButton(selectButton);
- pack();
- setLocationRelativeTo(parent);
-
- // Treat the dialog close ("X") button the same as the cancel button
- setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
- addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosing(WindowEvent evt) {
- cancelButton.doClick();
- }
- });
-
- }
-
- /**
- * Display this LocationSelectorDialog and retrieve the location to use.
- * @return the selected location as a trimmed, non-empty String,
- * or null if the user canceled the dialog.
- */
- public String selectLocation() {
- // Set the saved locations radio button as the default
- savedLocsButton.doClick();
-
- // Because this dialog is modal, the following will block
- // (but still allow event processing) until this dialog is dismissed
- setVisible(true);
-
- // Get the value associated with the last selected radio button
- String selectedLocation = null;
- if ( lastSelectedRadioButton == savedLocsButton ) {
- // Get the location from the saved locations combo box
- selectedLocation = (String) savedLocsComboBox.getSelectedItem();
- }
- else if ( lastSelectedRadioButton == newLocButton ) {
- // Get the location from the new location text field
- selectedLocation = newLocTextField.getText();
- }
- else if ( lastSelectedRadioButton == localDirTreeButton ) {
- // Create a file chooser opened to the default local directory
- JFileChooser chooser = new JFileChooser(localBrowseDir);
-
- // Customize the file chooser for directories
- chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
- chooser.setDialogTitle("Directory to be Root of a Local Dataset Tree");
- chooser.setApproveButtonToolTipText("Use the selected directory as the root of a local dataset tree");
-
- // Ugly hack to rename the label "File Name:" to "Selected Dir:" and
- // to get rid of the file filter panel with the label "Files of Type:".
- // This will fail in locales that do not use exactly these strings
- // or if these components are not nested in JPanels.
- // More stuff might be removed if the file filter label and combo box
- // are not in their own JPanel.
- for ( Component comp : chooser.getComponents() ) {
- checkComponentForFileLabel(comp);
- }
-
- // Get the selected directory
- if ( chooser.showDialog(this, "Use Selected Dir") == JFileChooser.APPROVE_OPTION ) {
- localBrowseDir = chooser.getSelectedFile();
- selectedLocation = localBrowseDir.getPath();
- }
- }
-
- // Trim the location; if blank, set to null
- if ( selectedLocation != null ) {
- selectedLocation = selectedLocation.trim();
- if ( selectedLocation.isEmpty() )
- selectedLocation = null;
- }
-
- // Return the selected location, which will be null if a dialog was canceled
- return selectedLocation;
- }
-
- /**
- * If comp is a JLabel with text "File Name:", change the text to "Selected Dir:";
- * if comp is a JLabel with text "Files of Type:", remove the JPanel that contains
- * this component from it's JPanel; otherwise, if comp is a JPanel, call this
- * function on each of its components.
- */
- private int checkComponentForFileLabel(Component comp) {
- if ( JLabel.class.isInstance(comp) ) {
- JLabel label = (JLabel) comp;
- if ( "File Name:".equals(label.getText()) ) {
- // Rename this label and continue on
- label.setText("Selected Dir:");
- }
- else if ( "Files of Type:".equals(label.getText()) ) {
- // This is the file filter label
- return 1;
- }
- }
- else if ( JPanel.class.isInstance(comp) ) {
- JPanel panel = (JPanel) comp;
- for ( Component panelComp : panel.getComponents() ) {
- int level = checkComponentForFileLabel(panelComp);
- if ( level == 2 ) {
- // Remove this panel component (which contains the file filter label) from this panel
- panel.remove(panelComp);
- return 0;
- }
- if ( level == 1 ) {
- // This is the panel containing the file filter label
- return 2;
- }
- }
- }
- return 0;
- }
-
- /**
- * If from a radio button, records this currently selected radio button.
- * If from a component associated with a radio button, makes sure the associated
- * radio button is selected.
- * If from the select button, closes this dialog.
- * If from the cancel button, sets the currently selected radio button to null
- * and closes this dialog.
- */
- @Override
- public void actionPerformed(ActionEvent evt) {
- Object src = evt.getSource();
- if ( src == savedLocsButton ) {
- // Record that the saved locations radio button was selected
- lastSelectedRadioButton = savedLocsButton;
- }
- else if ( src == newLocButton ) {
- // Record that the new location radio button was selected
- lastSelectedRadioButton = newLocButton;
- }
- else if ( src == localDirTreeButton ) {
- // Record that the local directory tree radio button was selected
- lastSelectedRadioButton = localDirTreeButton;
- }
- else if ( src == savedLocsComboBox ) {
- // Put the selected location into the new location text field
- String location = (String) savedLocsComboBox.getSelectedItem();
- newLocTextField.setText(location);
- // Make sure the saved locations radio button is selected
- if ( lastSelectedRadioButton != savedLocsButton )
- savedLocsButton.doClick();
- }
- else if ( src == selectButton ) {
- // Close the dialog so selectLocation can proceed,
- // leaving lastActionCommand as-is to indicate how to proceed.
- setVisible(false);
- }
- else if ( src == cancelButton ) {
- // Set lastSelectedRadioButton to indicate the dialog was canceled
- // and close the dialog so selectLocation can proceed.
- lastSelectedRadioButton = null;
- setVisible(false);
- }
- else {
- System.out.println("unhandled action event: " + evt);
- System.out.println("coming from: " + src);
- }
- }
-
- /**
- * Makes sure the radio button associated with the component gaining focus is selected.
- */
- @Override
- public void focusGained(FocusEvent evt) {
- Object src = evt.getSource();
- if ( src == newLocTextField ) {
- // Make sure the new location radio button is selected
- if ( lastSelectedRadioButton != newLocButton )
- newLocButton.doClick();
- }
- else if ( src == savedLocsComboBox ) {
- // Make sure the saved locations radio button is selected
- if ( lastSelectedRadioButton != savedLocsButton )
- savedLocsButton.doClick();
- }
- else {
- System.out.println("unhandled focusGained event: " + evt);
- System.out.println("coming from: " + src);
- }
- }
-
- /**
- * Does nothing.
- */
- @Override
- public void focusLost(FocusEvent evt) {
- ; // don't care
- }
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowser.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowser.java
deleted file mode 100644
index 3a7f2cb..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowser.java
+++ /dev/null
@@ -1,606 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.net.URI;
-import java.util.List;
-
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JSplitPane;
-import javax.swing.SwingConstants;
-import javax.swing.SwingUtilities;
-import javax.swing.event.HyperlinkEvent;
-import javax.swing.event.HyperlinkListener;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-
-import thredds.catalog.InvAccess;
-import thredds.catalog.InvCatalogImpl;
-import thredds.catalog.InvDatasetImpl;
-import thredds.catalog.ui.CatalogTreeView;
-import ucar.util.prefs.PreferencesExt;
-
-/**
- * Creates a THREDDS catalog browser for simple selection of a dataset.
- * Uses a UCAR/Unidata CatalogTreeView to do much of the work.
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class ThreddsBrowser extends JPanel {
- private static final long serialVersionUID = -6448720995067592662L;
-
- /** Default locations environment variable - used for reset */
- private String defLocsEnvName;
-
- /** Original BrowserDefaults - used for reset */
- private BrowserDefaults initialDefaults;
-
- /** JLabel showing the currently displayed location */
- private JLabel locationLabel;
-
- /** Tree view of the catalog or file system */
- private CatalogTreeView treeViewer;
-
- /** Display of information on the selected dataset */
- private HTMLViewer htmlViewer;
-
- /** JSplitPane containing treeViewer and htmlViewer */
- private JSplitPane splitPanel;
-
- /** The "USE" button */
- private JButton useButton;
-
- /** The "Cancel" button */
- private JButton cancelButton;
-
- /** Use for location selection preferences and dialog */
- private LocationSelector locationSelector;
-
- /** Current selected dataset URL */
- private String datasetName;
-
- /** JLabel displaying the currently selected dataset */
- private JLabel datasetLabel;
-
- /**
- * Create a THREDDS catalog browser for simple selection of a dataset.
- * @param prefs the default preference settings for this ThreddsBrowers;
- * @param defaultLocationsEnvName the name of the locations environment variable
- * whose value is a space-separated list of possibly-quoted locations. May be
- * null. These locations, if not already given in prefs, will appear in
- * order at the bottom of the drop-down list.
- */
- public ThreddsBrowser(PreferencesExt prefs, String defaultLocationsEnvName) {
- // Get the defaults
- defLocsEnvName = defaultLocationsEnvName;
- initialDefaults = new BrowserDefaults(prefs, defLocsEnvName);
-
- // Use a grid bag layout in this JPanel
- setLayout(new GridBagLayout());
- GridBagConstraints gbc = new GridBagConstraints();
- gbc.anchor = GridBagConstraints.NORTHWEST;
-
- // Intro label for the location
- JLabel locationIntroLabel = new JLabel("Contents of location:");
- gbc.gridx = 0; gbc.gridy = 0;
- gbc.gridwidth = 2; gbc.gridheight = 1;
- gbc.weightx = 0.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(15,10,10,2);
- add(locationIntroLabel, gbc);
-
- // JLabel showing the currently displayed location
- locationLabel = new JLabel(" ", SwingConstants.LEFT);
- gbc.gridx = 2; gbc.gridy = 0;
- gbc.gridwidth = 1; gbc.gridheight = 1;
- gbc.weightx = 1.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(15,2,10,5);
- add(locationLabel, gbc);
-
- // Change location button to open LocationSelectorDialog
- JButton changeLocationButton = new JButton("Change Location...");
- changeLocationButton.setFocusPainted(false);
- changeLocationButton.setToolTipText("Select a different location to display below");
- gbc.gridx = 3; gbc.gridy = 0;
- gbc.gridwidth = 2; gbc.gridheight = 1;
- gbc.weightx = 0.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(10,5,5,10);
- add(changeLocationButton, gbc);
-
- // CatalogTreeView for viewing the catalog or directory tree
- treeViewer = new CatalogTreeView();
-
- // HTMLViewer displaying information on the selected dataset
- htmlViewer = new HTMLViewer();
-
- // JSplitPane containing the above treeViewer on the left and htmlViewerScrollPane on the right
- splitPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false, treeViewer, htmlViewer);
- gbc.gridx = 0; gbc.gridy = 1;
- gbc.gridwidth = 5; gbc.gridheight = 1;
- gbc.weightx = 1.0; gbc.weighty = 1.0;
- gbc.fill = GridBagConstraints.BOTH;
- gbc.insets = new Insets(5,10,5,10);
- add(splitPanel, gbc);
-
- // USE button to output the current dataset and close
- useButton = new JButton("Use dataset:");
- useButton.setFocusPainted(false);
- useButton.setToolTipText("Use the selected dataset and exit this browser");
- gbc.gridx = 0; gbc.gridy = 2;
- gbc.gridwidth = 1; gbc.gridheight = 1;
- gbc.weightx = 0.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(5,10,10,2);
- add(useButton, gbc);
-
- // JLabel with the current selected dataset name
- datasetName = " ";
- datasetLabel = new JLabel(datasetName, SwingConstants.LEFT);
- datasetLabel.setToolTipText("The currently selected dataset");
- gbc.gridx = 1; gbc.gridy = 2;
- gbc.gridwidth = 2; gbc.gridheight = 1;
- gbc.weightx = 1.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(10,2,15,5);
- add(datasetLabel, gbc);
-
- // Reset button to reset the default settings
- JButton resetButton = new JButton("Reset");
- resetButton.setFocusPainted(false);
- resetButton.setToolTipText("Reset this browser with default settings");
- gbc.gridx = 3; gbc.gridy = 2;
- gbc.gridwidth = 1; gbc.gridheight = 1;
- gbc.weightx = 0.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(5,5,10,5);
- add(resetButton, gbc);
-
- // Cancel button to close without output of a dataset name
- cancelButton = new JButton("Cancel");
- cancelButton.setFocusPainted(false);
- cancelButton.setToolTipText("Exit this browser without designating a dataset to use");
- gbc.gridx = 4; gbc.gridy = 2;
- gbc.gridwidth = 1; gbc.gridheight = 1;
- gbc.weightx = 0.0; gbc.weighty = 0.0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(5,5,10,10);
- add(cancelButton, gbc);
-
- // Create the location selector for this browser
- locationSelector = new LocationSelector(this);
-
- // Set the defaults
- updateLocationLabel(null);
- resetDefaults(initialDefaults);
-
- // Listen for double clicks in the CatalogTreeView
- treeViewer.addPropertyChangeListener(new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent e) {
- String propName = e.getPropertyName();
- if ( "Dataset".equals(propName) || "File".equals(propName) ) {
- // Second click of a double-click on a dataset or file name
- useButton.doClick();
- }
- }
- });
- // Listen for selection changes (mouse clicks or arrow key presses)
- treeViewer.getJTree().addTreeSelectionListener(new TreeSelectionListener() {
- @Override
- public void valueChanged(TreeSelectionEvent e) {
- selectDataset();
- }
- });
-
- // Listen for hyperlink selections in the htmlViewer
- htmlViewer.addHyperlinkListener(new HyperlinkListener() {
- @Override
- public void hyperlinkUpdate(HyperlinkEvent e) {
- if ( e.getEventType() == HyperlinkEvent.EventType.ACTIVATED ) {
- // Don't bother dealing with frames
- try {
- htmlViewer.setPage(e.getURL());
- } catch (Exception exc) {
- ;
- }
- }
- }
- });
-
- // Listen for Change Location... button presses
- changeLocationButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- locationSelector.selectLocation(null);
- }
- });
-
- // Listen for Reset button presses
- resetButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- // Ask which settings to return to
- String[] resetOptions = {"start-up settings", "default settings"};
- String result = (String) JOptionPane.showInputDialog(ThreddsBrowser.this, "Reset to: ",
- "Reset Settings", JOptionPane.INFORMATION_MESSAGE, null,
- resetOptions, resetOptions[0]);
- if ( resetOptions[0].equals(result) ) {
- // start-up settings - use the defaults created in the constructor
- resetDefaults(initialDefaults);
- }
- else if ( resetOptions[1].equals(result) ) {
- // default settings - use defaults from not using a XMLStore/PreferencesExt
- resetDefaults(new BrowserDefaults(null, defLocsEnvName));
- }
- }
- });
- }
-
- /**
- * Forwards the arguments to this browser's {@link LocationSelector#selectLocation} method
- * @param args the arguments; may be null or empty
- */
- public void selectLocation(String[] args) {
- locationSelector.selectLocation(args);
- }
-
- /**
- * Display the THREDDS server catalog at the given URI.
- * @param locationURI the URI of the THREDDS server catalog
- */
- public void showThreddsServerLocation(String locationString) {
- // Update the location displayed in the browser and clear the viewers
- clearViewers();
- updateLocationLabel(locationString);
-
- // Display the location in the tree viewer
- treeViewer.setCatalog(locationString);
- }
-
- /**
- * Create and display a catalog of the given local directory.
- * Before creating the catalog, a dialog is opened requesting
- * the user for filename extensions of datasets to display.
- * @param localDir the local directory to display
- * @param datasetFilter show only files that pass this filter;
- * if null, all files are accepted
- */
- public void showLocalLocation(File localDir, FileFilter datasetFilter) {
- // Create the catalog for this directory
- final LocalDirTreeScanMonitor scanMonitor;
- try {
- scanMonitor = new LocalDirTreeScanMonitor(this, localDir, datasetFilter);
- } catch (IOException e) {
- JOptionPane.showMessageDialog(this, "Unable to catalog " + localDir + "\n" + e.getMessage(),
- "Unable to Catalog", JOptionPane.ERROR_MESSAGE);
- return;
- }
- scanMonitor.addPropertyChangeListener(new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- String propName = evt.getPropertyName();
- if ( "Done".equals(propName) ) {
- // Success - get the local directory tree root and the generated catalog
- File rootDir = (File) evt.getOldValue();
- InvCatalogImpl catalog = (InvCatalogImpl) evt.getNewValue();
-
- // Update the location displayed in the browser and clear the viewers
- clearViewers();
- updateLocationLabel(rootDir.getPath());
-
- // Display the catalog in the tree viewer
- displayLocalCatalog(scanMonitor, catalog);
- }
- else if ( "Canceled".equals(propName) ) {
- // Scan was canceled by the user
- JOptionPane.showMessageDialog(ThreddsBrowser.this, "Scan canceled",
- "Scan Canceled", JOptionPane.ERROR_MESSAGE);
- }
- else if ( "Died".equals(propName) ) {
- // Scan threw an exception
- Throwable cause = (Throwable) evt.getNewValue();
- JOptionPane.showMessageDialog(ThreddsBrowser.this, "Scan died: " + cause.getMessage(),
- "Scan Died", JOptionPane.ERROR_MESSAGE);
- }
- }
- });
- scanMonitor.runScan();
- }
-
- /**
- * Display the local directory tree catalog in treeViewer. This is done in a separate thread in
- * case a very large directory tree is being displayed, which may take quite some time and would
- * make the program appear to be frozen otherwise.
- * @param scanMonitor the monitor used to create the catalog to be displayed
- * (used for obtaining the number of entries in the catalog to determine whether to show a dialog)
- * @param catalog the catalog to be displayed
- */
- private void displayLocalCatalog(LocalDirTreeScanMonitor scanMonitor, final InvCatalogImpl catalog) {
- int numEntries = scanMonitor.getNumCatalogEntries();
-
- // If not many entries, just update the treeViewer in this thread and be done with it
- if ( numEntries < 4096 ) {
- treeViewer.setCatalog(catalog);
- return;
- }
-
- // Put up the modal "working" dialog running in a separate thread
- final Thread dialogThread = new Thread(new Runnable() {
- @Override
- public void run() {
- JOptionPane.showMessageDialog(ThreddsBrowser.this, "Please wait\n" +
- "Displaying the local directory tree\n" +
- "This dialog will go away when done\n" +
- "(Sorry, can't be canceled)",
- "Displaying Local Directory Tree", JOptionPane.INFORMATION_MESSAGE);
- }
- });
- dialogThread.start();
-
- // Update the treeViewer in a separate thread
- new Thread(new Runnable() {
- @Override
- public void run() {
- treeViewer.setCatalog(catalog);
- // Display done - kill the dialog
- dialogThread.interrupt();
- }
- }).start();
- }
-
- /**
- * Updates the label of currently shown location.
- * @param location the new location; can be null or blank for no location given
- */
- private void updateLocationLabel(String location) {
- if ( (location == null) || location.trim().isEmpty() )
- locationLabel.setText("(no location given)");
- else
- locationLabel.setText(location);
- }
-
- /**
- * Clears the shown location label, treeViewer and htmlViewer
- */
- private void clearViewers() {
- treeViewer.getJTree().setModel(new DefaultTreeModel(new DefaultMutableTreeNode(null, false)));
- htmlViewer.clearPage();
- updateLocationLabel(null);
- }
-
- /**
- * Set the currently selected dataset name and show information about it.
- */
- private void selectDataset() {
- // Get the dataset name
- InvDatasetImpl dataset = (InvDatasetImpl) treeViewer.getSelectedDataset();
-
- // Assign datasetName if the selected item is actually a dataset (has an access)
- datasetName = " ";
- if ( dataset != null ) {
- List<InvAccess> accesses = dataset.getAccess();
- if ( accesses.size() > 0 ) {
- URI uri = accesses.get(0).getStandardUri();
- String scheme = uri.getScheme();
- if ( (scheme == null) || "file".equals(scheme) ) {
- // for local datasets, get the path from the dataset ID
- datasetName = dataset.getID();
- }
- else {
- // for remote datasets, show the URI
- datasetName = accesses.get(0).getStandardUrlName();
- }
- }
- }
-
- // Clear the info viewer so there is no mismatch while new info is being created
- htmlViewer.clearPage();
-
- // Show the new dataset name
- datasetLabel.setText(datasetName);
-
- // If actually a dataset, create content in the info viewer
- if ( ! datasetName.trim().isEmpty() ) {
- StringBuilder sbuff = new StringBuilder(2048);
- InvDatasetImpl.writeHtmlDescription(sbuff, dataset, false, true, false, false, true);
- htmlViewer.showHTMLBodyText(sbuff.toString());
- }
- }
-
- /**
- * @return the name of the currently selected dataset,
- * or null is there is no currently selected dataset.
- */
- public String getDatasetName() {
- if ( datasetName.trim().isEmpty() )
- return null;
- return datasetName;
- }
-
- /**
- * Adds the given ActionListener to the "USE" button in the browser
- */
- public void addUseActionListener(ActionListener actionListener) {
- useButton.addActionListener(actionListener);
- }
-
- /**
- * Removes the given ActionListener from the "USE" button in the browser
- */
- public void removeUseActionListener(ActionListener actionListener) {
- useButton.removeActionListener(actionListener);
- }
-
- /**
- * Adds the given ActionListener to the "Cancel" button in the browser
- */
- public void addCancelActionListener(ActionListener actionListener) {
- cancelButton.addActionListener(actionListener);
- }
-
- /**
- * Removes the given ActionListener from the "Cancel" button in the browser
- */
- public void removeCancelActionListener(ActionListener actionListener) {
- cancelButton.removeActionListener(actionListener);
- }
-
- /**
- * Reset the default values in the browser to those given in the BrowserDefaults.
- * @param defs the BrowserDefaults to use; cannot be null
- */
- public void resetDefaults(BrowserDefaults defs) {
- // Reset the values in the location selector dialog
- locationSelector.resetDefaults(defs);
-
- // Set the split pane divider location
- splitPanel.setDividerLocation(defs.getDividerLocation());
-
- // Clear the contents of the viewers
- clearViewers();
-
- // Clear the dataset name
- datasetName = " ";
- datasetLabel.setText(datasetName);
-
- // Set the preferred size of the browser panel
- setPreferredSize(defs.getBrowserSize());
- }
-
- /**
- * Save all the current settings of this ThreddsBrowser to prefs.
- */
- public void savePreferences(PreferencesExt prefs) {
- // Save the location selector dialog settings
- locationSelector.savePreferences(prefs);
-
- // Save the divider location
- BrowserDefaults.saveDividerLocation(prefs, splitPanel.getDividerLocation());
-
- // Save the size of the browser panel
- BrowserDefaults.saveBrowserSize(prefs, getSize());
- }
-
- /**
- * Creates the default filename for a ThreddsBrowser store file.
- * Creates any missing directories in this filename.
- * @return the default filename, or null if unable to create
- * missing directories
- */
- public static String createDefaultStoreFilename() {
- String storeFilename = null;
-
- try {
- // First try Window desired location for application data stores
- // APPDATA not likely to be defined on Unix systems
- storeFilename = System.getenv("APPDATA");
- if ( storeFilename != null ) {
- storeFilename += File.separator + "TMAP";
- }
- } catch (Exception e) {
- ;
- }
-
- if ( storeFilename == null ) {
- // Now try in the user.home directory
- try {
- storeFilename = System.getProperty("user.home");
- if ( storeFilename != null ) {
- storeFilename += File.separator + ".tmap";
- }
- } catch (Exception e) {
- ;
- }
- }
-
- if ( storeFilename == null ) {
- // If all else fails, put it under the current working directory
- storeFilename = ".tmap";
- }
-
- try {
- // Create any missing directory path for the store file
- File storeDir = new File(storeFilename);
- if ( ! storeDir.exists() ) {
- if ( ! storeDir.mkdirs() ) {
- throw new IOException();
- }
- }
-
- // Add the store filename to the path
- storeFilename += File.separator + "ThreddsBrowser.xml";
- } catch (Exception e) {
- storeFilename = null;
- }
-
- return storeFilename;
- }
-
- /**
- * Starts the THREDDS catalog browser. The first argument,
- * if given, is used as the initial catalog URL in the browser.
- */
- public static void main(final String[] args) {
- // Initialize the HTTPClient logger so that it won't complain
- System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
- System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true");
- System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire.header", "fatal");
- System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "fatal");
-
- // Create the GUI in a separate thread managed by Swing
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- ThreddsBrowserListener.createAndShowBrowser(args);
- }
- });
- }
-
-}
diff --git a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowserListener.java b/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowserListener.java
deleted file mode 100644
index 2dc7905..0000000
--- a/threddsBrowser/src/gov/noaa/pmel/ferret/threddsBrowser/ThreddsBrowserListener.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowser;
-
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Point;
-import java.awt.Window;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.net.Authenticator;
-
-import javax.swing.JFrame;
-import javax.swing.JOptionPane;
-
-import opendap.dap.DConnect2;
-
-import org.apache.commons.httpclient.HttpClient;
-
-import thredds.ui.UrlAuthenticatorDialog;
-
-import ucar.nc2.dataset.NetcdfDataset;
-import ucar.nc2.stream.CdmRemote;
-import ucar.nc2.ui.WmsViewer;
-import ucar.nc2.util.net.HttpClientManager;
-import ucar.unidata.io.http.HTTPRandomAccessFile;
-import ucar.util.prefs.PreferencesExt;
-import ucar.util.prefs.XMLStore;
-
-/**
- * A listener for a ThreddsBrowser as well as the Window containing that Browser.
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class ThreddsBrowserListener extends WindowAdapter implements ActionListener {
-
- /** XMLStore key for a Point giving the location of the main Window given to the browser */
- public static final String WINDOW_LOCATION = "WindowLocation";
-
- /** Window containing the ThreddsBrowser to listener for WindowClosing events */
- private Window mainWindow;
-
- /** ThreddsBrowser to listen to for Action events */
- private ThreddsBrowser tBrowser;
-
- /** Whether or not to use the selected dataset name in the ThreddsBrowser when an Action event occurs */
- private boolean useDataset;
-
- /** XMLStore to save the Window Location before closing the Window from either Action or WindowClosing events */
- private XMLStore givenStore;
-
- /**
- * Create a Listener for Action events from a ThreddsBrowser and WindowClosing events from the
- * Window containing that ThreddsBrowser.
- * <ul>
- * <li>Action event if useDataset is true: the dataset name is retrieved from tBrowser and
- * printed as a "USE ..." String to System.out, and the windowClosing method is then called.
- * If no dataset name is selected in tBrowser, an error dialog is posted and no further action
- * is taken.
- * <li>Action event if useDataset is false: the windowClosing method is just called.
- * <li>WindowClosing events (and when the windowClosing method is called from Action events):
- * the current location of mainWindow as well as the setting of tBrowser are saved to the file
- * that is backing givenStore, the window is closed, and the
- * application exits.
- * <ul>
- * @param mainWindow the Window containing tBrowser.
- * @param tBrowser the ThreddsBrowser to use.
- * @param useDataset whether to use the selected dataset from tBrowser.
- * @param givenStore the XMLStore used to save current settings.
- */
- public ThreddsBrowserListener(Window mainWindow, ThreddsBrowser tBrowser, boolean useDataset, XMLStore givenStore) {
- if ( mainWindow == null )
- throw new NullPointerException("null Window given to the ThreddsBrowserListener constructor");
- if ( tBrowser == null )
- throw new NullPointerException("null ThreddsBrowser given to the ThreddsBrowserListener constructor");
- if ( givenStore == null )
- throw new NullPointerException("null XMLStore given to the ThreddsBrowserListener constructor");
- this.mainWindow = mainWindow;
- this.tBrowser = tBrowser;
- this.useDataset = useDataset;
- this.givenStore = givenStore;
- }
-
- /**
- * If useDataset was true in the creation of this Listener, the dataset name is retrieved
- * from the ThreddsBrowser and printed as a "USE ..." to System.out and the application exits.
- * If no dataset name is selected in the ThreddsBrowser, an error dialog is posted and no
- * further action is taken.
- * If useDataset was false, the application just exits.
- */
- @Override
- public void actionPerformed(ActionEvent e) {
- if ( useDataset ) {
- String datasetName = tBrowser.getDatasetName();
- if ( datasetName == null ) {
- JOptionPane.showMessageDialog(tBrowser, "No dataset is selected",
- "No Dataset Selected", JOptionPane.ERROR_MESSAGE);
- return;
- }
- System.out.println("USE \"" + datasetName + "\"");
- System.out.flush();
- }
- windowClosing(null);
- }
-
- /**
- * Saves the current location of the Window as well as the setting of the ThreddsBrowser
- * to the XMLStore used in the creation of this Listener.
- */
- @Override
- public void windowClosing(WindowEvent e) {
- PreferencesExt prefs = givenStore.getPreferences();
-
- // Save the location of main window
- Point location = mainWindow.getLocation();
- prefs.putBeanObject(WINDOW_LOCATION, location);
-
- // Save the ThreddsBrowser's preferences
- tBrowser.savePreferences(prefs);
-
- // Save the store object to the original file
- try {
- givenStore.save();
- } catch ( Exception exc ) {
- ; // don't care
- }
-
- // Close the window and exit the application
- mainWindow.setVisible(false);
- mainWindow.dispose();
- System.exit(0);
- }
-
- /**
- * Creates and displays the ThreddsBrowser as well as initializes the
- * HTTP client. Any arguments given are passed on to the created
- * ThreddsBrowser selectLocation method.
- */
- public static void createAndShowBrowser(final String[] args) {
- // Create the window - leave the default close operation (HIDE_ON_CLOSE)
- // since we are providing a windowClosing event listener that calls System.exit
- JFrame mainFrame = new JFrame("THREDDS Catalog Browser");
- mainFrame.setLayout(new GridBagLayout());
-
- // Get the default givenStore filename
- String storeFilename = ThreddsBrowser.createDefaultStoreFilename();
-
- // Open the givenStore of preferences
- XMLStore store;
- try {
- store = XMLStore.createFromFile(storeFilename, null);
- } catch (Exception e) {
- // Create a read-only empty givenStore
- store = new XMLStore();
- }
- PreferencesExt prefs = store.getPreferences();
-
- // Create the ThreddsBrower and add it to mainFrame
- ThreddsBrowser tBrowser = new ThreddsBrowser(prefs, "FER_DATA_THREDDS");
- GridBagConstraints gbc = new GridBagConstraints();
- gbc.anchor = GridBagConstraints.NORTHWEST;
- gbc.gridx = 0; gbc.gridy = 0;
- gbc.gridwidth = 1; gbc.gridheight = 1;
- gbc.weightx = 1.0; gbc.weighty = 1.0;
- gbc.fill = GridBagConstraints.BOTH;
- mainFrame.add(tBrowser, gbc);
-
- // Show the window
- mainFrame.pack();
- mainFrame.setVisible(true);
-
- // Set the location of the main window
- Point location = (Point) prefs.getBean(WINDOW_LOCATION, null);
- if ( location == null ) {
- location = new Point(50, 50);
- }
- mainFrame.setLocation(location);
-
- // Add a listener for the Use Action events
- tBrowser.addUseActionListener(new ThreddsBrowserListener(mainFrame, tBrowser, true, store));
-
- // Add a listener for Cancel Action events and WindowClosing events
- ThreddsBrowserListener cancelListener = new ThreddsBrowserListener(mainFrame, tBrowser, false, store);
- tBrowser.addCancelActionListener(cancelListener);
- mainFrame.addWindowListener(cancelListener);
-
- // Initialize the URL authenticator and HTTP client manager
- UrlAuthenticatorDialog provider = new UrlAuthenticatorDialog(mainFrame);
- Authenticator.setDefault(provider);
- HttpClient client = HttpClientManager.init(provider, "ThreddsBrowser");
- DConnect2.setHttpClient(client);
- HTTPRandomAccessFile.setHttpClient(client);
- CdmRemote.setHttpClient(client);
- NetcdfDataset.setHttpClient(client);
- WmsViewer.setHttpClient(client);
-
- // Pass the arguments on to the ThreddsBrowser's selectLocation method.
- // This brings up a LocationSelectorDialog if no arguments are given.
- tBrowser.selectLocation(args);
- }
-
-}
diff --git a/threddsBrowser/toolsUI/toolsUI-4.1.jar b/threddsBrowser/toolsUI/toolsUI-4.1.jar
deleted file mode 100644
index 1c84548..0000000
Binary files a/threddsBrowser/toolsUI/toolsUI-4.1.jar and /dev/null differ
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestBrowserDefaults.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestBrowserDefaults.java
deleted file mode 100644
index c753ed8..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestBrowserDefaults.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-import static org.junit.Assume.*;
-
-import gov.noaa.pmel.ferret.threddsBrowser.BrowserDefaults;
-
-import java.awt.Dimension;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-
-import org.junit.Test;
-
-import ucar.util.prefs.PreferencesExt;
-
-/**
- * Tests for {@link BrowserDefaults}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestBrowserDefaults {
-
- /**
- * Test method for {@link BrowserDefaults#BrowserDefaults(PreferencesExt, String)}.
- */
- @Test
- public void testBrowserDefaults() {
- // Test the (null,null) constructor
- BrowserDefaults defs = new BrowserDefaults(null, null);
- assertNotNull("BrowserDefaults(null,null)", defs);
- Collection<String> locs = defs.getLocationStrings();
- assertEquals("number of initial locations from (null,null)", 0, locs.size());
- int defDividerLoc = defs.getDividerLocation();
- assertTrue("divider location from (null,null) > 50", defDividerLoc > 50);
- File localDir = defs.getLocalBrowseDir();
- assertEquals("local browse directory from (null,null)", null, localDir);
- String defExtsString = defs.getExtensionsString();
- assertNotNull("extensions string from (null,null) not null", defExtsString);
- Dimension defSize = defs.getBrowserSize();
- assertNotNull("browser size from (null,null) not null", defSize);
-
- // Test the constructor with an undefined environment variable
- String envName = "JUNK498523851498";
- String envVal = System.getenv(envName);
- assertNull("made-up bizzare environment variable exists!", envVal);
- defs = new BrowserDefaults(null, envName);
- assertNotNull("BrowserDefaults(null," + envName + ")", defs);
- locs = defs.getLocationStrings();
- assertEquals("number of initial locations from (null," + envName + ")", 0, locs.size());
- int dividerLoc = defs.getDividerLocation();
- assertEquals("divider location from (null," + envName + ")", defDividerLoc, dividerLoc);
- localDir = defs.getLocalBrowseDir();
- assertEquals("local browse directory from (null," + envName + ")", null, localDir);
- String extsString = defs.getExtensionsString();
- assertEquals("extensions string from (null," + envName + ")", defExtsString, extsString);
- Dimension size = defs.getBrowserSize();
- assertEquals("browser size from (null," + envName + ")", defSize, size);
- }
-
- /**
- * Test method for {@link BrowserDefaults#saveLocationsList(PreferencesExt, List<String>)}
- * and {@link BrowserDefaults#getLocationStrings()} without using an environment variable
- */
- @Test
- public void testSaveGetLocationStringsNoEnv() {
- String[] locations = {"first", "second", "third", "fourth", "fifth"};
- PreferencesExt prefs = new PreferencesExt(null, "");
- BrowserDefaults.saveLocationsList(prefs, Arrays.asList(locations));
- BrowserDefaults defs = new BrowserDefaults(prefs, null);
- Collection<String> locsColl = defs.getLocationStrings();
- assertEquals("number of locations", locations.length, locsColl.size());
- int k = 0;
- for (String loc : locsColl) {
- assertEquals("location[" + k + "]", locations[k], loc);
- k++;
- }
- }
-
- /**
- * Test method for {@link BrowserDefaults#saveLocationsList(PreferencesExt, List<String>)}
- * and {@link BrowserDefaults#getLocationStrings()} using the environment variable FER_DATA_THREDDS
- */
- @Test
- public void testSaveGetLocationStringsWithEnv() {
- PreferencesExt prefs = new PreferencesExt(null, "");
-
- // Use "FER_DATA_THREDDS as the environment variable to test (no System.setenv to create one)
- String envName = "FER_DATA_THREDDS";
- String envVal = System.getenv(envName);
-
- // Following are not errors; just can't perform this test as expected
- assumeNotNull(envVal);
- assumeTrue( ! envVal.trim().isEmpty() );
- assumeTrue( ! envVal.contains("\"") );
- assumeTrue( ! envVal.contains("'") );
-
- // Get the unique space-separated strings in the given order
- LinkedHashSet<String> nameSet = new LinkedHashSet<String>(Arrays.asList(envVal.split("\\s+")));
- ArrayList<String> nameList = new ArrayList<String>(nameSet);
-
- // Get the locations from just using envName
- BrowserDefaults defs = new BrowserDefaults(null, envName);
- Collection<String> locsColl = defs.getLocationStrings();
- assertEquals("number of locations from " + envName, nameList.size(), locsColl.size());
- int numLocs = 0;
- for (String location : locsColl) {
- assertEquals("location[" + numLocs + "] from " + envName, nameList.get(numLocs), location);
- numLocs++;
- }
-
- // Create a list of locations, one duplicating the last one from envName
- String myFirstLocation = "My silly first location";
- String mySecondLocation = nameList.get(nameList.size() - 1);
- ArrayList<String> prefLocs = new ArrayList<String>(2);
- prefLocs.add(myFirstLocation);
- prefLocs.add(mySecondLocation);
-
- // Create a BrowserDefaults with this PreferenceExt and envName
- BrowserDefaults.saveLocationsList(prefs, prefLocs); // verify the old values are overwritten
- defs = new BrowserDefaults(prefs, envName);
- locsColl = defs.getLocationStrings();
- assertEquals("number of locations from prefs and " + envName, nameList.size() + 1, locsColl.size());
- numLocs = 0;
- for (String location : locsColl) {
- if ( numLocs == 0 )
- assertEquals("location[0] from prefs and " + envName, myFirstLocation, location);
- else if ( numLocs == 1 )
- assertEquals("location[1] from prefs and " + envName, mySecondLocation, location);
- else
- assertEquals("location[" + numLocs + "] from prefs and " + envName, nameList.get(numLocs-2), location);
- numLocs++;
- }
- }
-
- /**
- * Test method for {@link BrowserDefaults#saveDividerLocation(PreferencesExt, int)}
- * and {@link BrowserDefaults#getDividerLocation()}.
- */
- @Test
- public void testSaveGetDividerLocation() {
- int loc = 789;
- PreferencesExt prefs = new PreferencesExt(null, "");
- BrowserDefaults.saveDividerLocation(prefs, loc);
- BrowserDefaults defs = new BrowserDefaults(prefs, null);
- assertEquals("saved divider location", loc, defs.getDividerLocation());
- }
-
- /**
- * Test method for {@link BrowserDefaults#saveLocalBrowseDir(PreferencesExt, File)}
- * and {@link BrowserDefaults#getLocalBrowseDir()}.
- */
- @Test
- public void testSaveGetLocalBrowseDir() throws IOException {
- File tmpdir = File.createTempFile("temp_", "_dir");
- PreferencesExt prefs = new PreferencesExt(null, "");
- BrowserDefaults.saveLocalBrowseDir(prefs, tmpdir);
- BrowserDefaults defs = new BrowserDefaults(prefs, null);
- assertEquals("saved local browse dir that is a file", null, defs.getLocalBrowseDir());
- tmpdir.delete();
- defs = new BrowserDefaults(prefs, null);
- assertEquals("saved local browse dir that does not exist", null, defs.getLocalBrowseDir());
- tmpdir.mkdir();
- defs = new BrowserDefaults(prefs, null);
- assertEquals("saved local browse dir that is a valid directory", tmpdir, defs.getLocalBrowseDir());
- tmpdir.delete();
- }
-
- /**
- * Test method for {@link BrowserDefaults#saveExtensionsString(PreferencesExt, String)}
- * and {@link BrowserDefaults#getExtensionsString()}.
- */
- @Test
- public void testSaveGetExtensionsString() {
- String extsString = "this, that, and, the, other, thing";
- PreferencesExt prefs = new PreferencesExt(null, "");
- BrowserDefaults.saveExtensionsString(prefs, extsString);
- BrowserDefaults defs = new BrowserDefaults(prefs, null);
- assertEquals("saved extensions string", extsString, defs.getExtensionsString());
- }
-
- /**
- * Test method for {@link BrowserDefaults#saveBrowserSize(PreferencesExt, Dimension)}
- * and {@link BrowserDefaults#getBrowserSize()}.
- */
- @Test
- public void testSaveGetBrowserSize() {
- Dimension size = new Dimension(234, 567);
- PreferencesExt prefs = new PreferencesExt(null, "");
- BrowserDefaults.saveBrowserSize(prefs, size);
- BrowserDefaults defs = new BrowserDefaults(prefs, null);
- assertEquals("saved browser size", size, defs.getBrowserSize());
- }
-
- /**
- * Test method for {@link BrowserDefaults#parseExtensionsString(String)}
- * and {@link BrowserDefaults#createExtensionsString(Collection)}.
- */
- @Test
- public void testParseCreateExtensionsString() {
- String extsString = "this, that, and, the, other";
- String complicatedString = " this that;and , the ,other ; ";
- String[] extsArray = extsString.split(", ");
-
- // Try a single string of extensions
- Collection<String> extsColl = BrowserDefaults.parseExtensionsString(extsString);
- assertEquals("number of extensions from a simple string", extsArray.length, extsColl.size());
- for (int k = 0; k < extsArray.length; k++)
- assertTrue("collection contains extension " + extsArray[k], extsColl.contains(extsArray[k]));
- String newStr = BrowserDefaults.createExtensionsString(extsColl);
- assertEquals("extensions string from collection", extsString, newStr);
-
- // Try a complicated string
- extsColl = BrowserDefaults.parseExtensionsString(complicatedString);
- assertEquals("number of extensions from a complicated string", extsArray.length, extsColl.size());
- for (int k = 0; k < extsArray.length; k++)
- assertTrue("collection contains extension " + extsArray[k], extsColl.contains(extsArray[k]));
- newStr = BrowserDefaults.createExtensionsString(extsColl);
- assertEquals("extensions string from collection", extsString, newStr);
-
- // Should work fine with an empty string or empty collection
- extsColl = BrowserDefaults.parseExtensionsString("");
- assertEquals("number of extensions from an empty string", 0, extsColl.size());
- newStr = BrowserDefaults.createExtensionsString(extsColl);
- assertEquals("extensions string from empty collection", "", newStr);
- }
-
-}
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestExtensionFileFilter.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestExtensionFileFilter.java
deleted file mode 100644
index 3e5d2a9..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestExtensionFileFilter.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-
-import gov.noaa.pmel.ferret.threddsBrowser.ExtensionFileFilter;
-
-import org.junit.Test;
-
-/**
- * Tests of {@link ExtensionFileFilter}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestExtensionFileFilter {
-
- /**
- * Test method for {@link ExtensionFileFilter#ExtensionFileFilter()}.
- * @throws IOException
- */
- @Test
- public void testExtensionFileFilter() throws IOException {
- ExtensionFileFilter filter = new ExtensionFileFilter();
- assertNotNull("null returned from empty constructor", filter);
- assertEquals("size of filter set from empty constructor", 0, filter.size());
-
- // Check that everything gets accepted
- File tmpdir = File.createTempFile("test_", "_dir");
- tmpdir.delete();
- tmpdir.mkdir();
- File afile = new File(tmpdir, "afile.txt");
- afile.createNewFile();
- File bfile = new File(tmpdir, "bfile.dat");
- bfile.createNewFile();
- File cfile = new File(tmpdir, "cfile");
- cfile.createNewFile();
- File subdir = new File(tmpdir, "subdir");
- subdir.mkdir();
-
- File[] contents = tmpdir.listFiles(filter);
- assertEquals("number of filtered files", 4, contents.length);
-
- subdir.delete();
- cfile.delete();
- bfile.delete();
- afile.delete();
- tmpdir.delete();
- }
-
- /**
- * Test method for {@link ExtensionFileFilter#ExtensionFileFilter(Set)}.
- * @throws IOException
- */
- @Test
- public void testExtensionFileFilterSetOfString() throws IOException {
- List<String> extList = Arrays.asList("txt", "doc", "txt");
- ExtensionFileFilter filter = new ExtensionFileFilter(extList);
- assertNotNull("null returned from constructor with a List", filter);
- assertEquals("size of filter with List constructor", 2, filter.size());
-
- // Check that things are filter appropriately
- File tmpdir = File.createTempFile("test_", "_dir");
- tmpdir.delete();
- tmpdir.mkdir();
- File afile = new File(tmpdir, "afile.txt");
- afile.createNewFile();
- File bfile = new File(tmpdir, "bfile.dat");
- bfile.createNewFile();
- File cfile = new File(tmpdir, "cfile");
- cfile.createNewFile();
- File subdir = new File(tmpdir, "subdir");
- subdir.mkdir();
-
- File[] contents = tmpdir.listFiles(filter);
- assertEquals("number of filtered files", 2, contents.length);
-
- List<File> contentsList = Arrays.asList(contents);
- assertTrue("file with listed extension accepted", contentsList.contains(afile));
- assertFalse("file with unlisted extension accepted", contentsList.contains(bfile));
- assertFalse("file with no extension accepted", contentsList.contains(cfile));
- assertTrue("directory accepted", contentsList.contains(subdir));
-
- subdir.delete();
- cfile.delete();
- bfile.delete();
- afile.delete();
- tmpdir.delete();
- }
-
- /**
- * Test method for {@link ExtensionFileFilter#accept(File)}.
- */
- @Test
- public void testAccept() {
- ExtensionFileFilter filter = new ExtensionFileFilter();
- assertTrue("non-existant file with an extension using filer with no extensions", filter.accept(new File("afile.txt")));
- assertTrue("non-existant file with no extension using filter with no extensions", filter.accept(new File("cfile")));
-
- List<String> extList = Arrays.asList("txt", "doc");
- filter = new ExtensionFileFilter(extList);
- assertTrue("file with listed extension", filter.accept(new File("afile.txt")));
- assertFalse("file with unlisted extension", filter.accept(new File("bfile.dat")));
- assertFalse("file with no extension using filter with extensions", filter.accept(new File("cfile")));
- }
-
-}
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanMonitor.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanMonitor.java
deleted file mode 100644
index 9707a96..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanMonitor.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-
-import gov.noaa.pmel.ferret.threddsBrowser.LocalDirTreeScanMonitor;
-
-import org.junit.Test;
-
-/**
- * Test of {@link LocalDirTreeScanMonitor}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestLocalDirTreeScanMonitor {
-
- /**
- * Test method for {@link LocalDirTreeScanMonitor#truncatedPathname} with no parent directory
- */
- @Test
- public void testTruncatedPathnameNoParent() {
- final String maxTruncName = "..." + File.separator + "pathname";
- final String absFullName = File.separator + "absolute" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
- final String partTruncAbsName = File.separator + "absolute" + File.separator + "..." + File.separator + "pathname";
- final String relFullName = "relative" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
- final String partTruncRelName = "relative" + File.separator + "..." + File.separator + "pathname";
- final String simpleName = "simple";
- final String shortName = File.separator + "a" + File.separator + "pathname";
- final String complicatedName = File.separator + "an" + File.separator + "extra" + File.separator + "long" + File.separator + "path"
- + File.separator + "to" + File.separator + "test" + File.separator + "against" + File.separator + "pathname";
- final String partTruncComplicatedName = File.separator + "an" + File.separator + "extra" + File.separator + "..."
- + File.separator + "against" + File.separator + "pathname";
-
- // Absolute paths
- File f = new File(absFullName);
- // No truncation
- String name = LocalDirTreeScanMonitor.truncatedPathname(f, null, absFullName.length());
- assertEquals("untruncated absolute pathname", absFullName, name);
- // Maximum truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
- assertEquals("max truncated absolute pathname", maxTruncName, name);
- // Partial truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, partTruncAbsName.length() + 5);
- assertEquals("partially truncated absolute pathname", partTruncAbsName, name);
-
- // Relative paths
- f = new File(relFullName);
- // No truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, relFullName.length() + 30);
- assertEquals("untruncated relative pathname", relFullName, name);
- // Maximum truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
- assertEquals("max truncated relative pathname", maxTruncName, name);
- // Partial truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, partTruncRelName.length());
- assertEquals("partially truncated relative pathname", partTruncRelName, name);
-
- // Just a name with no path
- f = new File(simpleName);
- // No truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, simpleName.length());
- assertEquals("untruncated simple name", simpleName, name);
- // Maximum truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
- assertEquals("max truncated simple name", simpleName, name);
- // Partial truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, simpleName.length() - 1);
- assertEquals("partially truncated simple name", simpleName, name);
-
- // Short pathname
- f = new File(shortName);
- // No truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, shortName.length());
- assertEquals("untruncated short name", shortName, name);
- // Maximum truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
- assertEquals("max truncated short name", shortName, name);
- // Partial truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, simpleName.length() - 1);
- assertEquals("partially truncated short name", shortName, name);
-
-
- // Name with many path components
- f = new File(complicatedName);
- // No truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, complicatedName.length());
- assertEquals("untruncated complicated pathname", complicatedName, name);
- // Maximum truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, -1);
- assertEquals("max truncated complicated pathname", maxTruncName, name);
- // Partial truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, null, partTruncComplicatedName.length() + 1);
- assertEquals("partially truncated complicated pathname", partTruncComplicatedName, name);
- }
-
- /**
- * Test method for {@link LocalDirTreeScanMonitor#truncatedPathname} with no parent directory
- */
- @Test
- public void testTruncatedPathnameWithParent() {
- final String maxTruncName = "..." + File.separator + "pathname";
- final String absParentName = File.separator + "home" + File.separator + "parent";
- final String absFullName = absParentName + File.separator + "absolute" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
- final String relAbsFullName = "parent" + File.separator + "absolute" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
- final String partTruncAbsName = "parent" + File.separator + "absolute" + File.separator + "..." + File.separator + "pathname";
- final String relParentName = "home" + File.separator + "parent";
- final String relFullName = relParentName + File.separator + "relative" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
- final String relRelFullName = "parent" + File.separator + "relative" + File.separator + "testing" + File.separator + "example" + File.separator + "pathname";
- final String partTruncRelName = "parent" + File.separator + "..." + File.separator + "pathname";
- final String simpleName = "simple";
- final String shortName = File.separator + "a" + File.separator + "pathname";
-
- // Absolute paths
- File p = new File(absParentName);
- File f = new File(absFullName);
- // No truncation
- String name = LocalDirTreeScanMonitor.truncatedPathname(f, p, absFullName.length());
- assertEquals("untruncated absolute pathname", relAbsFullName, name);
- // Maximum truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, -1);
- assertEquals("max truncated absolute pathname", maxTruncName, name);
- // Partial truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, partTruncAbsName.length() + 5);
- assertEquals("partially truncated absolute pathname", partTruncAbsName, name);
-
- // Relative paths
- p = new File(relParentName);
- f = new File(relFullName);
- // No truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, relFullName.length() + 30);
- assertEquals("untruncated relative pathname", relRelFullName, name);
- // Maximum truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, -1);
- assertEquals("max truncated relative pathname", maxTruncName, name);
- // Partial truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, partTruncRelName.length());
- assertEquals("partially truncated relative pathname", partTruncRelName, name);
-
- // Just a name with no path
- f = new File(simpleName);
- // No truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, simpleName.length());
- assertEquals("untruncated simple name", simpleName, name);
- // Maximum truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, -1);
- assertEquals("max truncated simple name", simpleName, name);
- // Partial truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, simpleName.length() - 1);
- assertEquals("partially truncated simple name", simpleName, name);
-
- // Short pathname
- f = new File(shortName);
- // No truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, shortName.length());
- assertEquals("untruncated short name", shortName, name);
- // Maximum truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, -1);
- assertEquals("max truncated short name", shortName, name);
- // Partial truncation
- name = LocalDirTreeScanMonitor.truncatedPathname(f, p, simpleName.length() - 1);
- assertEquals("partially truncated short name", shortName, name);
- }
-
-}
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanner.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanner.java
deleted file mode 100644
index a0a3fd2..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestLocalDirTreeScanner.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-import gov.noaa.pmel.ferret.threddsBrowser.LocalDirTreeScanner;
-
-import org.junit.Test;
-
-import thredds.catalog.InvAccess;
-import thredds.catalog.InvCatalogImpl;
-import thredds.catalog.InvDataset;
-
-/**
- * Test of {@link LocalDirTreeScanner}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestLocalDirTreeScanner {
-
- /**
- * Test method for {@link LocalDirTreeScanner#LocalDirTreeScanner(File)}.
- */
- @Test
- public void testLocalDirTreeScanner() throws IOException {
- // Try constructor with null
- try {
- new LocalDirTreeScanner(null, null);
- fail("constructor with null did not throw an exception");
- } catch (NullPointerException e) {
- ;
- }
-
- // Try constructor with a file
- File tmpdir = File.createTempFile("test_", "_tmpdir");
- try {
- new LocalDirTreeScanner(tmpdir, null);
- fail("constructor with a file did not throw an exception");
- } catch (IOException e) {
- ;
- }
-
- // Try constructor with directory name that does not exist
- tmpdir.delete();
- try {
- new LocalDirTreeScanner(tmpdir, null);
- fail("constructor with a directory that does not exist did not throw an exception");
- } catch (IOException e) {
- ;
- }
-
- // Try constructor with a valid directory
- tmpdir.mkdir();
- LocalDirTreeScanner scanner = new LocalDirTreeScanner(tmpdir, null);
- assertNotNull("constructor with a valid directory returned null", scanner);
-
- tmpdir.delete();
- }
-
- /**
- * Test method for {@link LocalDirTreeScanner#generateCatalog(FileFilter)}
- * and {@link LocalDirTreeScanner#getNumCatalogEntries()}.
- */
- @Test
- public void testGenerateCatalog() throws IOException, ExecutionException, InterruptedException {
- // Create a directory tree
- File tmpdir = File.createTempFile("test_", "_tmpdir");
- tmpdir.delete();
- tmpdir.mkdir();
-
- File afile = new File(tmpdir, "a_file");
- afile.createNewFile();
-
- File zfile = new File(tmpdir, "z_file");
- zfile.createNewFile();
-
- File subdir = new File(tmpdir, "subdir");
- subdir.mkdir();
-
- File subfile = new File(subdir, "subfile");
- subfile.createNewFile();
-
- File asubfile = new File(subdir, "a_subfile");
- asubfile.createNewFile();
-
- // Create a scanner for this directory tree with no filter
- LocalDirTreeScanner scanner = new LocalDirTreeScanner(tmpdir, null);
- assertNotNull("constructor with a valid directory returned null", scanner);
-
- // Try scanning with no filter
- scanner.execute();
- InvCatalogImpl catalog = scanner.get();
- assertNotNull("generated catalog with null filter was null", catalog);
-
- // Check the reported number of catalog entries
- assertEquals("number of catalog entries", 5, scanner.getNumCatalogEntries());
-
- // Top-level dataset is the directory itself
- List<InvDataset> datasets = catalog.getDatasets();
- assertEquals("Number of first-level datasets", 1, datasets.size());
-
- assertEquals("ID of first-level dataset", tmpdir.getPath(), datasets.get(0).getID());
- List<InvAccess> access = datasets.get(0).getAccess();
- assertEquals("Number of accesses for first-level dataset", 0, access.size());
- assertEquals("Number of datasets under the first-level dataset", 3, datasets.get(0).getDatasets().size());
-
- // Next level is the sorted contents of the directory
- datasets = datasets.get(0).getDatasets();
-
- assertEquals("ID of first second-level dataset", afile.getPath(), datasets.get(0).getID());
- access = datasets.get(0).getAccess();
- assertEquals("Number of accesses for first second-level dataset", 1, access.size());
- assertEquals("Number of datasets under the first second-level datset", 0, datasets.get(0).getDatasets().size());
-
- assertEquals("ID of second second-level dataset", subdir.getPath(), datasets.get(1).getID());
- access = datasets.get(1).getAccess();
- assertEquals("Number of accesses for second second-level dataset", 0, access.size());
- assertEquals("Number of datasets under the second second-level datset", 2, datasets.get(1).getDatasets().size());
-
- assertEquals("ID of third second-level dataset", zfile.getPath(), datasets.get(2).getID());
- access = datasets.get(2).getAccess();
- assertEquals("Number of accesses for third second-level dataset", 1, access.size());
- assertEquals("Number of datasets under the third second-level datset", 0, datasets.get(2).getDatasets().size());
-
- // Now the contents of subdir
- datasets = datasets.get(1).getDatasets();
-
- assertEquals("ID of first third-level dataset", asubfile.getPath(), datasets.get(0).getID());
- access = datasets.get(0).getAccess();
- assertEquals("Number of accesses for first third-level dataset", 1, access.size());
- assertEquals("Number of datasets under the first third-level datset", 0, datasets.get(0).getDatasets().size());
-
- assertEquals("ID of second third-level dataset", subfile.getPath(), datasets.get(1).getID());
- access = datasets.get(1).getAccess();
- assertEquals("Number of accesses for second third-level dataset", 1, access.size());
- assertEquals("Number of datasets under the second third-level datset", 0, datasets.get(1).getDatasets().size());
-
- // Try scanning with a filter
- scanner = new LocalDirTreeScanner(tmpdir, new FileFilter() {
- @Override
- public boolean accept(File pathname) {
- // Accept all directories
- if ( pathname.isDirectory() )
- return true;
- // Accept files with an underscore in their name
- if ( pathname.getName().contains("_") )
- return true;
- // If made it here, don't accept it
- return false;
- }
- });
- assertNotNull("constructor with a valid directory returned null", scanner);
- scanner.execute();
- catalog = scanner.get();
-
- // Check the reported number of catalog entries
- assertEquals("number of catalog entries", 4, scanner.getNumCatalogEntries());
-
- // Top-level dataset is the directory itself
- datasets = catalog.getDatasets();
- assertEquals("Number of first-level datasets", 1, datasets.size());
-
- assertEquals("ID of first-level dataset", tmpdir.getPath(), datasets.get(0).getID());
- access = datasets.get(0).getAccess();
- assertEquals("Number of accesses for first-level dataset", 0, access.size());
- assertEquals("Number of datasets under the first-level dataset", 3, datasets.get(0).getDatasets().size());
-
- // Next level is the sorted contents of the directory
- datasets = datasets.get(0).getDatasets();
-
- assertEquals("ID of first second-level dataset", afile.getPath(), datasets.get(0).getID());
- access = datasets.get(0).getAccess();
- assertEquals("Number of accesses for first second-level dataset", 1, access.size());
- assertEquals("Number of datasets under the first second-level datset", 0, datasets.get(0).getDatasets().size());
-
- assertEquals("ID of second second-level dataset", subdir.getPath(), datasets.get(1).getID());
- access = datasets.get(1).getAccess();
- assertEquals("Number of accesses for second second-level dataset", 0, access.size());
- assertEquals("Number of datasets under the second second-level datset", 1, datasets.get(1).getDatasets().size());
-
- assertEquals("ID of third second-level dataset", zfile.getPath(), datasets.get(2).getID());
- access = datasets.get(2).getAccess();
- assertEquals("Number of accesses for third second-level dataset", 1, access.size());
- assertEquals("Number of datasets under the third second-level datset", 0, datasets.get(2).getDatasets().size());
-
- // Now the contents of subdir
- datasets = datasets.get(1).getDatasets();
-
- assertEquals("ID of first third-level dataset", asubfile.getPath(), datasets.get(0).getID());
- access = datasets.get(0).getAccess();
- assertEquals("Number of accesses for first third-level dataset", 1, access.size());
- assertEquals("Number of datasets under the first third-level datset", 0, datasets.get(0).getDatasets().size());
-
- asubfile.delete();
- subfile.delete();
- subdir.delete();
- zfile.delete();
- afile.delete();
- tmpdir.delete();
- }
-
-}
diff --git a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestThreddsBrowser.java b/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestThreddsBrowser.java
deleted file mode 100644
index 4c3a971..0000000
--- a/threddsBrowser/unittests/gov/noaa/pmel/ferret/threddsBrowserTests/TestThreddsBrowser.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * This software was developed by the Thermal Modeling and Analysis
- * Project(TMAP) of the National Oceanographic and Atmospheric
- * Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
- * hereafter referred to as NOAA/PMEL/TMAP.
- *
- * Access and use of this software shall impose the following
- * obligations and understandings on the user. The user is granted the
- * right, without any fee or cost, to use, copy, modify, alter, enhance
- * and distribute this software, and any derivative works thereof, and
- * its supporting documentation for any purpose whatsoever, provided
- * that this entire notice appears in all copies of the software,
- * derivative works and supporting documentation. Further, the user
- * agrees to credit NOAA/PMEL/TMAP in any publications that result from
- * the use of this software or in any product that includes this
- * software. The names TMAP, NOAA and/or PMEL, however, may not be used
- * in any advertising or publicity to endorse or promote any products
- * or commercial entity unless specific written permission is obtained
- * from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
- * is not obligated to provide the user with any support, consulting,
- * training or assistance of any kind with regard to the use, operation
- * and performance of this software nor to provide the user with any
- * updates, revisions, new versions or "bug fixes".
- *
- * THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- * CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-package gov.noaa.pmel.ferret.threddsBrowserTests;
-
-import static org.junit.Assert.*;
-
-import gov.noaa.pmel.ferret.threddsBrowser.ThreddsBrowser;
-
-import java.io.File;
-
-import org.junit.Test;
-
-/**
- * Tests for non-UI methods of {@link ThreddsBrowser}
- * @author Karl M. Smith - karl.smith (at) noaa.gov
- */
-public class TestThreddsBrowser {
-
- /**
- * Test method for {@link ThreddsBrowser#createDefaultStoreFilename()}.
- */
- @Test
- public void testCreateDefaultStoreFilename() {
- String storeName = ThreddsBrowser.createDefaultStoreFilename();
- assertNotNull("Default store name", storeName);
- File storeFile = new File(storeName);
- assertEquals("store filename", "ThreddsBrowser.xml", storeFile.getName());
- File parentDir = storeFile.getParentFile();
- assertTrue("Unexpected store file parent directory: " + parentDir.getName(),
- "TMAP".equals(parentDir.getName()) || ".tmap".equals(parentDir.getName()));
- assertTrue("Store file parent directory exists", parentDir.isDirectory());
- }
-
-}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ferret-vis.git
More information about the debian-science-commits
mailing list