[pyferret] 17/110: Upstream 1.1.0
Alastair McKinstry
mckinstry at moszumanska.debian.org
Fri Jul 28 08:41:45 UTC 2017
This is an automated email from the git hooks/post-receive script.
mckinstry pushed a commit to branch debian/master
in repository pyferret.
commit 29b824f6f73e870bfc95d01d1ec77cb44501a6c9
Author: Alastair McKinstry <mckinstry at debian.org>
Date: Sat May 9 22:27:04 2015 +0100
Upstream 1.1.0
---
Makefile | 12 +-
bench/TEST_SCRIPTS | 10 +
bench/TRASH_FILES | 16 +-
...estCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc | Bin 0 -> 9840 bytes
bench/anew_global.cdl | 40 +
bench/ansley_official.linux_err | 263 +-
bench/ansley_official.linux_log | 5814 ++++++++++++++------
bench/ansley_official.rhel6-64_err | 214 +-
bench/ansley_official.rhel6-64_log | 4961 ++++++++++++-----
bench/ansley_official.x86_64-linux_err | 219 +-
bench/ansley_official.x86_64-linux_log | 4627 ++++++++++++----
bench/badbounds_even.nc | Bin 0 -> 844 bytes
bench/badbounds_non_enclose.nc | Bin 0 -> 868 bytes
bench/badbounds_uneven.nc | Bin 0 -> 792 bytes
bench/bn691_bug_fixes.jnl | 75 +
bench/bn69_bug_fixes.jnl | 4 +-
bench/bn_all.jnl | 30 +
bench/bn_append_dsg.jnl | 30 +
bench/bn_axis_viewports.jnl | 19 +-
bench/bn_center_key_labels.jnl | 43 +
bench/bn_conventions_history.jnl | 19 +
bench/bn_date1900_array.jnl | 18 +
bench/bn_dsg_e_x.jnl | 12 +
bench/bn_global_atts.jnl | 29 +
bench/bn_plot.jnl | 2 +-
bench/bn_polygon_log.jnl | 33 +
bench/bn_show_outfile.jnl | 83 +
bench/bn_spawn_size.jnl | 27 +
bench/bn_vtree_outfile.jnl | 185 +
bench/bn_vtree_outfile.sub | 19 +
bench/bn_wgt_transform.jnl | 40 +
bench/check_metafiles_rh6 | 93 -
bench/conventions_history_in.nc | Bin 0 -> 984 bytes
bench/err686_set_var_name.jnl | 12 +-
bench/err691_bnds_case.jnl | 10 +
bench/err69_arg_type_error.jnl | 17 +
bench/err69_bad_bounds.jnl | 25 +
bench/err69_const_array.jnl | 26 +
bench/err69_countervar_context.jnl | 11 +
bench/err69_ens_badvalue.jnl | 14 +
bench/err69_fill_trans.jnl | 18 +
bench/err69_if_then_split.jnl | 42 +
bench/err69_isready_and_regridding.jnl | 36 +
bench/err69_isready_bugs.jnl | 28 +
bench/err69_isready_status_errmsgs.jnl | 15 +
bench/err69_label_backspace.jnl | 7 +
bench/err69_letd_dsetnum.jnl | 7 +
bench/err69_levels_v.jnl | 14 +
bench/err69_load_big_grid.jnl | 24 +
bench/err69_long_string_to_xml.jnl | 12 +
bench/err69_multi_label_ascii.jnl | 29 +
bench/err69_plot_vs_labs.jnl | 21 +
bench/err69_repeat_in_if.jnl | 55 +
bench/err69_repl_scinot.jnl | 15 +
bench/err69_ribbon_by_levels.jnl | 21 +
bench/err69_ribbon_histogram.jnl | 23 +
bench/err69_vtree_and_uvar_regrid.jnl | 8 +
bench/err69_vtree_cancel_axis.jnl | 19 +
bench/err69_write_attribute.jnl | 62 +
bench/global.nc | Bin 0 -> 1696 bytes
bench/lev_v_bug.nc | Bin 0 -> 43264 bytes
bench/maize_1.nc | Bin 0 -> 968 bytes
bench/maize_2.nc | Bin 0 -> 968 bytes
bench/maize_3.nc | Bin 0 -> 968 bytes
bench/test_results/axticlabel.pdf | Bin 7177 -> 7166 bytes
bench/test_results/bnplot.pdf | Bin 183832 -> 183735 bytes
bench/test_results/closed_lev.pdf | Bin 38462 -> 38600 bytes
bench/test_results/dashbug.pdf | Bin 10413 -> 10364 bytes
bench/test_results/degC_axlab.pdf | Bin 6948 -> 6880 bytes
bench/test_results/dots.pdf | Bin 5193 -> 5269 bytes
bench/test_results/ferret_run_tests_err | 201 +-
bench/test_results/ferret_run_tests_log | 3434 +++++++++---
bench/test_results/ferret_run_tests_ncdump | 395 +-
bench/test_results/flowlines.pdf | Bin 55408 -> 55588 bytes
bench/test_results/graticules.pdf | Bin 24461 -> 25097 bytes
bench/test_results/linecolors.pdf | Bin 16544 -> 16442 bytes
bench/test_results/multi_line_labels.pdf | Bin 30878 -> 30894 bytes
bench/test_results/polygon_plot.pdf | Bin 16333 -> 16172 bytes
bench/test_results/pyferret_run_tests_err | 181 +-
bench/test_results/pyferret_run_tests_log | 3596 +++++++++---
bench/test_results/pyferret_run_tests_ncdump | 395 +-
bench/test_results/startup_tests2.pdf | Bin 11505 -> 11570 bytes
bench/test_results/timetics.pdf | Bin 15654 -> 15977 bytes
bench/test_results/timetics2.pdf | Bin 27328 -> 27383 bytes
bench/test_results/vec_curv.pdf | Bin 14409 -> 14410 bytes
bench/test_results/vec_curv2.pdf | Bin 28782 -> 29018 bytes
bench/test_results/viewaxes.pdf | Bin 8042 -> 8091 bytes
bench/test_save_dsg_in.nc | Bin 0 -> 1680 bytes
bin/Finstall | 116 +-
bin/ferret_paths_template.csh | 58 +-
bin/ferret_paths_template.sh | 57 +-
bin/make_executable_tar | 2 +-
bin/{pyferret_template.sh => pyferret_template} | 29 +-
bin/pyferret_template.csh | 55 -
external_functions/Makefile | 4 +-
external_functions/cmprsi_by/Makefile | 3 +-
external_functions/cmprsi_by/expndi_by_m_counts.F | 292 +
external_functions/decimate/Makefile | 6 +-
.../decimate/{separate.F => piecewise1.F} | 255 +-
external_functions/decimate/piecewise2.F | 403 ++
external_functions/decimate/piecewise3.F | 604 +-
external_functions/decimate/piecewise_subs.F | 510 ++
external_functions/decimate/sample_fast_i.F | 2 +-
.../{sample_fast_i.F => sample_fast_i_str.F} | 32 +-
external_functions/decimate/separate.F | 24 +-
.../decimate/{separate.F => separate_str.F} | 40 +-
.../ef_utility/ferret_cmn/EF_mem_subsc.cmn | 2 -
.../ef_utility/ferret_cmn/EF_mem_subsc_f90.inc | 2 -
external_functions/eof/Makefile | 9 +-
external_functions/eof/eof_space_tgap.F | 629 +++
external_functions/eof/eof_stat_tgap.F | 646 +++
external_functions/eof/eof_tfunc_tgap.F | 617 +++
external_functions/eof/eofsubs.F | 1012 ++++
external_functions/sort/Makefile | 2 +-
external_functions/stringfcns/efstrings.F | 12 +-
external_functions/stringfcns/length_of_strings.F | 10 +-
external_functions/stringfcns/maxstrlen.F | 10 +-
external_functions/stringfcns/pass_thru_string.F | 13 +-
external_functions/stringfcns/pick_a_string.F | 13 +-
external_functions/stringfcns/str_missing.F | 13 +-
external_functions/stringfcns/string_cat3.F | 16 +-
external_functions/stringfcns/string_len_sum.F | 11 +-
external_functions/stringfcns/strings_as_args.F | 18 +-
fer/ccr/EF_InternalUtil.c | 64 +-
fer/cferbind/cairoCFerBind_createSurface.c | 6 -
fer/cferbind/cairoCFerBind_drawPolygon.c | 6 +-
fer/cferbind/cairoCFerBind_drawRectangle.c | 6 +-
fer/cferbind/cairoCFerBind_saveWindow.c | 19 +-
fer/common/EF_mem_subsc.cmn | 1 +
fer/common/ferret.parm | 9 +-
fer/common/interp_stack.parm | 9 +-
fer/common/plot_setup.parm | 12 +-
fer/common/slash.parm | 5 +-
fer/ctx/get_var_context.F | 5 +-
fer/ctx/region_class.F | 3 +
fer/dat/xalgebra_data.F | 18 +-
fer/dat/xrevision_data.F | 14 +-
fer/doo/SOURCE_FILES | 4 +
fer/doo/{do_xyave_regrid.F => do_4d_ave_wgt.F} | 49 +-
fer/doo/do_4d_wgt.F | 303 +
fer/doo/{do_xyave_regrid.F => do_avg_wgt.F} | 40 +-
fer/doo/do_internal_gc_fcn.F | 18 +-
fer/doo/do_wgt.F | 244 +
fer/doo/do_xyave_regrid.F | 8 +-
fer/doo/xyave_regrid.F | 17 +-
fer/ef_utility/ef_get_string_arg_elem_len_sub.F | 6 +-
fer/ef_utility/ef_get_string_arg_element_6d.F | 4 +-
fer/ef_utility/ef_get_string_arg_element_len_6d.F | 4 +-
fer/ef_utility/ef_get_string_arg_element_sub.F | 4 +-
fer/ef_utility/ef_get_string_arg_max_len.F | 4 +-
fer/efi/SOURCE_FILES | 2 +
fer/efi/date1900.F | 105 +-
fer/efi/expndi_by_m_counts.F | 318 ++
fer/efi/labwid.F | 7 +-
fer/efi/list_value_xml.F | 4 +-
fer/efi/samplexy_curv.F | 16 +-
fer/efi/samplexy_curv_avg.F | 13 +-
fer/efi/samplexy_curv_nrst.F | 12 +
.../decimate => fer/efi}/separate.F | 34 +-
fer/gnl/SOURCE_FILES | 1 +
fer/gnl/cdf_list.F | 2 +-
fer/gnl/get_context_mods.F | 6 +
.../isit_const_arr_var.F} | 61 +-
fer/gnl/list_cmnd_data.F | 2 +
fer/gnl/list_multi_sub.F | 5 +-
fer/gnl/repl_exprns.F | 19 +-
fer/gnl/sample.F | 26 +-
fer/gnl/set_var.F | 5 +-
fer/gnl/show_1_function.F | 2 +
fer/gnl/show_1_pyvar.F | 4 +-
fer/gnl/show_data.F | 3 +-
fer/gnl/show_grid.F | 5 +-
fer/ino/init_ez_dset.F | 37 +-
fer/ino/var_ss_lims.F | 8 +-
fer/mem/SOURCE_FILES | 1 +
fer/mem/assign_mr_cx.F | 3 +
fer/mem/create_mem_var.F | 29 +-
fer/mem/create_temp_mem_var.F | 19 +-
fer/mem/find_mem_var.F | 5 +-
fer/mem/get_memory.F | 60 +-
fer/mem/get_work_mr.F | 7 +-
fer/mem/get_work_spc.F | 8 +-
fer/mem/{get_work_spc.F => r_cgrid_size_delta.F} | 56 +-
fer/ocn/calc_cvar.F | 22 +-
fer/plt/disp_data_set_up.F | 11 +-
fer/plt/disp_set_up.F | 4 +
fer/plt/plot_set_up.F | 76 +-
fer/plt/polygon_set_up.F | 28 +
fer/stk/get_dependencies.F | 5 +
fer/stk/interp_stack.F | 6 +-
fer/stk/is_aggregate_gather.F | 27 +-
fer/stk/is_counter_var.F | 5 +-
fer/stk/is_dependencies.F | 12 +
fer/stk/is_do_gc_fcn.F | 11 +-
fer/stk/is_trans.F | 15 +-
fer/stk/offset_ss.F | 11 +-
fer/utl/get_dependency_status.F | 6 +-
fer/utl/get_string_element.F | 3 +-
fer/utl/parse_number_list.F | 21 +-
fer/utl/report_aux_dependency.F | 3 +-
fer/xeq/xeq_cancel.F | 2 +-
fer/xeq/xeq_contour.F | 44 +-
fer/xeq/xeq_plot.F | 42 +-
fer/xeq/xeq_polygon.F | 39 +-
fer/xeq/xeq_shade.F | 40 +-
fer/xeq/xeq_show.F | 36 +-
ferretmagic.py | 121 +-
fmt/cmn/tmap_errors.parm | 11 +-
fmt/src/SOURCE_FILES | 2 +
fmt/src/cd_conventions_out.F | 60 +-
fmt/src/cd_dim_only.F | 40 +
fmt/src/cd_get_1_axis.F | 60 +-
fmt/src/cd_get_line_direction.F | 16 +
fmt/src/cd_make_var.F | 28 +-
fmt/src/cd_stamp_out.F | 47 +-
fmt/src/cd_write_axis.F | 94 +-
fmt/src/cd_write_grid.F | 6 +-
fmt/src/cd_write_var.F | 25 +-
fmt/src/ez_count_dset.F | 242 +
fmt/src/tm_fmt.F | 1 +
fmt/src/tm_secs_to_date.F | 6 +-
fmt/src/xerror_text_data.F | 2 +
jnls/contrib/regressxy.jnl | 46 -
jnls/go/polymark.jnl | 9 +-
palettes/QC_V3_by_level.spk | 16 +
palettes/QC_regions.spk | 14 +
palettes/brown_soft.spk | 2 +
palettes/coralreefwatch_dhw.spk | 18 +
palettes/coralreefwatch_dhw_pct_white.spk | 21 +
palettes/coralreefwatch_dhw_percent.spk | 21 +
palettes/coralreefwatch_hotspot.spk | 127 +
palettes/coralreefwatch_sst.spk | 127 +
palettes/coralreefwatch_sstanomaly.spk | 128 +
palettes/fifteen_by_levels.spk | 18 +
palettes/green_pine.spk | 2 +
palettes/pale_green_blue.spk | 9 +
palettes/ten2_levels.spk | 13 +
palettes/ten_bright_levels.spk | 15 +
palettes/woce.spk | 7 +
platform_specific.mk.i386-linux | 2 +-
platform_specific.mk.i386-linux-gnu | 5 +-
platform_specific.mk.intel-mac | 7 +-
platform_specific.mk.x86_64-linux | 4 +-
platform_specific.mk.x86_64-linux-gnu | 7 +-
ppl/complot/symbel.F | 10 +
ppl/include/PLT.INC | 5 +-
ppl/plot/daxis.F | 7 +-
ppl/plot/daxis2.F | 5 +-
ppl/plot/labdrw.F | 13 +-
ppl/plot/lev.F | 16 +-
ppl/plot/opnppl.F | 10 +-
ppl/plot/plotxy_ribbon.F | 75 +-
ppl/plot/pplcmd_f.F | 18 +-
ppl/plot/ppldata.F | 4 +-
ppl/plot/prmtiv.F | 21 +-
ppl/plot/vecfld.F | 16 +-
ppl/tmap_inc/plt_inc.decl | 3 +-
ppl/tmap_inc/shade_vars.cmn | 8 +-
ppl/tmapadds/SOURCE_FILES | 1 +
ppl/tmapadds/compute_histo_bins.F | 27 +-
ppl/tmapadds/compute_mnstd.F | 100 +-
ppl/tmapadds/getlabfonts.F | 122 +-
ppl/tmapadds/key.F | 37 +-
ppl/tmapadds/set_fill_ndx.F | 33 +
ppl/tmapadds/set_levels_shade_fill.F | 20 +-
.../tmapadds/set_ribbon_ndx.F | 42 +-
ppl/tmapadds/shade_key.F | 15 +-
ppl/tmapadds/ws_line_spectrum.F | 26 +-
pviewmod/pipedviewerpq.py | 16 +-
pyfermod/__init__.py | 34 +-
site_specific.mk | 62 +-
271 files changed, 27823 insertions(+), 7775 deletions(-)
diff --git a/Makefile b/Makefile
index 5ad5886..1c1772d 100644
--- a/Makefile
+++ b/Makefile
@@ -18,8 +18,10 @@ optimized :
$(MAKE) -C $(DIR_PREFIX)/fer optimized
$(MAKE) -C $(DIR_PREFIX)/threddsBrowser
$(MAKE) "CFLAGS = $(CFLAGS) -O" pymod_optimized
- $(MAKE) "FFLAGS = $(FFLAGS) -O" -C $(DIR_PREFIX)/efmem
- $(MAKE) "INSTALL_FER_DIR = $(DIR_PREFIX)/pyferret_install" -C $(DIR_PREFIX)/external_functions optimized
+ if [ "$(BUILDTYPE)" != "intel-mac" ] ; then \
+ $(MAKE) "FFLAGS = $(FFLAGS) -O" -C $(DIR_PREFIX)/efmem ; \
+ $(MAKE) "INSTALL_FER_DIR = $(DIR_PREFIX)/pyferret_install" -C $(DIR_PREFIX)/external_functions optimized ; \
+ fi
$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix
.PHONY : debug
@@ -28,8 +30,10 @@ debug :
$(MAKE) -C $(DIR_PREFIX)/fer debug
$(MAKE) -C $(DIR_PREFIX)/threddsBrowser
$(MAKE) "CFLAGS = $(CFLAGS) -O0 -g" pymod_debug
- $(MAKE) "FFLAGS = $(FFLAGS) -O0 -g" -C $(DIR_PREFIX)/efmem
- $(MAKE) "INSTALL_FER_DIR = $(DIR_PREFIX)/pyferret_install" -C $(DIR_PREFIX)/external_functions debug
+ if [ "$(BUILDTYPE)" != "intel-mac" ] ; then \
+ $(MAKE) "FFLAGS = $(FFLAGS) -O0 -g" -C $(DIR_PREFIX)/efmem ; \
+ $(MAKE) "INSTALL_FER_DIR = $(DIR_PREFIX)/pyferret_install" -C $(DIR_PREFIX)/external_functions debug ; \
+ fi
$(MAKE) -C $(DIR_PREFIX)/bin/build_fonts/unix
## The following builds libpyferret.so, then installs that shared-object
diff --git a/bench/TEST_SCRIPTS b/bench/TEST_SCRIPTS
index 6b072de..97891b5 100644
--- a/bench/TEST_SCRIPTS
+++ b/bench/TEST_SCRIPTS
@@ -211,5 +211,15 @@ bn_bad_axis_bounds.jnl
bn_enter_exit_GO.jnl
bn_stddev.jnl
bn_set_axis_name.jnl
+bn691_bug_fixes.jnl
+bn_append_dsg.jnl
+bn_global_atts.jnl
+bn_conventions_history.jnl
+bn_center_key_labels.jnl
+bn_wgt_transform.jnl
+bn_show_outfile.jnl
+bn_date1900_array.jnl
+bn_spawn_size.jnl
+bn_polygon_log.jnl
bn_all_ef.jnl
bn_startupfile.jnl
diff --git a/bench/TRASH_FILES b/bench/TRASH_FILES
index d345265..4ee8823 100644
--- a/bench/TRASH_FILES
+++ b/bench/TRASH_FILES
@@ -12,8 +12,8 @@ aa.nc
abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy.gif
a.jnl
a.nc
-a1.nc
-a2.nc
+a.txt
+anew_global.nc
another_file_vars.nc
anothername.gif
append_to_this.nc
@@ -30,9 +30,9 @@ bat.plt_7
bat.plt_8
bat.plt_9
benchmark_history.log
+bench.mgm
b.jnl
b.nc
-bench.mgm
bnplot-1.gif
bnplot-1.plt
bnplot-2.gif
@@ -42,17 +42,17 @@ bnplot-4.plt
bnplot.gif
bnplot.plt
bnplot.ps
-c.nc
-c1.nc
c1.nc
c2.nc
cc.nc
clim.nc
closed_lev.plt
+c.nc
confuse_xz.nc
confuse_yt.nc
confuse_yz.nc
confuse_yzt.nc
+conventions_history.nc
d2.nc
dashbug.gif
dashbug.plt
@@ -101,6 +101,7 @@ FTLON.cdf
gh.nc
.gif
gif_dashbug.gif
+global_copy.nc
g.nc
graticules.plt
h.nc
@@ -137,6 +138,7 @@ noleap.nc
other_file_vars.nc
out.cdf
out.nc
+out.xml
pattern_plot1.plt
pattern_plot2.plt
permutedBinaryTest.dat
@@ -184,6 +186,7 @@ test_fil.cdf
test_mod.cdf
test_modulo.cdf
test_nomod.cdf
+test_save_dsg.nc
test_string.cdf
test_subspan_modulo.nc
test.txt
@@ -191,14 +194,15 @@ test.unf
the_xml_file.xml
timetics2.plt
timetics.plt
+tval.nc
unf.dat
v12file.nc
v1file.nc
vec_curv2.plt
vec_curv.plt
WV.J34K56L7
-xml_out.xml
xml_out_string.xml
+xml_out.xml
xyir.nc
xz.nc
z1.nc
diff --git a/bench/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc b/bench/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
new file mode 100644
index 0000000..316e23b
Binary files /dev/null and b/bench/WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc differ
diff --git a/bench/anew_global.cdl b/bench/anew_global.cdl
new file mode 100644
index 0000000..06629ba
--- /dev/null
+++ b/bench/anew_global.cdl
@@ -0,0 +1,40 @@
+netcdf anew {
+dimensions:
+ xax5 = 5 ;
+ yax5 = 5 ;
+variables:
+ double xax5(xax5) ;
+ xax5:units = "degrees_east" ;
+ xax5:modulo = " " ;
+ xax5:point_spacing = "even" ;
+ xax5:axis = "X" ;
+ xax5:standard_name = "longitude" ;
+ double yax5(yax5) ;
+ yax5:units = "degrees_north" ;
+ yax5:point_spacing = "even" ;
+ yax5:axis = "Y" ;
+ yax5:standard_name = "latitude" ;
+ float ROSE(yax5, xax5) ;
+ ROSE:missing_value = -1.e+34f ;
+ ROSE:_FillValue = -1.e+34f ;
+ ROSE:long_name = "Elev" ;
+ ROSE:units = "METERS" ;
+
+// global attributes:
+ :history = "Subset of etopo20,\n",
+ " FERRET V6.71 9-May-14" ;
+ :Conventions = "Existing conventions note, CF-1.0" ;
+data:
+
+ xax5 = 20.1666667, 20.5, 20.8333333, 21.1666666, 21.4999999 ;
+
+ yax5 = -89.8333333, -89.5, -89.1666667, -88.8333334, -88.5000001 ;
+
+ ROSE =
+ 2804, 2804, 2804, 2804, 2804,
+ 2831, 2831, 2831, 2831, 2831,
+ 2808, 2808, 2808, 2808, 2808,
+ 2804, 2804, 2804, 2804, 2804,
+ 2831, 2831, 2831, 2831, 2831 ;
+
+}
diff --git a/bench/ansley_official.linux_err b/bench/ansley_official.linux_err
index 8797fa2..b282a2f 100644
--- a/bench/ansley_official.linux_err
+++ b/bench/ansley_official.linux_err
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
Running FERRET version /home/users/ansley/build/linux/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 52529714 Mar 17 15:44 /home/users/ansley/build/linux/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 53500930 Oct 29 15:34 /home/users/ansley/build/linux/FERRET/fer/ferret_c
Using external functions from /home/users/ansley/build/linux/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: after Steve's checkin, aux variables
+Note: ticket 2115 and a new test script for 2201
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -20,11 +20,10 @@ FER_LIBS=/home/users/tmap/ferret/linux/lib
FER_LINK_DIR=/home/users/tmap/ferret_link/linux
FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
PWD=/home/users/ansley/build/linux/FERRET/bench
-Beginning at Mon Mar 17 15:53:19 PDT 2014
+Beginning at Wed Oct 29 15:55:55 PDT 2014
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
SET EXPRESSION has not been given or implied
- SET EXPRESSION has not been given or implied
**ERROR: unknown command qualifier: help
MESSAGE/CONTINUE /help
**ERROR: unknown command: that
@@ -304,7 +303,7 @@ list temp[i=2:5,gx=130e:80w:10]
list temp[gx=130e:80w]
**ERROR: variable unknown or not in data set: NOEXIST
list temp[gx=u] + noexist
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G004) does not exist at K=30
Axis extremes are K=1:27
list temp[gx=u,k=30]
**ERROR: illegal limits: TEMP does not contain K=20
@@ -320,7 +319,7 @@ list tu
list tu
**ERROR: variable unknown or not in data set: NOEXIST
list tu
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G004) does not exist at K=30
Axis extremes are K=1:27
list tu
**ERROR: illegal limits: TEMP does not contain K=20
@@ -580,9 +579,10 @@ Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: A negative number of words were requested.
+ **ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: The current grid is most likely too large
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
@@ -845,6 +845,7 @@ Replacing definition of axis X10
*** NOTE: Not deleted: X10
*** NOTE: Axis is in use by grid G10X5
PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
Bailing out of external function "eof_space":
Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
@@ -854,7 +855,6 @@ Bailing out of external function "eof_stat":
Bailing out of external function "eof_tfunc":
Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
- TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1083,7 +1083,7 @@ Replacing definition of axis TAX2
*** NOTE: regarding ./test_axes.nc ...
*** NOTE: Climatological axes test_irreg, test_seas defined
*** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
+ *** NOTE: Axis is in use by grid (G023)
*** NOTE: Not deleted: XEVEN
*** NOTE: Axis is in use by grid EVEN
*** NOTE: Not deleted: XODD
@@ -1188,18 +1188,18 @@ Replacing definition of axis TAX2
*** NOTE: Axis is in use by grid GFORMAT
*** NOTE: Not deleted: XAXLEVITR1_160
*** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: TIME5
*** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: COADSX
*** NOTE: Axis is in use by grid GG
*** NOTE: Not deleted: COADSY
*** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G023)
*** NOTE: Not deleted: YAXLEVITR1_90
*** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
*** NOTE: Not deleted: ZAXLEVITR1_1
*** NOTE: Axis is in use by grid GG2
*** NOTE: Not deleted: (AX020)
@@ -1308,10 +1308,10 @@ Replacing definition of axis TAX2
*** NOTE: Axis is in use by grid GFORMAT
*** NOTE: Not deleted: XAXLEVITR1_160
*** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: TIME5
*** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: COADSX
*** NOTE: Axis is in use by grid GG
*** NOTE: Not deleted: COADSY
@@ -1679,15 +1679,15 @@ Replacing definition of grid TGRID
def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units not recognized: SOMETHING
+ *** NOTE: Units not recognized: something
*** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: SOMETHING
+ *** NOTE: Units not recognized: something
*** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: ZORRO
+ *** NOTE: Units not recognized: zorro
*** NOTE: They will not be convertible:
- *** NOTE: Units not recognized for T axis: METERS
+ *** NOTE: Units not recognized for T axis: meters
*** NOTE: They will not be convertible
- *** NOTE: Units not recognized for Y axis: SECONDS
+ *** NOTE: Units not recognized for Y axis: seconds
*** NOTE: They will not be convertible
Replacing definition of axis TAX
Replacing definition of axis XAX
@@ -2131,7 +2131,7 @@ curl error details:
this_is_not_a_file.nc
SET DAT/FORM=CDF this_is_not_a_file.nc
**Internet Data error
- NetCDF: Malformed or inaccessible DAP DDS (OPeNDAP/netCDF Error code -72)
+ NetCDF: file not found (OPeNDAP/netCDF Error code -90)
Data set: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf
SET DAT/FORM=CDF "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/COADS/coads_nothing.cdf"
**Internet Data error
@@ -2868,6 +2868,7 @@ load/x=160e/y=5s temp[d=2,k=1,g=no_exist12345678901234567890]
*** NOTE: LON1_15: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
*** NOTE: LAT1800_1800: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
*** NOTE: ENS: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
+ *** NOTE: TIME13: Writing scaled coordinates not implemented. Suggest using nco operators on output file to pack coord values
*** NOTE: Units on axis "ENS" are not recognized: count
*** NOTE: They will not be convertible:
PERMANENT data cleared from memory
@@ -3423,11 +3424,6 @@ Replacing definition of axis TDAY
LISTing to file aa.nc
LISTing to file aa.nc
LISTing to file aa.nc
-ncks: WARNING Overwriting global attribute history
-ncks: WARNING Overwriting global attribute Conventions
-ncks: WARNING Overwriting attribute point_spacing for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute axis for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute standard_name for output variable ZAXIS_ORIG
LISTing to file aa.nc
LISTing to file aa.nc
NetCDF: Numeric conversion not representable (OPeNDAP/netCDF Error code -60)
@@ -3518,11 +3514,17 @@ Replacing definition of axis ZAX
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
- *** NOTE: Not deleted: ENSEMBLE
- *** NOTE: Axis is in use by grid (G103)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3576,6 +3578,46 @@ SET DAT/FORM=CDF snoopy.dat
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ LISTing to file a.nc
+Replacing definition of axis XAXIS_TEST
+ LISTing to file b.nc
+ LISTing to file c.nc
+ LISTing to file c.nc
+ LISTing to file c.nc
+ LISTing to file c.nc
+ LISTing to file c.nc
+ LISTing to file nc
+ **TMAP ERR: error in line definition
+ file coords dont match variable coords on axis XAXIS_TEST
+LIST/FORMAT=CDF/clobber/keep/file=nc b,a[d=1]
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: dimensions improperly specified: must be a 2D region
+ shade b
+shade b
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Changing the value of attribute v1.long_name
+ *** NOTE: Changing the value of attribute v1.units
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
+ attribute noexist not found for variable TEMP
+show att temp.noexist[d=levitus_climatology]
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal new name. Variable b already defined
+set var/name=b a
+ **ERROR: invalid command: illegal new name. Variable b already defined
+set var/name=b a
+ **ERROR: invalid command: illegal new name. Variable temp exists in dataset
+set var/name=temp salt
+ **ERROR: invalid command: illegal new name. Variable psi exists in dataset
+set var/name=psi myvar
+ **ERROR: invalid command: illegal new name. Variable diff already defined
+set var/name=diff w
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
*** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
*** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
*** NOTE: Substituting coordinate midpoints
@@ -3586,6 +3628,167 @@ Replacing definition of axis TAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file b.nc
+ LISTing to file c.nc
+ **ERROR: invalid command: illegal new name. Axis days2000 is already defined
+set axis/name=days2000 x_in_meters
+ **ERROR: invalid command: illegal new name given for axis
+set axis/name x_in_meters
+ **ERROR: invalid command: illegal new name given for axis 45
+set axis/name=45 x_in_meters
+ **ERROR: invalid command: illegal new name given for axis .fr
+set axis/name=.fr x_in_meters
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
+list tax_datestring (tt[L=3], tt, 5)
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: must be a constant COS(1)
+list {cos(1), sin(0)}
+ **ERROR: command syntax: must be a constant 0-180
+list {0-180, 180}
+ **ERROR: command syntax: must be a constant 1./5.
+list {0.1, 0.2, 1./5.}
+ **ERROR: command syntax: must be a constant 5*3+1
+list {5*3+1, 2+3}
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+ LISTing to file tval.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file out.xml
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAXIS
+ **ERROR: request exceeds memory setting: 2369 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+Replacing definition of axis LONGTIME
+ **ERROR: request exceeds memory setting: 4735 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ LISTing to file aa.nc
+ LISTing to file bb.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file anew_global.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file conventions_history.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis X2
+Replacing definition of axis Y2
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
+ **ERROR: illegal limits: X axis limits don't match variable def'n: A
+ Are you giving explicit limits when SET REGION would suffice ?
+list f
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
**ERROR: command syntax: unknown region name: @w
set region/@w
PERMANENT data cleared from memory
@@ -3673,4 +3876,4 @@ vector/i=1:10/j=1:20/nolabel i/j,j/i,i+j
Re-defining viewport LM6
Re-defining viewport UM6
*** NOTE: Cannot create new windows when batch mode set
-Ended at Mon Mar 17 15:55:07 PDT 2014
+Ended at Wed Oct 29 15:57:41 PDT 2014
diff --git a/bench/ansley_official.linux_log b/bench/ansley_official.linux_log
index 811d01b..eb01ab8 100644
--- a/bench/ansley_official.linux_log
+++ b/bench/ansley_official.linux_log
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
Running FERRET version /home/users/ansley/build/linux/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 52529714 Mar 17 15:44 /home/users/ansley/build/linux/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 53500930 Oct 29 15:34 /home/users/ansley/build/linux/FERRET/fer/ferret_c
Using external functions from /home/users/ansley/build/linux/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: after Steve's checkin, aux variables
+Note: ticket 2115 and a new test script for 2201
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -20,7 +20,7 @@ FER_LIBS=/home/users/tmap/ferret/linux/lib
FER_LINK_DIR=/home/users/tmap/ferret_link/linux
FER_PALETTE=. /home/users/tmap/ferret/linux/ppl
PWD=/home/users/ansley/build/linux/FERRET/bench
-Beginning at Mon Mar 17 15:53:19 PDT 2014
+Beginning at Wed Oct 29 15:55:55 PDT 2014
! BN500_ALL.JNL
! - run all the benchmark tests
! - ordered (more or less) from least to most complex
@@ -273,9 +273,9 @@ SHOW DATA/FULL
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ V1 V1 1:2 ... ... ... ... ...
+ on grid (G008) with -1.E+34 for missing data
+ X=-0.5:1.5
/FORMAT = FREE
/SKIP = 0
@@ -285,7 +285,7 @@ SHOW DATA
currently SET data sets:
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:2 ... ... ... ... ...
SET MODE IGNORE_ERROR
SET DATA/EZ/VAR="P,Q" 1
@@ -527,7 +527,7 @@ show mode journal
JOURNAL SET newjournal.jnl
set mode journal ferret.jnl
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= metafile.plt [...]
@@ -539,7 +539,7 @@ ppl list plot
ppl listsym
cancel mode ppllist
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= metafile.plt [...]
@@ -596,6 +596,8 @@ set mode metafile metafile.plt
! SET - SHOW - CANCEL EXPRESSION
SHOW EXPRESSION
+ current output expression(s):
+ X[GX=1:0:1]
CANCEL EXPRESSION
SHOW EXPRESSION
SET EXPRESSION i+5,i-j
@@ -794,19 +796,19 @@ SHOW VARIABLES
! SHOW MEMORY , LOAD
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded without /PERMANENT:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
105 /125W 50 /1.7N 1 /10 5 /13-SEP-1982 ... / ... ... / ...
SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded with /PERMANENT:
SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
all data in memory:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
@@ -816,9 +818,9 @@ all data in memory:
LET A=i
LOAD/PERM/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -832,9 +834,9 @@ SHOW MEMORY/FREE
number of blocks used /PERM: 1
LOAD/TEMPORARY/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -1404,8 +1406,8 @@ let x1 = 0.012954
let x2 = 7.5E-09
let x3 = .1
say >>`x1`<< --- >>`x2`<< --- >>`x3`<<
- !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09 << --- >>0.1<<
->>0.012954<< --- >>7.5E-09 << --- >>0.1<<
+ !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09<< --- >>0.1<<
+>>0.012954<< --- >>7.5E-09<< --- >>0.1<<
! must recognize "/" inside immediate mode exprn
list/I=`6/2` i
@@ -1746,8 +1748,8 @@ show data
2> ./snoopy.dat (default)
name title I J K L M N
- T4 test4 1:20480 ... ... ... ... ...
- T3 test3 1:20480 ... ... ... ... ...
+ T4 test4 1:2 ... ... ... ... ...
+ T3 test3 1:2 ... ... ... ... ...
show data/full 1
currently SET data sets:
@@ -9617,9 +9619,9 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ V1 V1 1:5 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9647,12 +9649,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:5 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:5.5
+ X2 X2 1:5 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9683,12 +9685,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 0
@@ -9727,12 +9729,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9765,12 +9767,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9800,12 +9802,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0))
/SKIP = 2
@@ -9838,12 +9840,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0)/)
/SKIP = 1
@@ -10087,7 +10089,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= bnplot.plt [...]
@@ -10187,7 +10189,7 @@ plot/i=1:10/ylimits=1:40/nolabel i ! note that /nolabel supresses XLAB
plot/i=1:10/over/sym=2 i^1.1
plot/i=1:10/over/sym=2/size=.12 i^1.2
plot/i=1:10/over/sym=2/color=red i^1.3
-plot/i=1:10/over/thick/step i^1.4
+plot/i=1:10/over/thick/step/color=light_blue i^1.4
plot/i=1:10/over/thick/color=blue/step=connected i^1.5
plot/i=1:10/over/thick=3/color=purple/size=.14 i^1.6
@@ -10446,18 +10448,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.861"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5PAE 32-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:50:21 $"
+NETCDF_VERSION = "4.3.3-rc2 of Oct 6 2014 16:16:52 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Mar-14"
-SESSION_TIME = "15:53"
-SESSION_PID = "3592"
-DELTA_CPU = "4.84426"
-CLOCK_SECS = "7.36"
-CURRENT_DATE = "17-Mar-14"
-CURRENT_TIME = "15:53:27"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "15:55"
+SESSION_PID = "1266"
+DELTA_CPU = "5.03323"
+CLOCK_SECS = "7.649"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "15:56:03"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -10475,18 +10477,18 @@ show symbol/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.861"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5PAE 32-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:50:21 $"
+NETCDF_VERSION = "4.3.3-rc2 of Oct 6 2014 16:16:52 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Mar-14"
-SESSION_TIME = "15:53"
-SESSION_PID = "3592"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "15:55"
+SESSION_PID = "1266"
DELTA_CPU = "0.001"
-CLOCK_SECS = "7.361"
-CURRENT_DATE = "17-Mar-14"
-CURRENT_TIME = "15:53:27"
+CLOCK_SECS = "7.65"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "15:56:03"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
S1 = "hello"
@@ -10496,9 +10498,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = "17-Mar-14"
-SESSION_TIME = "15:53"
-SESSION_PID = "3592"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "15:55"
+SESSION_PID = "1266"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10508,15 +10510,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = "17-Mar-14"
-SESSION_TIME = "15:53"
-SESSION_PID = "3592"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "15:55"
+SESSION_PID = "1266"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = "17-Mar-14"
-SESSION_TIME = "15:53"
-SESSION_PID = "3592"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "15:55"
+SESSION_PID = "1266"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10550,9 +10552,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
! show the upper left coordinate limits labels as symbols
plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
show symbol lab*
-LAB1 = "FERRET Ver. 6.861"
+LAB1 = "FERRET Ver. 6.93"
LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "17-MAR-2014 15:53:27"
+LAB3 = "29-OCT-2014 15:56:03"
LABX = "X"
LAB4 = "Y : 10"
LABNUM_Y = "4"
@@ -10647,18 +10649,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.861"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5PAE 32-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:50:21 $"
+NETCDF_VERSION = "4.3.3-rc2 of Oct 6 2014 16:16:52 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "17-Mar-14"
-SESSION_TIME = "15:53"
-SESSION_PID = "3592"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "15:55"
+SESSION_PID = "1266"
DELTA_CPU = "0.010998"
-CLOCK_SECS = "7.372"
-CURRENT_DATE = "17-Mar-14"
-CURRENT_TIME = "15:53:27"
+CLOCK_SECS = "7.661"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "15:56:03"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -12353,7 +12355,7 @@ set region/l=1/k=1/i=101:105/j=46:50
load temp[gx=u]
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12404,7 +12406,7 @@ Dynamic axes:
list temp[gx=u,k=20] ! err during read
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12448,7 +12450,7 @@ list temp[gx=a] ! uvar for grid name
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12495,7 +12497,7 @@ let tu = temp[gx=u,k=20]
list tu ! err during read
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12526,7 +12528,7 @@ set mem/siz = 10
list temp[gz=z999999,z=5:15] ! err during regrid
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12542,7 +12544,7 @@ set mem/siz=`save_mem`
shade 1/0 * temp[gx=u] ! err during plot
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12574,7 +12576,7 @@ list temp[gx=psxu]
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12616,7 +12618,7 @@ list temp[gx=u]
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12656,7 +12658,7 @@ list temp[gx=psxu] + 5
0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12682,7 +12684,7 @@ list 5 + temp[gx=psxu]
0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12709,7 +12711,7 @@ list tu
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12720,7 +12722,7 @@ Dynamic grids:
Dynamic axes:
no implicit axes
show grid tu
- GRID (G003)
+ GRID (G004)
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12745,7 +12747,7 @@ list tu
0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12824,7 +12826,7 @@ list temp[gx=taux] ! X only
0.17S / 45: 27.8727 27.7878 27.7232 27.6494 27.5563 27.4494
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12935,7 +12937,7 @@ Dynamic axes:
! * * * dynamic generation of pseudo-variables * * *
list x[x=.1:1:.1] ! dynamic abstract
VARIABLE : X
- axis (AX003)
+ axis (AX005)
SUBSET : 10 points (X)
0.1 / 1: 0.10000
0.2 / 2: 0.20000
@@ -12949,7 +12951,7 @@ list x[x=.1:1:.1] ! dynamic abstract
1 / 10: 1.00000
list x[gx=psxu,x=130:150:2.5] ! dynamic based on named axis
VARIABLE : X
- axis (AX004)
+ axis (AX003)
SUBSET : 9 points (LONGITUDE)
130E / 1: 130.000
132.5E / 2: 132.500
@@ -13036,24 +13038,24 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX002) X 7 r 0.1 9.1
- (AX004) Y 3 r 95 109
+ (AX004) X 7 r 0.1 9.1
+ (AX003) Y 3 r 95 109
normal Z
normal T
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 7 r 0.1 9.1
- (AX003) Y 10 r 101 110
+ (AX004) X 7 r 0.1 9.1
+ (AX005) Y 10 r 101 110
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX004) use count: 1
- AXIS (AX002) use count: 2
AXIS (AX003) use count: 1
+ AXIS (AX004) use count: 2
+ AXIS (AX005) use count: 1
! ambiguous coordinate tests
list/order=x x[x=0.1:10:1.5] + x[x=1.1:11:1.5]
@@ -13071,16 +13073,16 @@ list/order=x a
1.2000 4.2000 7.2000 10.2000 13.2000 16.2000 19.2000
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
- (AX004) X 7 r 0.1 9.1
+ (AX003) X 7 r 0.1 9.1
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX004) use count: 1
+ AXIS (AX003) use count: 1
! box size on dynamic axes
cancel region
@@ -13104,10 +13106,10 @@ let/quiet b = a[i=1:10:2]
load b ! "child" irregular axis
show grid/x
Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
- GRID (G003)
+ Last successful data access was on grid (G004)
+ GRID (G004)
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
@@ -13139,7 +13141,7 @@ list/i=1:10 x[gx=temp] ! from named variable
139.5E / 10: 139.500
list x[g=temp,x=150w:130w:2.5] ! dynamic based on named variable
VARIABLE : X
- axis (AX005)
+ axis (AX001)
FILENAME : gtsa056_1.cdf
SUBSET : 9 points (LONGITUDE)
150W / 1: 210.000
@@ -13153,7 +13155,7 @@ list x[g=temp,x=150w:130w:2.5] ! dynamic based on named variable
130W / 9: 230.000
list x[gx=temp,x=150w:130w:2.5] ! dynamic based on named variable
VARIABLE : X
- axis (AX003)
+ axis (AX005)
FILENAME : gtsa056_1.cdf
SUBSET : 9 points (LONGITUDE)
150W / 1: 210.000
@@ -13181,16 +13183,16 @@ list/i=101:105/j=46:50/l=1/k=1 temp+x ! grid inherited from expression
0.17N / 46: 254.456 255.346 256.243 257.163 258.142
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX002) use count: 1
+ AXIS (AX004) use count: 1
! this expression does NOT inherit the X axis -- the result is
! i) ambiguous X axis coordinates
@@ -13212,23 +13214,23 @@ show grid/dynamic
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX004) LONGITUDE 5 r 129.5W 113.5W
+ (AX003) LONGITUDE 5 r 129.5W 113.5W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13251,7 +13253,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
! deliberate errors: ****
list x[i=5:1:1] ! not an error: inverted order
VARIABLE : X
- axis (AX004)
+ axis (AX003)
SUBSET : 5 points (X)
1 / 1: 1.00000
2 / 2: 2.00000
@@ -13296,23 +13298,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX004) LONGITUDE 6 i 108.5W(-468.5) 98.5W(-458.5)
+ (AX003) LONGITUDE 6 i 108.5W(-468.5) 98.5W(-458.5)
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
! regular dynamic axis
! ... by subscript
@@ -13380,22 +13382,22 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX004) LATITUDE 4 r 0.5S 4N
+ (AX003) LATITUDE 4 r 0.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
! ========
! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13557,24 +13559,24 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 4 r 130W 121W
- (AX003) LATITUDE 4 r 0.5S 4N
+ (AX001) LONGITUDE 4 r 130W 121W
+ (AX005) LATITUDE 4 r 0.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX003) use count: 1
AXIS (AX005) use count: 1
- AXIS (AX002) use count: 1
+ AXIS (AX001) use count: 1
+ AXIS (AX004) use count: 1
! the same tests but now on a nested definition
! regular dynamic axis
@@ -13742,23 +13744,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX003) LONGITUDE 6 r 138W 113W
+ (AX005) LONGITUDE 6 r 138W 113W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 4 r 130W 121W
+ (AX001) LONGITUDE 4 r 130W 121W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
- AXIS (AX003) use count: 1
AXIS (AX005) use count: 1
+ AXIS (AX001) use count: 1
! irregular dynamic axis
! ... by subscript
@@ -13896,23 +13898,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 8 r 90W 62W
+ (AX001) LONGITUDE 8 r 90W 62W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX002) LATITUDE 6 r 3.5S 4N
+ (AX004) LATITUDE 6 r 3.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 1
- AXIS (AX002) use count: 1
+ AXIS (AX001) use count: 1
+ AXIS (AX004) use count: 1
! nested modulo (the dynamic axis is **NOT** modulo)
! ... by subscript
@@ -14094,23 +14096,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX002) LONGITUDE 9 r 101W 53W
+ (AX004) LONGITUDE 9 r 101W 53W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX003) LONGITUDE 8 r 90W 62W
+ (AX005) LONGITUDE 8 r 90W 62W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
- AXIS (AX002) use count: 1
- AXIS (AX003) use count: 1
+ AXIS (AX004) use count: 1
+ AXIS (AX005) use count: 1
! calendar axes
list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave] ! 6-day ave
@@ -14142,7 +14144,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`] ! pseudo-var
!-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48] ! pseudo-var
VARIABLE : T
- axis (AX004)
+ axis (AX003)
SUBSET : 3 points (TIME)
15-JAN-1982 00 / 1: 723925.
17-JAN-1982 00 / 2: 723927.
@@ -14754,7 +14756,7 @@ show data/full
on grid G016_NYZ with -1.E+34 for missing data
X=130E:140E
JK J1+K1 ... 5:10 5:15 ... ... ...
- on grid G007_NXT with -1.E+34 for missing data
+ on grid G008_NXT with -1.E+34 for missing data
Y=21.11S:12.52S Z=40:190
IJK TEMP[L=@AVE] 70:72 1:100 1:27 ... ... ...
(T=15-MAR-1983 09:30:15-MAR-1983 11:30)
@@ -17826,10 +17828,10 @@ list a2[gx=xoffset at ave, gy=yoffset at ave]
eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
pseudo Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
-DELETE X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A2 M:297 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -17862,10 +17864,10 @@ list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:298 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
pseudo Y M:297 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE Y M:297 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
-DELETE X M:298 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A2 M:298 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -17899,10 +17901,10 @@ list a2[gx=xoffset at var, gy=yoffset at var]
eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
pseudo Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
-DELETE X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A2 M:297 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -18100,18 +18102,18 @@ list a5[gx=x5 at max] ! note: top dest axis point, only, looks at point above
allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 2 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A5 --> (G008) @MAX
+ allocate dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ strip regrid on X: A5 --> (G002) @MAX
eval A5 C: 7 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:298 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A5 M:297 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
VARIABLE : X[GX=X5_EDGES]
regrid: 1 delta on X at MAX
SUBSET : 5 points (X)
@@ -18121,7 +18123,7 @@ list a5[gx=x5 at max] ! note: top dest axis point, only, looks at point above
4 / 4: 3.50000
5 / 5: 5.50000
let a5 = x[gx=x5_edges, i=3]
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE A5 M:297 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE A5 M:299 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
@@ -25628,7 +25630,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Mon Mar 17 15:53:35 PDT 2014
+Wed Oct 29 15:56:10 PDT 2014
GO bn_reset
cancel mode verify
@@ -25755,7 +25757,7 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
1N / 46: 29.1373 28.9243 28.3264
1S / 45: 28.8965 28.8240 28.5357
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -26252,7 +26254,7 @@ Dynamic grids:
GRID (G017) use count: 2
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX001) LATITUDE 5 r 1S 1N
+ (AX002) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -26260,13 +26262,13 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX001) LATITUDE 5 r 1S 1N
+ (AX002) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
normal F
Dynamic axes:
- AXIS (AX001) use count: 2
+ AXIS (AX002) use count: 2
cancel memory/all
let/quiet a = sst[l=1,y=1s:1n:.5]
list SAMPLEI(a,{30,40,50})
@@ -26286,7 +26288,7 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX005) LATITUDE 5 r 1S 1N
+ (AX001) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -26294,13 +26296,13 @@ Dynamic grids:
GRID (G017) use count: 1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 5 r 1S 1N
+ (AX001) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 2
+ AXIS (AX001) use count: 2
! sampling a pseudo-variable
list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26457,9 +26459,9 @@ list SAMPLEI(Y[y=110:200:10],{3,4,7})
cancel memory/all
set mode diagnostic
list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
- dealloc dynamic grid (G017) NORMAL (AX001) NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT (AX001) NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT (AX001) NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G017) NORMAL (AX002) NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G006) ABSTRACT (AX002) NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G006) ABSTRACT (AX002) NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C09,V02 C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -26562,7 +26564,7 @@ list a ! <-- CACHE HIT FAILS!!!
set mode/last diagnostic
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -29157,15 +29159,15 @@ stat $1[gx=xtrop]
!-> stat sst[gx=xtrop]
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 52 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29184,7 +29186,7 @@ stat $1[gx=xtrop]
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29197,15 +29199,15 @@ stat $1[gx=xtrop]
-DELETE I M: 49 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 49 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29228,21 +29230,21 @@ let $1x = $1[gx=xtrop]
!-> DEFINE VARIABLE sstx = sst[gx=xtrop]
stat $1x
!-> stat sstx
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SSTX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTX C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 27 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -29260,7 +29262,7 @@ stat $1x
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29272,14 +29274,14 @@ stat $1x
-DELETE I M: 44 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTX C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 44 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -29298,24 +29300,24 @@ stat $1x
Standard deviation: 9.8848
define grid/x=xtrop gx
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SSTX M: 40 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SSTX M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
stat $1[g=gx]
!-> stat sst[g=gx]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 47 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29334,7 +29336,7 @@ stat $1[g=gx]
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29347,15 +29349,15 @@ stat $1[g=gx]
-DELETE I M: 43 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 43 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29377,19 +29379,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 (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 46 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
regrid SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X, 1 deg on Y
@@ -29408,7 +29410,7 @@ stat $1[gx=xtrop,gy=ytrop]
Mean value: 26.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29421,16 +29423,16 @@ stat $1[gx=xtrop,gy=ytrop]
-DELETE I M: 40 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 40 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
regrid SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X, 1 deg on Y
@@ -29451,7 +29453,7 @@ stat $1[gx=xtrop,gy=ytrop]
define grid/like=$1/x=xtrop/y=ytrop gxyt
!-> define grid/like=sst/x=xtrop/y=ytrop gxyt
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
@@ -29989,18 +29991,18 @@ stat $1[gx=xtrop]
!-> stat sst5[gx=xtrop]
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 50 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 42 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 42 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 42 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30019,7 +30021,7 @@ stat $1[gx=xtrop]
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST5 M: 42 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -30032,18 +30034,18 @@ stat $1[gx=xtrop]
-DELETE I M: 42 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 42 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 45 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 45 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 45 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30066,24 +30068,24 @@ let $1x = $1[gx=xtrop]
!-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
stat $1x
!-> stat sst5x
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST5 M: 45 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5X C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SST5X C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 9 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 45 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 58 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST5[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -30101,7 +30103,7 @@ stat $1x
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30113,17 +30115,17 @@ stat $1x
-DELETE I M: 61 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SST5X C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 9 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 61 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 62 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST5[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -30144,20 +30146,20 @@ stat $1x
define grid/x=xtrop gx
stat $1[g=gx]
!-> stat sst5[g=gx]
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 65 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 66 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30176,7 +30178,7 @@ stat $1[g=gx]
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30188,18 +30190,18 @@ stat $1[g=gx]
-DELETE I M: 68 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 68 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 69 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30221,7 +30223,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 (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST5 --> GXYT @LIN
@@ -30439,7 +30441,7 @@ let $1xyt = $1[g=gxyt]
dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-DELETE SST5X M: 60 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5X M: 64 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST5 M: 58 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 62 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 66 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -31040,7 +31042,7 @@ say `a,return=isize`
getgrid (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -31164,7 +31166,7 @@ cancel mode verify
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE (C09,V11 M: 79 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE (C09,V11 M: 90 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
-DELETE (C01,V11 M: 84 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE (C01,V11 M: 93 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
@@ -31388,7 +31390,7 @@ show grid
GRID (G012)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 201 r 10S 10N
+ (AX001) LATITUDE 201 r 10S 10N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -31398,7 +31400,7 @@ Dynamic grids:
GRID (G012) use count: 1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 201 r 10S 10N
+ (AX001) LATITUDE 201 r 10S 10N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -31412,7 +31414,7 @@ Dynamic grids:
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 1
+ AXIS (AX001) use count: 1
AXIS (AX012) use count: 1
AXIS (AX020) use count: 1
@@ -31532,7 +31534,7 @@ SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2] ! implicit Y axis
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31541,7 +31543,7 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 41 r 10S 2S
+ (AX001) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31550,7 +31552,7 @@ SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
@@ -31559,7 +31561,7 @@ SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2]) ! abstract X axis
GRID (G018)
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31576,15 +31578,15 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
- (AX005) T (CYC/hour) 2 r 0.00034224 0.00068448
+ (AX001) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
GRID (G018)
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31597,7 +31599,7 @@ SHOW GRID
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 41 r 10S 2S
+ (AX001) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31609,14 +31611,14 @@ SHOW GRID
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
list/j=1:5 j
VARIABLE : J
- axis (AX002)
+ axis (AX004)
SUBSET : 5 points (LATITUDE)
9.2S / 5: 5.00000
9.4S / 4: 4.00000
@@ -31628,7 +31630,7 @@ SHOW GRID MYGRID
GRID MYGRID
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31638,14 +31640,14 @@ Dynamic grids:
GRID (G011) use count: 1
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
Dynamic axes:
AXIS (AX011) use count: 1
- AXIS (AX002) use count: 2
+ AXIS (AX004) use count: 2
AXIS (AX020) use count: 1
@@ -31800,7 +31802,7 @@ sh data
sh grid ndata
GRID GSH1
name axis # pts start end
- PSXT91_100 LONGITUDE 10mr 139.5W 130.5W
+ PSXT191_100 LONGITUDE 10mr 139.5W 130.5W
PSYT39_51 LATITUDE 13 i 2.167S 1.833N
PSZT1_1 DEPTH (m) 1 r- 5 5
TWEEKS1 TIME 21 r 20-AUG-1982 00:00 07-JAN-1983 00:00
@@ -34068,9 +34070,6 @@ SORTN(DAT)
SORTN_STR(STR)
Returns indices of string data, sorted on the N axis in increasing order, null strings at the end
STR: String variable to sort in N (STRING)
-SORTI_STR(DAT)
- Returns indices of string data, sorted on the I axis in increasing order
- DAT: String variable to sort in I (STRING)
sh func/ext sample*
SAMPLEI(TO_BE_SAMPLED,X_INDICES)
sample a field at a list of X indices
@@ -34179,28 +34178,10 @@ SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
XPTS: X values of sample points
YPTS: Y values of sample points
TPTS: T values of sample points
-SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to I indices which may vary in JKL
- I_INDICES: indices upon which to sample
- DAT_TO_SAMPLE: data to sample using I indices
-SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to J indices which may vary in IKL
- J_INDICES: ordered indices
- DAT_TO_SAMPLE: data to sample using J indices
-SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to K indices which may vary in IJL
- K_INDICES: ordered indices
- DAT_TO_SAMPLE: data to sample using K indices
-SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to L indices which may vary in IJK
- L_INDICES: ordered indices
- DAT_TO_SAMPLE: data to sample using L indices
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
- Returns data sampled at a set of (X,Y,T) points, using nearest grid intersection
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- XPTS: X values of sample points
- YPTS: Y values of sample points
- TPTS: T values of sample points
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -36890,56 +36871,56 @@ show data/var
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V2 V2 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V3 V3 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V4 V4 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V5 V5 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V5 V5 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V6 V6 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V7 V7 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V8 V8 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V9 V9 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V10 V10 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
/DELIMITERS="\t,\,"
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
@@ -37038,11 +37019,11 @@ show data
currently SET data sets:
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- A1 A1 1:20480 ... ... ... ... ...
- A2 A2 1:20480 ... ... ... ... ...
- A3 A3 1:20480 ... ... ... ... ...
- A4 A4 1:20480 ... ... ... ... ...
- A5 A5 1:20480 ... ... ... ... ...
+ A1 A1 1:7 ... ... ... ... ...
+ A2 A2 1:7 ... ... ... ... ...
+ A3 A3 1:7 ... ... ... ... ...
+ A4 A4 1:7 ... ... ... ... ...
+ A5 A5 1:7 ... ... ... ... ...
list a1,a2,a3,a4,a5
DATA SET: ./bn_delimited_read_1.dat
@@ -37150,18 +37131,18 @@ show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
file/form=delimited/delimiter=" " bn_delimited_read_2.dat
show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
(Julian days since 1-Jan-1900)
- V2 V2 1:20480 ... ... ... ... ...
+ V2 V2 1:3 ... ... ... ... ...
(Time of day)
- V3 V3 1:20480 ... ... ... ... ...
+ V3 V3 1:3 ... ... ... ... ...
(all values missing)
list v1,v2
@@ -37462,367 +37443,367 @@ show data/full
1> ./bn_delimited_read_CO2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V2 V2 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V3 V3 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V4 V4 1:20 ... ... ... ... ...
(Julian days since 1-Jan-1900)
Data type = NUMERIC
Conversion /TYPE=DATE
- days on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V5 V5 1:20480 ... ... ... ... ...
+ days on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V5 V5 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V6 V6 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V7 V7 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V8 V8 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V9 V9 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V10 V10 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V11 V11 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V11 V11 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V12 V12 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V12 V12 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V13 V13 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V13 V13 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V14 V14 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V14 V14 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V15 V15 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V15 V15 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V16 V16 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V16 V16 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V17 V17 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V17 V17 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V18 V18 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V18 V18 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V19 V19 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V19 V19 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V20 V20 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V20 V20 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V21 V21 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V21 V21 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V22 V22 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V22 V22 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V23 V23 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V23 V23 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V24 V24 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V24 V24 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V25 V25 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V25 V25 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V26 V26 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V26 V26 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V27 V27 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V27 V27 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V28 V28 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V28 V28 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V29 V29 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V29 V29 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V30 V30 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V30 V30 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V31 V31 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V31 V31 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V32 V32 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V32 V32 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V33 V33 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V33 V33 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V34 V34 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V34 V34 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V35 V35 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V35 V35 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V36 V36 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V36 V36 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V37 V37 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V37 V37 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V38 V38 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V38 V38 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V39 V39 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V39 V39 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V40 V40 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V40 V40 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V41 V41 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V41 V41 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V42 V42 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V42 V42 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V43 V43 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V43 V43 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V44 V44 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V44 V44 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V45 V45 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V45 V45 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V46 V46 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V46 V46 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V47 V47 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V47 V47 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V48 V48 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V48 V48 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V49 V49 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V49 V49 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V50 V50 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V50 V50 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V51 V51 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V51 V51 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V52 V52 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V52 V52 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V53 V53 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V53 V53 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V54 V54 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V54 V54 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V55 V55 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V55 V55 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V56 V56 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V56 V56 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V57 V57 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V57 V57 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V58 V58 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V58 V58 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V59 V59 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V59 V59 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V60 V60 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V60 V60 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V61 V61 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V61 V61 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V62 V62 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V62 V62 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V63 V63 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V63 V63 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V64 V64 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V64 V64 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V65 V65 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V65 V65 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V66 V66 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V66 V66 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V67 V67 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V67 V67 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V68 V68 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V68 V68 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V69 V69 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V69 V69 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V70 V70 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V70 V70 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V71 V71 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V71 V71 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V72 V72 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V72 V72 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
/DELIMITERS="\t,\,"
/FORMAT = DELIMITED
@@ -38366,7 +38347,7 @@ set mode stupid
set mode diag
set mem/size=0.05
show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 0.2 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 100
@@ -38380,11 +38361,11 @@ show mem/free
use/ord=x-y test_100x100.nc
list/prec=1 a[i=1:100:10] ! this looks just right!!
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 100 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
strip regrid on X: A --> (G005) @XACT
strip reversing A on Y axis: 1 100 dset: 1
rdstride A C: 8 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -38392,7 +38373,7 @@ list/prec=1 a[i=1:100:10] ! this looks just right!!
-DELETE A M: 1 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
nulrgd A M: 1 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE A M: 2 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
VARIABLE : IF I EQ J THEN 1 ELSE A0
regrid: 10 delta on X
FILENAME : test_100x100.nc
@@ -38504,7 +38485,7 @@ show grid
Last successful data access was on grid (G005)
GRID (G005)
name axis # pts start end
- (AX010) X 10 r 1 91
+ (AX017) X 10 r 1 91
YAX1_100 Y 100 r 1 100
normal Z
normal T
@@ -38514,7 +38495,7 @@ show grid
! should be a diagonal path of steps all the way across the plot
shade a[i=1:100:10]
eval EX#1 C: 4 dset: 1 I: 1 100 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
strip regrid on X: A --> (G005) @XACT
strip reversing A on Y axis: 1 100 dset: 1
rdstride A C: 8 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -38522,7 +38503,7 @@ shade a[i=1:100:10]
-DELETE A M: 2 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
nulrgd A M: 2 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE A M: 3 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
setting up 2D plot
-DELETE A M: 3 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
PPL plot 279 complete
@@ -38833,8 +38814,11 @@ save/q/clob/file=g.nc b
can var a b
sp ncrename -h -v A,a f.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
sp ncrename -h -v A,a -v B,b f2.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 2 variables
sp ncrename -h -v B,b g.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
use f.nc
use f2.nc
use g.nc
@@ -39961,37 +39945,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
!-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
dealloc dynamic grid GFJ3 XAX_SUBSPANORMAL NORMAL TAX_SUBSPANORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- dealloc dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- strip regrid on X: V2D_REG --> (G008) @XACT
+ allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ strip regrid on X: V2D_REG --> (G002) @XACT
found V2D_REG M: 69 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid V2D_REG M: 70 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
.... 12.0000 14.0000 16.0000 11.0000 13.0000 15.0000 ....
l200n/order=x $2[l=1,i=0:14:7]
!-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
............
set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
!-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc dynamic grid (G008) (AX017) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G002) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
-DELETE V2D_REG M: 71 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- dealloc dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
+ allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ dealloc dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- strip regrid on T: V2D_REG --> (G008) @XACT
+ allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ strip regrid on T: V2D_REG --> (G002) @XACT
strip moduloing V2D_REG on T axis: 1 15 dset: 1
rdstride V2D_REG C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
doing moduloing V2D_REG on T axis: 1 5 dset: 1
-DELETE V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
nulrgd V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
-DELETE V2D_REG M: 72 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
+ dealloc dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
16-JAN-0000 / 1: 11.000
16-MAR-0000 / 2: 71.000
15-MAY-0000 / 3: 131.000
@@ -40490,29 +40474,29 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
!-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
dealloc dynamic grid GFJ4 XIRREG_SUBNORMAL NORMAL TIRREG_SUBNORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
strip regrid on X: V2D_IRR --> (G018) @XACT
found V2D_IRR M:146 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid V2D_IRR M:147 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
.... 12.0000 14.0000 16.0000 11.0000 12.1000 15.0000 ....
l200n/order=x $2[l=1,i=0:14:7]
!-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
............
set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
!-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc dynamic grid (G018) (AX010) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
-DELETE V2D_IRR M:148 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
+ allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
+ allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
strip regrid on T: V2D_IRR --> (G018) @XACT
strip moduloing V2D_IRR on T axis: 1 15 dset: 1
rdstride V2D_IRR C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
@@ -40520,7 +40504,7 @@ set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
-DELETE V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
nulrgd V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
-DELETE V2D_IRR M:149 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
+ dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
16-JAN-0000 / 1: 11.000
15-MAR-0000 / 2: 70.249
15-MAY-0000 / 3: 131.249
@@ -44858,52 +44842,52 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
load a
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
eval A C: 6 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- strip regrid on X: TAUX --> (G023) @XACT
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ strip regrid on X: TAUX --> (G022) @XACT
rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
nulrgd TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE TAUX M:146 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
can mem/all
-DELETE A M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
def grid/like=taux agrid
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6 NORMAL NORMAL
set mode diag
let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
dealloc dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6 NORMAL NORMAL
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
load a
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
eval A C: 6 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- strip regrid on X: TAUX --> (G023) @XACT
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ strip regrid on X: TAUX --> (G022) @XACT
rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
nulrgd TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE TAUX M:151 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
can mem/all
-DELETE TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE A M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
can data/all
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
! Some tests taken from bn_strides_revs_perms.jnl but with
! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44971,16 +44955,16 @@ LIST VAR[i=2:4:2,j=1:3:2]
dealloc dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
-DELETE VAR M:147 dset: 1 I: 1 2 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G014) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
nulrgd VAR M:146 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
FILENAME : bn_strides.cdf
@@ -45001,19 +44985,19 @@ CANC MEM/ALL
! modulo requests cannot use strides (as this example shows)
set axis/modulo XAX1_4
LIST VAR[I=1:10:3,j=1,k=1,l=1] ! 1, 4, 7(3), 10(2)
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G014) @XACT
strip moduloing VAR on X axis: 1 10 dset: 1
reading VAR M:151 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing VAR on X axis: 1 4 dset: 1
regrid VAR M:147 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 3 delta on X
FILENAME : bn_strides.cdf
@@ -45034,7 +45018,7 @@ cancel axis/modulo XAX1_4
! strides applied to more than one axis need special attention in IS_REGRID
LIST VAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
@@ -45063,16 +45047,16 @@ LIST VAR[i=2:6:2,j=1:5:2]
dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
-DELETE VAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G014) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
nulrgd VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
FILENAME : bn_strides.cdf
@@ -45089,7 +45073,7 @@ LIST VAR[i=2:6:2,j=1:5:2]
! test sub-region selection on strides axis
let a = bigvar[i=1:40:5]
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
-DELETE VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
list/j=1/k=1/l=1 a[i=3:5]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -45164,17 +45148,17 @@ cancel mem/all
LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 3 6 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G001) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
nulrgd UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE UNE-NVAR M:151 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
FILENAME : bn_strides.cdf
@@ -45192,7 +45176,7 @@ set region/i=3:6/j=2:4/k=1:2/l=1
use/order=yx bn_strides
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
-DELETE UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
@@ -46556,7 +46540,7 @@ set axis/units=feet `temp,return=zaxis`
show axis `temp,return=zaxis`
!-> show axis PSZT
name axis # pts start end
- PSZT Z (FEET) 27 i- 5 3824
+ PSZT Z (feet) 27 i- 5 3824
Axis span (to cell edges) = 4149
! unrecognized units
@@ -46565,7 +46549,7 @@ set axis/units="something" `temp,return=xaxis`
show axis `temp,return=xaxis`
!-> show axis PSXT1
name axis # pts start end
- PSXT1 X (SOMETHING) 160mr 130.5 289.5
+ PSXT1 X (something) 160mr 130.5 289.5
Axis span (to cell edges) = 160 (modulo length = 360)
! restore lon
@@ -46582,7 +46566,7 @@ set axis/units=something `temp,return=xaxis`
show axis `temp,return=xaxis`
!-> show axis PSXT1
name axis # pts start end
- PSXT1 X (SOMETHING) 160mr 130.5 289.5
+ PSXT1 X (something) 160mr 130.5 289.5
Axis span (to cell edges) = 160 (modulo length = 360)
! restore lon using word DEG
@@ -46602,7 +46586,7 @@ list/x=130w/y=1/k=1/L=1:5 temp
SUBSET : 5 points (TIME)
LONGITUDE: 130.5W
LATITUDE : 0.833N
- Z (ZORRO): 5
+ Z (zorro): 5
130.5W
100
17-AUG-1982 12 / 1: 25.9777
@@ -46617,9 +46601,9 @@ set axis/units=meters `temp,return=yaxis`
list/x=222/k=1/l=1/y=-0.5:0.5 temp
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- SUBSET : 4 points (Y (METERS))
+ SUBSET : 4 points (Y (meters))
LONGITUDE: 138.5W
- Z (ZORRO): 5
+ Z (zorro): 5
TIME : AUG-1982
138.5W
92
@@ -46640,7 +46624,7 @@ list/x=222/k=1/l=1/y=-0.5:0.5 temp
FILENAME : gt4d011.cdf
SUBSET : 4 points (LATITUDE)
LONGITUDE: 138.5W
- Z (ZORRO): 5
+ Z (zorro): 5
TIME : AUG-1982
138.5W
92
@@ -46655,10 +46639,10 @@ set axis/units=meters `temp,return=taxis`
list/x=130w/y=1/k=1/l=1:5 temp
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- SUBSET : 5 points (T (METERS))
+ SUBSET : 5 points (T (meters))
LONGITUDE: 130.5W
LATITUDE : 0.833N
- Z (ZORRO): 5
+ Z (zorro): 5
130.5W
100
22702 / 1: 25.9777
@@ -46673,9 +46657,9 @@ show grid temp
GRID PS3DT2
name axis # pts start end
PSXT1 LONGITUDE 160mr 130.5E 70.5W
- PSYT Y (SECONDS) 100 i -28.836 48.568
- PSZT Z (ZORRO) 27 i- 5 3824
- TIME11 T (METERS) 25 r 22702 26206
+ PSYT Y (seconds) 100 i -28.836 48.568
+ PSZT Z (zorro) 27 i- 5 3824
+ TIME11 T (meters) 25 r 22702 26206
normal E
normal F
@@ -48324,11 +48308,11 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver. 6.861
+ LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver. 6.93
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 2 8.000E+00 7.100E+00 0.060 0 SYSTEM @ASNOAA/PMEL TMAP
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS17-MAR-2014 15:54:03
+ LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS29-OCT-2014 15:56:43
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
@@ -49444,11 +49428,11 @@ let the_data_var = {4,5,4}
list/format=comma country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY,ID,AA,BB,NEWCOUNTRY,THE_DATA_VAR
1 / 1:"JP",1,4000,1000500,"w",4
@@ -49457,11 +49441,11 @@ list/format=comma country, id, aa, bb, newcountry, the_data_var
list/format=tab/norow country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY ID AA BB NEWCOUNTRY THE_DATA_VAR
"JP" 1 4000 1000500 "w" 4
@@ -49605,7 +49589,7 @@ GO bn_long_revision_num.jnl
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.861"
+FERRET_VERSION = "6.93"
! history attribute
let a = 12
@@ -49623,7 +49607,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET version6.861:
+ Commands in Program FERRET version6.93:
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
@@ -49638,7 +49622,7 @@ sho command
SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/SIGMA
/CURVILIN
SET GRID/SAVE/RESTORE
- SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
SET MEMORY/SIZE
SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
SET NCCACHE/SIZE/NELEMS/PREEMPT
@@ -49759,7 +49743,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "17-Mar-14:15:53"
+WIN_TITLE = "29-Oct-14:15:55"
set win/title="set the title"
sho sym win_title
@@ -49777,7 +49761,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title="17-Mar-14:15:53"
+ !-> set win/title="29-Oct-14:15:55"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -49786,16 +49770,16 @@ set win/title="($session_date):($session_time)"
! If so substitute another string.
DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 17-Mar-14
+ !-> DEFINE SYMBOL the_date = 29-Oct-14
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:53
+ !-> DEFINE SYMBOL the_time = 15:55
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="17-Mar-14:15:53"
+ !-> SET WIN/TITLE="29-Oct-14:15:55"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "17-Mar-14:15:53"
+WIN_TITLE = "29-Oct-14:15:55"
GO bn_reset
cancel mode verify
@@ -52864,10 +52848,6 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
Returns 1 if 1st arg contains any of the values in 2nd arg, 2 if case-insensitve match, else 0
VAR: string (STRING)
VALUES: strings to search (STRING)
-IS_ELEMENT_OF_STR(VAR,VALUES)
- Returns 1 if first argument contains any of the values in argument 2, else 0
- VAR: data to test (STRING)
- VALUES: strings to search for (STRING)
! FILL on data with subspan modulo axis, got wrong data
GO bn_reset
@@ -54101,40 +54081,40 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
-(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
- modulo DOUBLE 1 T 360
+(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
+ modulo DOUBLE 1 T 360
axis CHAR 1 T X
standard_name CHAR 9 F longitude
- orig_file_axnameCHAR 10 F PSXT91_108
+ orig_file_axnameCHAR 11 F PSXT191_108
-(PSYT35_56) DOUBLE units CHAR 13 T degrees_north
+(PSYT135_56) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 6 T uneven
axis CHAR 1 T Y
standard_name CHAR 8 F latitude
- bounds CHAR 14 T PSYT35_56_bnds
- orig_file_axnameCHAR 9 F PSYT35_56
+ bounds CHAR 15 T PSYT135_56_bnds
+ orig_file_axnameCHAR 10 F PSYT135_56
- PSYT35_56_bnds DOUBLE
+ PSYT135_56_bnds DOUBLE
-(PSZT1_10) DOUBLE units CHAR 6 T METERS
+(PSZT11_10) DOUBLE units CHAR 6 T meters
positive CHAR 4 T down
point_spacing CHAR 6 T uneven
axis CHAR 1 T Z
standard_name CHAR 5 F depth
- bounds CHAR 13 T PSZT1_10_bnds
- orig_file_axnameCHAR 8 F PSZT1_10
+ bounds CHAR 14 T PSZT11_10_bnds
+ orig_file_axnameCHAR 9 F PSZT11_10
- PSZT1_10_bnds DOUBLE
+ PSZT11_10_bnds DOUBLE
(TIME11) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
time_origin CHAR 20 T 14-JAN-1980 14:00:00
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 5 F TIME1
+ orig_file_axnameCHAR 6 F TIME11
TEMP FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -54146,40 +54126,40 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
-(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
- modulo DOUBLE 1 T 360
+(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
+ modulo DOUBLE 1 T 360
axis CHAR 1 T X
standard_name CHAR 9 F longitude
- orig_file_axnameCHAR 10 F PSXT91_108
+ orig_file_axnameCHAR 11 F PSXT191_108
-(PSYT35_56) DOUBLE units CHAR 13 T degrees_north
+(PSYT135_56) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 6 T uneven
axis CHAR 1 T Y
standard_name CHAR 8 F latitude
- bounds CHAR 14 T PSYT35_56_bnds
- orig_file_axnameCHAR 9 F PSYT35_56
+ bounds CHAR 15 T PSYT135_56_bnds
+ orig_file_axnameCHAR 10 F PSYT135_56
- PSYT35_56_bnds DOUBLE
+ PSYT135_56_bnds DOUBLE
-(PSZT1_10) DOUBLE units CHAR 6 T METERS
+(PSZT11_10) DOUBLE units CHAR 6 T meters
positive CHAR 4 T down
point_spacing CHAR 6 T uneven
axis CHAR 1 T Z
standard_name CHAR 5 F depth
- bounds CHAR 13 T PSZT1_10_bnds
- orig_file_axnameCHAR 8 F PSZT1_10
+ bounds CHAR 14 T PSZT11_10_bnds
+ orig_file_axnameCHAR 9 F PSZT11_10
- PSZT1_10_bnds DOUBLE
+ PSZT11_10_bnds DOUBLE
-(TIME12) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
+(TIME111) DOUBLE units CHAR 30 T hour since 1980-01-14 14:00:00
time_origin CHAR 20 T 14-JAN-1980 14:00:00
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 5 F TIME1
+ orig_file_axnameCHAR 6 F TIME11
TEMP FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -54538,12 +54518,12 @@ use coads_climatology
set axis/stride=6/offset=5 `sst,return=xaxis`
!-> set axis/stride=6/offset=5 COADSX
show axis `sst,return=xaxis`
- !-> show axis (AX005)
+ !-> show axis (AX009)
name axis # pts start end
- (AX005) LONGITUDE 30mr 31E 19E(379)
+ (AX009) LONGITUDE 30mr 31E 19E(379)
Axis span (to cell edges) = 360 (modulo length = axis span)
cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX005)
+ !-> cancel axis/stride (AX009)
!--- 8.2 stride value is not an integer factor of the axis length
! warning: it may lose modulo property
@@ -54767,9 +54747,9 @@ show axis `sst,return=xaxis`
(AX051) LONGITUDE 90mr 21E 17E(377)
Axis span (to cell edges) = 360 (modulo length = axis span)
show axis `sst,return=yaxis`
- !-> show axis (AX005)
+ !-> show axis (AX009)
name axis # pts start end
- (AX005) LATITUDE 45 r 89S 87N
+ (AX009) LATITUDE 45 r 89S 87N
Axis span (to cell edges) = 180
show axis `sst,return=taxis`
!-> show axis (AX048)
@@ -55349,9 +55329,6 @@ LEV_NUM = "28"
LEV_DEL = "0.05"
set view lr; shade/lev a; sh sym lev*
LEV_TEXT = ""
-Internal overflow expressing 500000.0 Mwords as words (1783793664)
-Unable to allocate the requested 500000.0 Mwords of memory.
-Memory remaining at 0.2 Mwords.
LEV_MIN = "-0.3"
LEV_MAX = "1.1"
LEV_NUM = "28"
@@ -55400,6 +55377,9 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
! Previously this did not have the effect of changing the precision.
LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=3 temp,salt
139.5W / 91: 27.3 2.37E-04
+Internal overflow expressing 500000.0 Mwords as words (1783793664)
+Unable to allocate the requested 500000.0 Mwords of memory.
+Memory remaining at 0.2 Mwords.
138.5W / 92: 27.3 2.38E-04
137.5W / 93: 27.2 2.38E-04
136.5W / 94: 27.2 2.38E-04
@@ -55498,7 +55478,7 @@ set mem/siz=90
sh sym ferret_memory
FERRET_MEMORY = "90"
show memory
- Current size of FERRET memory cache: 90 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 90 MegaWords (1 word = 8 bytes)
set mem/size=0.05
sh sym ferret_memory
@@ -55510,7 +55490,7 @@ FERRET_MEMORY = "0.2"
set mem/siz=25.6 ! return to the default setting
show memory
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
GO bn_reset
cancel mode verify
@@ -55772,31 +55752,38 @@ EXPND_BY_LEN_STR(var,len,nx)
FC_ISUBSET(index_list,lengths,nx,FullData)
EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+SEPARATE(A,Rowsize,FixLongitudes)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
-BIN_INDEX_WT(INDEX,WT,INDXMAX)
DATES(Offsets)
-EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EFSTRINGS(--)
FACTORIAL(A)
FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
-IS_ELEMENT_OF_STR(VAR,VALUES)
+LENGTH_OF_STRINGS(--)
+MAXSTRLEN(A)
PASS_THRU(A)
+PASS_THRU_STRING(A)
PERCENT_GOOD_T(A)
-SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
-SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
-SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
-SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-SORTI_STR(DAT)
+PICK_A_STRING(A,N)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SEPARATE(A,Rowsize,FixLongitudes)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
STORAGE(A)
STRING_ARG(Flags,NString)
+STRING_CAT3(A,B,C)
+STRING_LEN_SUM(S1,S2)
+STRINGS_AS_ARGS(S1,S2,NCHAR)
+STR_MISSING(MASK,STR,REPL)
STUDENT_T_CUTOFF(P,nf)
SUBTRACT(A,B)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
GO bn_reset
@@ -58349,7 +58336,7 @@ SORTI(DAT)
T: inherited from argument(s)
E: inherited from argument(s)
F: inherited from argument(s)
- DAT: variable to sort in I
+ DAT: variable to sort in I (FLOAT)
Influence on output axes:
X: no influence (indicate argument limits with "[]")
Y: passed to result grid
@@ -60006,10 +59993,10 @@ SH GRID am
GO bn_clock_syms
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "39.644"
-CLOCK_SECS = "68.286"
-CURRENT_DATE = "17-Mar-14"
-CURRENT_TIME = "15:54:28"
+DELTA_CPU = "40.2969"
+CLOCK_SECS = "69.632"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "15:57:05"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60018,8 +60005,8 @@ CURRENT_TIME = "15:54:28"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.037994"
-CLOCK_SECS = "68.357"
+DELTA_CPU = "0.043993"
+CLOCK_SECS = "69.723"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -60033,60 +60020,60 @@ repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=9
!-> REPEAT: K=10
let ten_plots = ($DELTA_CPU)
- !-> DEFINE VARIABLE ten_plots = 0.297955
+ !-> DEFINE VARIABLE ten_plots = 0.304954
sh sym DELTA_CPU, CLOCK_SECS
DELTA_CPU = "0"
-CLOCK_SECS = "69.07"
+CLOCK_SECS = "70.43"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "69.07"
+CLOCK_SECS = "70.431"
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.036995
- !-> DEFINE VARIABLE sumcpu =0.036995
+ !-> DEFINE VARIABLE dt = 0.030996
+ !-> DEFINE VARIABLE sumcpu =0.030996
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.06999
+ !-> DEFINE VARIABLE dt = 0.037994
+ !-> DEFINE VARIABLE sumcpu =0.06899
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.035994
- !-> DEFINE VARIABLE sumcpu =0.105984
+ !-> DEFINE VARIABLE dt = 0.042993
+ !-> DEFINE VARIABLE sumcpu =0.111983
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.030995
- !-> DEFINE VARIABLE sumcpu =0.136979
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.144978
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.032996
- !-> DEFINE VARIABLE sumcpu =0.169975
+ !-> DEFINE VARIABLE dt = 0.036995
+ !-> DEFINE VARIABLE sumcpu =0.181973
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.030995
- !-> DEFINE VARIABLE sumcpu =0.20097
+ !-> DEFINE VARIABLE dt = 0.031995
+ !-> DEFINE VARIABLE sumcpu =0.213968
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.234965
+ !-> DEFINE VARIABLE dt = 0.038995
+ !-> DEFINE VARIABLE sumcpu =0.252963
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.26996
+ !-> DEFINE VARIABLE dt = 0.040993
+ !-> DEFINE VARIABLE sumcpu =0.293956
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.037993
- !-> DEFINE VARIABLE sumcpu =0.307953
+ !-> DEFINE VARIABLE dt = 0.029995
+ !-> DEFINE VARIABLE sumcpu =0.323951
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.340948
+ !-> DEFINE VARIABLE dt = 0.037994
+ !-> DEFINE VARIABLE sumcpu =0.361945
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.340948
-0.340948
+ !-> MESSAGE/CONTINUE 0.361945
+0.361945
sh sym CLOCK_SECS
-CLOCK_SECS = "70.242"
+CLOCK_SECS = "71.655"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "17-Mar-14"
-SESSION_TIME = "15:53"
-CURRENT_DATE = "17-Mar-14"
-CURRENT_TIME = "15:54:30"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "15:55"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "15:57:07"
! ******** V6.3 Additions below ***********
@@ -60727,7 +60714,7 @@ LIST var
16-JAN-1969 / 20: 0.6617913
CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX133)
+ !-> CAN AXIS/STRIDE (AX139)
SET AXIS/STRIDE=12/OFFSET=11 truemonth ! every December
LIST var
VARIABLE : COS(T[GT=TRUEMONTH]/100)
@@ -60756,7 +60743,7 @@ LIST var
SET MODE IGNORE_ERRROR
! Previously didnt check for negative offset value
CAN AXIS/STRIDE `var,return=taxis`
- !-> CAN AXIS/STRIDE (AX139)
+ !-> CAN AXIS/STRIDE (AX130)
SET AXIS/STRIDE=12/OFFSET=-1 truemonth
! Previously didnt give err msg; just ignored non-positive stride value
@@ -61318,11 +61305,11 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
strip regrid on T: TEMP --> ZNTERMED @AVE
reading TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
regrid TEMP M: 42 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
-DELETE TEMP M: 42 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 42 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
FILENAME : gtsa056_1.cdf
@@ -61342,13 +61329,13 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijkl
strip regrid on Z: TEMP --> YNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @LIN
found TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid TEMP M: 32 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
-DELETE TEMP M: 32 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
regrid TEMP M: 32 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
FILENAME : gtsa056_1.cdf
@@ -61368,11 +61355,11 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijkl
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @ASN
found TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid TEMP M: 29 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 34 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
-DELETE TEMP M: 29 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
@@ -61401,7 +61388,7 @@ plot temp
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid PS3DT1 PSXT1 PSYT1 PSZT2 TIME14 NORMAL NORMAL
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
setting up plot
PPL plot 753 complete
plot/over temp[g=u]
@@ -61411,12 +61398,12 @@ plot/over temp[g=u]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 28 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 27 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
@@ -61428,7 +61415,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
strip regrid on T: TEMP --> XNTERMED @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
@@ -61443,7 +61430,7 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
@@ -61459,12 +61446,12 @@ plot/over temp[g=u at ave]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @AAV
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 26 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @AAV
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 19 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
@@ -61476,7 +61463,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
strip regrid on T: TEMP --> XNTERMED @AVE
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 17 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
@@ -62606,65 +62593,65 @@ sp cat the_xml_file.xml
<value>8765.82</value>
</attribute>
</axis>
-<axis name="ZAXLEVIT191_1">
+<axis name="XAX_LEV9421_380">
<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
+ <value><![CDATA[I]]></value>
</attribute>
<attribute name="units" type="char">
- <value><![CDATA[METERS]]></value>
+ <value><![CDATA[degrees_east]]></value>
</attribute>
<attribute name="length" type="short">
- <value>1</value>
+ <value>360</value>
</attribute>
<attribute name="start" type="double">
- <value>0</value>
+ <value>20.5</value>
</attribute>
<attribute name="end" type="double">
- <value>0</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
+ <value>379.5</value>
</attribute>
<attribute name="point_spacing" type="char">
<value><![CDATA[even]]></value>
</attribute>
<attribute name="modulo" type="char">
- <value>no</value>
+ <value><![CDATA[yes]]></value>
</attribute>
<attribute name="infile_datatype" type="char">
<value><![CDATA[DOUBLE]]></value>
</attribute>
<attribute name="orig_file_axname" type="char">
- <value><![CDATA[ZAXLEVIT191_1]]></value>
+ <value><![CDATA[XAX_LEV9421_380]]></value>
</attribute>
</axis>
-<axis name="XAX_LEV9421_380">
+<axis name="ZAXLEVIT191_1">
<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
+ <value><![CDATA[K]]></value>
</attribute>
<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
+ <value><![CDATA[METERS]]></value>
</attribute>
<attribute name="length" type="short">
- <value>360</value>
+ <value>1</value>
</attribute>
<attribute name="start" type="double">
- <value>20.5</value>
+ <value>0</value>
</attribute>
<attribute name="end" type="double">
- <value>379.5</value>
+ <value>0</value>
+</attribute>
+<attribute name="positive" type="char">
+ <value><![CDATA[down]]></value>
</attribute>
<attribute name="point_spacing" type="char">
<value><![CDATA[even]]></value>
</attribute>
<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
+ <value>no</value>
</attribute>
<attribute name="infile_datatype" type="char">
<value><![CDATA[DOUBLE]]></value>
</attribute>
<attribute name="orig_file_axname" type="char">
- <value><![CDATA[XAX_LEV9421_380]]></value>
+ <value><![CDATA[ZAXLEVIT191_1]]></value>
</attribute>
</axis>
<axis name="YAX_LEV94">
@@ -62935,7 +62922,7 @@ define axis/t=1-jan-2010:30-mar-2010:1/units=days tin
define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
let tt = t[gt=tout,L=1:10]
sh grid tt
- GRID (G089)
+ GRID (G091)
name axis # pts start end
normal X
normal Y
@@ -63142,7 +63129,7 @@ list/x=2:3 sgrid
let tpts = 39798 + 87*RANDU(I)
show grid tt
- GRID (G103)
+ GRID (G089)
name axis # pts start end
X10 X 201 r 0 10
Y10 Y 201 r 0 10
@@ -64062,9 +64049,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.861 "
- 3 / 3:" ! Linux 2.6.18-371.4.1.el5PAE 32-bit - 03/17/14"
- 4 / 4:" ! 17-Mar-14 15:53 "
+ 2 / 2:" ! FERRET v6.93 "
+ 3 / 3:" ! Linux 2.6.18-398.el5PAE 32-bit - 10/29/14"
+ 4 / 4:" ! 29-Oct-14 15:55 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -64126,23 +64113,24 @@ sh trans
variable transforms e.g.SST[T=1-jan:15-mar at DDC]
code description code description
---- ----------- ---- -----------
- @ITP interpolated @SPZ Parzen smoothed
- @AVE averaged @FAV ave-filled
- @VAR variance @FLN linear-filled
- @SUM summed @FNR nearest-filled
- @RSU running sum @NGD number of valid
- @SHF shifted @NBD number flagged bad
- @MIN minimum @LOC location
- @MAX maximum @WEQ weighted equal
- @DDC centered derivative @CDA closest dist above
- @DDF forward derivative @CDB closest dist below
- @DDB backwards derivative @CIA closest index above
- @DIN integrated @CIB closest index below
- @IIN indef. integ. @EVN event mask
- @SBX box smoothed @MED median smoothed
- @SBN binomial smoothed @SMX maximum smoothed
- @SWL Welch smoothed @SMN minimum smoothed
- @SHN Hanning smoothed
+ @ITP interpolated @FAV ave-filled
+ @AVE averaged @FLN linear-filled
+ @VAR variance @FNR nearest-filled
+ @SUM summed @NGD number of valid
+ @RSU running sum @NBD number flagged bad
+ @SHF shifted @LOC location
+ @MIN minimum @WEQ weighted equal
+ @MAX maximum @CDA closest dist above
+ @DDC centered derivative @CDB closest dist below
+ @DDF forward derivative @CIA closest index above
+ @DDB backwards derivative @CIB closest index below
+ @DIN integrated @EVN event mask
+ @IIN indef. integ. @MED median smoothed
+ @SBX box smoothed @SMX maximum smoothed
+ @SBN binomial smoothed @SMN minimum smoothed
+ @SWL Welch smoothed @STD standard deviation
+ @SHN Hanning smoothed @WGT weights for avg,int
+ @SPZ Parzen smoothed
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
@@ -66285,7 +66273,7 @@ let a = x[gx=0:2:1]; save/clob/file=a1.nc a
sho grid/x a
GRID (G101)
name axis # pts start end
- (AX128) X 3 r 0 2
+ (AX129) X 3 r 0 2
normal Y
normal Z
normal T
@@ -66301,7 +66289,7 @@ let a = x[gx=1:3:1]; save/clob/file=a2.nc a
sho grid/x a
GRID (G101)
name axis # pts start end
- (AX120) X 3 r 1 3
+ (AX116) X 3 r 1 3
normal Y
normal Z
normal T
@@ -66322,14 +66310,14 @@ can var/all; can dat/all
use a1
list x[gx=a[d=1]]
VARIABLE : X
- axis AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
2 / 3: 2.000
list x[gx=a[d=1,i=1:3]]
VARIABLE : X
- axis AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66344,7 +66332,7 @@ use a2
list x[gx=a[d=1]]
VARIABLE : X
- axis AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66353,7 +66341,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 AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66369,7 +66357,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 AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66532,40 +66520,40 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.122
-randu2_randn2 0.552
-randu2_randn2 0.336
-randu2_randn2 0.760
-randu2_randn2 0.809
+randu2_randn2 0.686
+randu2_randn2 0.027
+randu2_randn2 0.551
+randu2_randn2 0.149
+randu2_randn2 0.450
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.671
-randu2_randn2 0.410
-randu2_randn2 0.644
-randu2_randn2 0.858
-randu2_randn2 0.128
+randu2_randn2 0.235
+randu2_randn2 0.948
+randu2_randn2 0.391
+randu2_randn2 0.973
+randu2_randn2 0.515
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.340
-randu2_randn2 0.473
-randu2_randn2 0.649
-randu2_randn2 0.815
-randu2_randn2 0.391
-randu2_randn2 0.219
+randu2_randn2 0.689
+randu2_randn2 0.507
+randu2_randn2 0.348
+randu2_randn2 0.656
+randu2_randn2 0.413
+randu2_randn2 0.374
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.402
-randu2_randn2 0.871
-randu2_randn2 0.011
-randu2_randn2 0.384
-randu2_randn2 0.489
-randu2_randn2 0.938
+randu2_randn2 0.769
+randu2_randn2 0.341
+randu2_randn2 0.439
+randu2_randn2 0.311
+randu2_randn2 0.145
+randu2_randn2 0.181
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66590,40 +66578,40 @@ randu2_randn2 0.900
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.204
-randu2_randn2 -0.952
-randu2_randn2 -0.076
-randu2_randn2 -0.894
-randu2_randn2 -0.123
+randu2_randn2 0.354
+randu2_randn2 0.641
+randu2_randn2 0.923
+randu2_randn2 1.707
+randu2_randn2 -0.248
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 1.686
-randu2_randn2 -1.735
-randu2_randn2 -0.659
-randu2_randn2 -1.317
-randu2_randn2 -1.823
+randu2_randn2 0.039
+randu2_randn2 0.350
+randu2_randn2 1.126
+randu2_randn2 -0.992
+randu2_randn2 -1.041
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -0.193
-randu2_randn2 -0.565
-randu2_randn2 0.181
-randu2_randn2 0.976
-randu2_randn2 1.204
-randu2_randn2 -0.993
+randu2_randn2 1.024
+randu2_randn2 -1.786
+randu2_randn2 -1.033
+randu2_randn2 0.754
+randu2_randn2 -1.856
+randu2_randn2 -0.369
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -0.764
-randu2_randn2 -0.760
-randu2_randn2 -0.391
-randu2_randn2 0.717
-randu2_randn2 1.299
-randu2_randn2 0.840
+randu2_randn2 -0.310
+randu2_randn2 -0.748
+randu2_randn2 0.207
+randu2_randn2 -0.560
+randu2_randn2 0.364
+randu2_randn2 0.176
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66648,14 +66636,14 @@ randu2_randn2 -0.124
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.791 1.791 0.735
-randu2_randn2 1.343 1.343 0.735
-randu2_randn2 0.735 0.735 0.340
-randu2_randn2 0.019 0.019 0.735
-randu2_randn2 -0.682 -0.459 0.735
-randu2_randn2 -0.459 -0.459 0.735
-randu2_randn2 0.340 0.340 0.735
-randu2_randn2 0.766 0.766 0.766
+randu2_randn2 1.354 1.354 0.543
+randu2_randn2 0.845 0.845 0.543
+randu2_randn2 0.320 0.543 0.320
+randu2_randn2 0.543 0.320 0.497
+randu2_randn2 -0.718 -0.390 0.497
+randu2_randn2 -0.390 -0.390 0.497
+randu2_randn2 0.312 0.312 0.497
+randu2_randn2 0.497 0.497 0.543
GO bn_reset
cancel mode verify
@@ -71108,10 +71096,10 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
-DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
-DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
@@ -71153,10 +71141,10 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
pseudo _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
-DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
-DELETE _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
regrid A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
@@ -71198,10 +71186,10 @@ list a2[ge=eoffset at var, gf=fax4day at var]
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
-DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
-DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
@@ -71407,18 +71395,18 @@ list afcst[gf=ehour at max]
-DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- strip regrid on F: AFCST --> (G106) @MAX
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ strip regrid on F: AFCST --> (G103) @MAX
eval AFCST C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
regrid AFCST M: 46 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
VARIABLE : _F[GF=EDAY]
regrid: 24 hour on F at MAX
SUBSET : 5 points (FORECAST)
@@ -71429,8 +71417,8 @@ list afcst[gf=ehour at max]
05-JAN-1990 00 / 5: 32497.0
show grid
Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G106)
- GRID (G106)
+ Last successful data access was on grid (G103)
+ GRID (G103)
name axis # pts start end
normal X
normal Y
@@ -71463,7 +71451,7 @@ 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 (G106) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ allocate dynamic grid (G103) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
strip --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
@@ -71491,7 +71479,7 @@ list/i=3 sst[T=@ave]
cancel data fourfiles
-DELETE SST M: 66 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
-DELETE SST M: 74 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: -999 -999 M: 1 4 N: -999 -999
- dealloc dynamic grid (G106) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ dealloc dynamic grid (G103) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
! Create airt in the other datasets by LET/D definitions.
let/d=ens2 airt = sst + 1
@@ -72437,8 +72425,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72448,10 +72436,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -72488,8 +72476,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72499,10 +72487,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST DOUBLE missing_value DOUBLE 1 T -1.E+34
_FillValue DOUBLE 1 T -1.E+34
@@ -72527,8 +72515,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72538,10 +72526,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -72566,8 +72554,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72577,10 +72565,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST3 INT missing_value INT 1 T -999
_FillValue INT 1 T -999
@@ -72597,8 +72585,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72608,10 +72596,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST3 SHORT missing_value SHORT 1 T -999
_FillValue SHORT 1 T -999
@@ -72629,8 +72617,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72640,10 +72628,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST4 BYTE missing_value BYTE 1 T -99
_FillValue BYTE 1 T -99
@@ -72690,8 +72678,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72701,10 +72689,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -72735,8 +72723,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72746,10 +72734,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST3 INT missing_value INT 1 T -999
_FillValue INT 1 T -999
@@ -72790,8 +72778,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72801,10 +72789,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST2 DOUBLE missing_value DOUBLE 1 T -1.E+34
_FillValue DOUBLE 1 T -1.E+34
@@ -72826,8 +72814,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72837,10 +72825,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST2 FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -72862,8 +72850,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72873,10 +72861,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST4 INT missing_value INT 1 T -99
_FillValue INT 1 T -99
@@ -72898,8 +72886,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72909,10 +72897,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST4 BYTE missing_value BYTE 1 T -99
_FillValue BYTE 1 T -99
@@ -72930,8 +72918,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72941,10 +72929,10 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
(TIME10) DOUBLE units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
- modulo DOUBLE 1 T 8765.82
+ modulo CHAR 1 T
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST4 INT missing_value INT 1 T -99
_FillValue INT 1 T -99
@@ -73160,8 +73148,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73169,12 +73157,12 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
standard_name CHAR 8 F latitude
orig_file_axnameCHAR 11 F COADSY46_48
-(TIME13) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME101) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo FLOAT 1 T 8765.82
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -73192,8 +73180,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73201,12 +73189,12 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
standard_name CHAR 8 F latitude
orig_file_axnameCHAR 11 F COADSY46_48
-(TIME13) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
+(TIME101) FLOAT units CHAR 30 T hour since 0000-01-01 00:00:00
time_origin CHAR 20 T 01-JAN-0000 00:00:00
modulo FLOAT 1 T 8765.82
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST DOUBLE missing_value DOUBLE 1 T -1.E+34
_FillValue DOUBLE 1 T -1.E+34
@@ -73233,8 +73221,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73247,7 +73235,7 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
modulo DOUBLE 1 T 8765.82
axis CHAR 1 T T
standard_name CHAR 4 F time
- orig_file_axnameCHAR 4 F TIME
+ orig_file_axnameCHAR 6 F TIME10
SST FLOAT missing_value FLOAT 1 T -1.E+34
_FillValue FLOAT 1 T -1.E+34
@@ -73271,8 +73259,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -73296,8 +73284,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -73321,8 +73309,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 17-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -73745,15 +73733,15 @@ save/clob/file=a.nc a
sp ncdump a.nc
netcdf a {
dimensions:
- TIME = UNLIMITED ; // (3 currently)
+ TIME10 = UNLIMITED ; // (3 currently)
variables:
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- double A(TIME) ;
+ 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) ;
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]" ;
@@ -73761,11 +73749,11 @@ variables:
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- TIME = 366, 1096.485, 1826.97 ;
+ TIME10 = 366, 1096.485, 1826.97 ;
A = -0.0994369294629927, -0.0415768591404557, 0.141480238197389 ;
}
@@ -73774,15 +73762,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:
- TIME = UNLIMITED ; // (3 currently)
+ TIME10 = UNLIMITED ; // (3 currently)
variables:
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- double E410(TIME) ;
+ 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) ;
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]" ;
@@ -73790,11 +73778,11 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- TIME = 366, 1096.485, 1826.97 ;
+ TIME10 = 366, 1096.485, 1826.97 ;
E410 = -0.0994369294629927, -0.0415768591404557, 0.141480238197389 ;
}
@@ -73825,15 +73813,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:
- TIME = UNLIMITED ; // (3 currently)
+ TIME10 = UNLIMITED ; // (3 currently)
variables:
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float E410(TIME) ;
+ 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) ;
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]" ;
@@ -73841,11 +73829,11 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- TIME = 366, 1096.485, 1826.97 ;
+ TIME10 = 366, 1096.485, 1826.97 ;
E410 = -0.09943693, -0.04157686, 0.1414802 ;
}
@@ -74307,6 +74295,54 @@ sh grid sal
normal E
normal F
+! This file from the datset "West Coast Carbon cruises" in our
+! example erdadp, has the cf_role attribute on a coordinate variable.
+! prof, time, latitude, longitude, and rowsize are on the E axis
+! press_db and pco2 are on the X asis
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+sh dat 2
+ currently SET data sets:
+ 2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+sh att (profile)
+ attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ (profile)._FillValue = -1.E+34
+ (profile).actual_range = 70, 90
+ (profile).cf_role = profile_id
+ (profile).history = From allDataFrom2007-2011-2012WestCoastCarbonCruises-revised3-6-13-1.txt
+ (profile).long_name = profile ID: Cruise and Station
+ (profile).missing_value = -1.E+34
+ (profile).orig_file_axname = profile
+sh grid rowsize
+ GRID GSS1
+ name axis # pts start end
+ normal X
+ normal Y
+ normal Z
+ normal T
+ PROFILE E 21 r 70 90
+ normal F
+sh grid pco2
+ GRID GSS2
+ name axis # pts start end
+ OBS1 X 373 r 1 373
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+
GO bn_reset
cancel mode verify
GO bn_nco_append
@@ -74358,9 +74394,10 @@ variables:
DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
// global attributes:
- :history = "Mon Mar 17 15:54:58 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
- "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "Wed Oct 29 15:57:28 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
+ "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
+ :NCO = "4.4.6" ;
}
GO bn_reset
@@ -74392,8 +74429,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -74423,8 +74460,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -74485,8 +74522,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! On a SAVE either with /BOUNDS or no bounds qualifier,
@@ -74513,8 +74550,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
@@ -75681,20 +75718,20 @@ save/file=a.nc/clobber labels
sp ncdump -h a.nc
netcdf a {
dimensions:
- ENSEMBLE = 3 ;
+ ENSEMBLE1 = 3 ;
maxStrlen64 = 64 ;
variables:
- double ENSEMBLE(ENSEMBLE) ;
- ENSEMBLE:long_name = "Ensemble of Realizations" ;
- ENSEMBLE:axis = "E" ;
- ENSEMBLE:point_spacing = "even" ;
- char LABELS(ENSEMBLE, maxStrlen64) ;
+ double ENSEMBLE1(ENSEMBLE1) ;
+ ENSEMBLE1:long_name = "Ensemble of Realizations" ;
+ ENSEMBLE1:axis = "E" ;
+ ENSEMBLE1:point_spacing = "even" ;
+ char LABELS(ENSEMBLE1, maxStrlen64) ;
LABELS:long_name = "Realizations" ;
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! The behavior is unchanged for user-defined variables
@@ -75716,8 +75753,8 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
@@ -75742,12 +75779,12 @@ fill/lev=(20,30,10)/L=1 sst
-! *********** v6.87 Additions ***********
+! *********** v6.9 Additions ***********
GO bn_reset
cancel mode verify
-GO bn687_bug_fixes
-! bn687_bug_fixes
-! test various fixes that went into version 6.87
+GO bn69_bug_fixes
+! bn69_bug_fixes
+! test various fixes that went into version 6.9
! 02/2014 ACM
GO bn_reset
@@ -75872,92 +75909,2730 @@ LAB5 = "FORECAST : 03-JAN-2000 00:00:00 JULIAN"
GO bn_reset
cancel mode verify
+GO err686_dup_axnames
+! err686_dup_axnames
+! Ticket 1750
+!
+! Make some datasets. Same axis length and name,
+! different coordinates.
+
+def ax/x=1:4:1 xaxis_test
+let a = x[gx=xaxis_test]
+save/clob/file=a.nc a
+def ax/x=11:14:1 xaxis_test
+let b = x[gx=xaxis_test]
+save/clob/file=b.nc b
+can var/all; can dat/all
+
+! Check axis coords.
+use a; use b
+sh dat
+ currently SET data sets:
+ 1> ./a.nc
+ name title I J K L M N
+ A X[GX=XAXIS_TEST] 1:4 ... ... ... ... ...
+
+ 2> ./b.nc (default)
+ name title I J K L M N
+ B X[GX=XAXIS_TEST] 1:4 ... ... ... ... ...
+
+sh grid a[d=1]
+ GRID GSI1
+ name axis # pts start end
+ XAXIS_TEST1 X 4 r 1 4
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+sh grid b[d=2]
+ GRID GRR1
+ name axis # pts start end
+ XAXIS_TEST X 4 r 11 14
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+
+! Write b with its Ferret internal axis name XAXIS_TEST1
+save/clob/file=c.nc a[d=1],b
+sp ncdump -h c.nc
+netcdf c {
+dimensions:
+ XAXIS_TEST1 = 4 ;
+ XAXIS_TEST = 4 ;
+variables:
+ double XAXIS_TEST1(XAXIS_TEST1) ;
+ XAXIS_TEST1:point_spacing = "even" ;
+ XAXIS_TEST1:axis = "X" ;
+ double A(XAXIS_TEST1) ;
+ A:missing_value = -1.e+34 ;
+ A:_FillValue = -1.e+34 ;
+ A:long_name = "X[GX=XAXIS_TEST]" ;
+ A:history = "From a" ;
+ double XAXIS_TEST(XAXIS_TEST) ;
+ XAXIS_TEST:point_spacing = "even" ;
+ XAXIS_TEST:axis = "X" ;
+ double B(XAXIS_TEST) ;
+ B:missing_value = -1.e+34 ;
+ B:_FillValue = -1.e+34 ;
+ B:long_name = "X[GX=XAXIS_TEST]" ;
+ B:history = "From b" ;
+
+// global attributes:
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
+}
+
+! Yet more combinations
+save/clob/file=c.nc b, a[d=1]
+sp ncdump -h c.nc
+netcdf c {
+dimensions:
+ XAXIS_TEST = 4 ;
+ XAXIS_TEST1 = 4 ;
+variables:
+ double XAXIS_TEST(XAXIS_TEST) ;
+ XAXIS_TEST:point_spacing = "even" ;
+ XAXIS_TEST:axis = "X" ;
+ double B(XAXIS_TEST) ;
+ B:missing_value = -1.e+34 ;
+ B:_FillValue = -1.e+34 ;
+ B:long_name = "X[GX=XAXIS_TEST]" ;
+ B:history = "From b" ;
+ double XAXIS_TEST1(XAXIS_TEST1) ;
+ XAXIS_TEST1:point_spacing = "even" ;
+ XAXIS_TEST1:axis = "X" ;
+ double A(XAXIS_TEST1) ;
+ A:missing_value = -1.e+34 ;
+ A:_FillValue = -1.e+34 ;
+ A:long_name = "X[GX=XAXIS_TEST]" ;
+ A:history = "From a" ;
+
+// global attributes:
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
+}
+
+! We can use /KEEP_AXISNAMES, changes XAXIS_TEST1 to XAXIS_TEST
+save/clobber/file=c.nc b
+sp ncdump -h c.nc
+netcdf c {
+dimensions:
+ XAXIS_TEST = 4 ;
+variables:
+ double XAXIS_TEST(XAXIS_TEST) ;
+ XAXIS_TEST:point_spacing = "even" ;
+ XAXIS_TEST:axis = "X" ;
+ double B(XAXIS_TEST) ;
+ B:missing_value = -1.e+34 ;
+ B:_FillValue = -1.e+34 ;
+ B:long_name = "X[GX=XAXIS_TEST]" ;
+ B:history = "From b" ;
+
+// global attributes:
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
+}
+
+! Subsets also use XAXIS_TEST1
+save/clobber/file=c.nc/i=2:4 b
+sp ncdump -h c.nc
+netcdf c {
+dimensions:
+ XAXIS_TEST2_4 = 3 ;
+variables:
+ double XAXIS_TEST2_4(XAXIS_TEST2_4) ;
+ XAXIS_TEST2_4:point_spacing = "even" ;
+ XAXIS_TEST2_4:axis = "X" ;
+ double B(XAXIS_TEST2_4) ;
+ B:missing_value = -1.e+34 ;
+ B:_FillValue = -1.e+34 ;
+ B:long_name = "X[GX=XAXIS_TEST]" ;
+ B:history = "From b" ;
+
+// global attributes:
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
+}
+
+! Unless we use /KEEP_AXISNAMES - which removes renaming
+! due to subsetting and also due to internal names
+save/clobber/file=c.nc/i=2:4/keep b
+sp ncdump -h c.nc
+netcdf c {
+dimensions:
+ XAXIS_TEST = 3 ;
+variables:
+ double XAXIS_TEST(XAXIS_TEST) ;
+ XAXIS_TEST:point_spacing = "even" ;
+ XAXIS_TEST:axis = "X" ;
+ double B(XAXIS_TEST) ;
+ B:missing_value = -1.e+34 ;
+ B:_FillValue = -1.e+34 ;
+ B:long_name = "X[GX=XAXIS_TEST]" ;
+ B:history = "From b" ;
+
+// global attributes:
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
+}
+
+! If we try /KEEP_AXISNAMES but there is a conflict, it's an err
+set mode ignore
+save/clobber/keep/file=nc b,a[d=1]
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err686_cancel_invalid_var
+! err686_cancel_invalid_var
+! ticket 2159
+
+! The cancel variable ran into an incorrect setting
+! for variable-in-memory
+
+set mode ignore
+let b = 1
+shade b
+
+set mode/last ignore
+cancel var b
+
+! Shade plot of a less-than-one cell region. Its where the bug came from.
+use coads_climatology
+shade/x=161.1:161.3/y=0.2:0.4/L=1 sst
+
+
+GO bn_reset
+cancel mode verify
+GO err686_redef_ascii_att
+! err686_redef_ascii_att.jnl
+! Bug 2161
+! DEFINE ATT to redefine title or units for variable
+! in ascii dataset caused crash
+
+columns/delim=" " EZ.DAT
+sh att v1
+ attributes for dataset: ./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
+ V1.long_name = V1
+ V1.missing_value = -1.E+34
+ V1.comment = First var from EZ.DAT
+
+! Initial definition of units is ok.
+! Re-defining the title or units causes crash
+define att/output v1.long_name = "vee one"
+
+! Initial definition of units is ok.
+! Re-defining units causes crash
+define att/output v1.units="km"
+define att/output v1.units="meters"
+
+sh att v1
+ attributes for dataset: ./EZ.DAT
+ V1.long_name = vee one
+ V1.missing_value = -1.E+34
+ V1.comment = First var from EZ.DAT
+ V1.units = meters
+
+GO bn_reset
+cancel mode verify
+GO err686_sho_nonexist_att
+! err686_sho_nonexist_att.jnl
+! See ticket 2133
+
+! Too many error messages were issued on this error
+set mode ignore
+
+use levitus_climatology
+show att temp.noexist[d=levitus_climatology]
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err686_set_var_name
+! err686_set_var_name.jnl
+! ticket 2152
+! rename user var or file var. Err message was
+! wrong if the name already exists.
+
+SET MODE IGNORE
+
+let a = 1
+let b = 2
+! Intentional error, new name is already a defined variable
+set var/name=b a
+! This rename is ok
+set var/name=c a
+sh var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ B = 2
+ C = 1
+
+use gt4d011.cdf
+! again, with user-variables and an open dataset the message is as above
+
+let a = 1
+let b = 2
+set var/name=b a
+
+! Intentional error, new name already in file
+
+
+! Intentional error, new name already in file
+set var/name=temp salt
+show dat
+ currently SET data sets:
+ 1> ./gt4d011.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 91:108 35:56 1:10 1:25 ... ...
+ SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25 ... ...
+ U ZONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ V MERIDIONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ W VERTICAL VELOCITY 91:108 36:55 1:10 1:25 ... ...
+ TAUX ZONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ PSI STREAM FUNCTION 91:108 35:56 ... 1:25 ... ...
+
+! This rename is ok
+set var/name=salinity salt
+show dat
+ currently SET data sets:
+ 1> ./gt4d011.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 91:108 35:56 1:10 1:25 ... ...
+ SALINITY (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25 ... ...
+ U ZONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ V MERIDIONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ W VERTICAL VELOCITY 91:108 36:55 1:10 1:25 ... ...
+ TAUX ZONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ PSI STREAM FUNCTION 91:108 35:56 ... 1:25 ... ...
+
+
+! Test LET/D variables:
+let/d=1 myvar = taux - tauy
+! This is an error, new name already in file
+set var/name=psi myvar
+! This is ok, new let/d name associated with the file
+set var/name=diff myvar
+show dat
+ currently SET data sets:
+ 1> ./gt4d011.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 91:108 35:56 1:10 1:25 ... ...
+ SALINITY (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25 ... ...
+ U ZONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ V MERIDIONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ W VERTICAL VELOCITY 91:108 36:55 1:10 1:25 ... ...
+ TAUX ZONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ PSI STREAM FUNCTION 91:108 35:56 ... 1:25 ... ...
+ ------------------------------
+ DIFF[D=gt4d011] = TAUX - TAUY
+
+
+! another error, new name is a user-var
+yes? set var/name=diff w
+
+SET MODE/LAST ignore
+
+GO bn_reset
+cancel mode verify
GO bn_bad_axis_bounds
! bn_bad_axis_bounds
! Ticket 2146 If there are invalid axis bounds
! make them into a dependent variable.
-use badbounds.nc
-show data
- currently SET data sets:
- 1> ./badbounds.nc (default)
- name title I J K L M N
- MONTH_IRREG_BNDS
- 1:2 ... ... 1:12 ... ...
- (invalid axis bounds)
- TEMP2 TEMP[GT=MONTH_IRREG at ASN] 1:1 1:1 1:1 1:12 ... ...
+use badbounds.nc
+show data
+ currently SET data sets:
+ 1> ./badbounds.nc (default)
+ name title I J K L M N
+ MONTH_IRREG_BNDS
+ 1:2 ... ... 1:12 ... ...
+ (invalid axis bounds)
+ TEMP2 TEMP[GT=MONTH_IRREG at ASN] 1:1 1:1 1:1 1:12 ... ...
+
+
+GO bn_reset
+cancel mode verify
+GO bn_enter_exit_GO
+! GO bn_enter_exit_GO
+! Lines to allow trace of GO scripts:
+!
+! ! Enter_GO and ! Exit_GO lines written to the journal file
+! or output file only if SET REDIRECT is turned on
+
+! Check that we have the ! Enter_GO and ! Exit_GO lines
+
+set redirect/tee/journal
+go bn_shortgo
+! Enter_GO bn_shortgo
+! bn_shortgo.jnl
+! short script for bn_enter_exit_GO
+
+plot/i=1:15/color=red/thick i
+! Exit_GO
+
+! Inside an IF
+let a = 1
+if `a gt 0` THEN GO bn_shortgo2
+ !-> if 1 THEN GO bn_shortgo2
+! Enter_GO bn_shortgo2
+! bn_shortgo2.jnl
+! short script extracted from bn_negative_t for bn_enter_exit_GO
+
+DEFINE AXIS/T=-10:10:2 tax
+LET tvar = t[gt=tax]
+GO bn_short.sub tvar ave
+! Enter_GO bn_short.sub tvar ave
+! bn_short.sub
+! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
+
+LIST/nohead/norow $1[t=-5:9@$2] ! neg/pos t endpoints
+ !-> LIST/nohead/norow tvar[t=-5:9 at ave] ! neg/pos t endpoints
+ 2.000
+
+! Exit_GO
+! Exit_GO
+
+! Inside a REPEAT
+define symbol ok = 0
+repeat/L=1:3 (if ($ok) then go bn_shortgo; def sym ok = `($ok)+1`)
+ !-> repeat/L=1:3 (if ($ok) then go bn_shortgo; def sym ok = `($ok)+1`)
+!-> REPEAT: L=1
+ !-> if 0 then go bn_shortgo
+ !-> def sym ok = 1
+!-> REPEAT: L=2
+ !-> if 1 then go bn_shortgo
+! Enter_GO bn_shortgo
+! bn_shortgo.jnl
+! short script for bn_enter_exit_GO
+
+plot/i=1:15/color=red/thick i
+! Exit_GO
+ !-> def sym ok = 2
+!-> REPEAT: L=3
+ !-> if 2 then go bn_shortgo
+! Enter_GO bn_shortgo
+! bn_shortgo.jnl
+! short script for bn_enter_exit_GO
+
+plot/i=1:15/color=red/thick i
+! Exit_GO
+ !-> def sym ok = 3
+
+cancel redirect
+
+GO bn_reset
+cancel mode verify
+GO bn_stddev
+! bn_std.jnl
+! New StdDev transform
+
+use coads_climatology
+list/x=100/y=10 sst[t=@STD]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ LONGITUDE: 100E (interpolated)
+ LATITUDE : 10N (interpolated)
+ TIME : 01-JAN 00:45 to 01-APR 08:12 (standard deviation)
+ 0.4323
+list/x=100/L=1 sst[y=@STD]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ LONGITUDE: 100E (interpolated)
+ LATITUDE : 90S to 90N (standard deviation)
+ TIME : 16-JAN 06:00
+ 10.09
+list/y=10/L=1 sst[x=@STD]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ LONGITUDE: 20E to 20E(380) (standard deviation)
+ LATITUDE : 10N (interpolated)
+ TIME : 16-JAN 06:00
+ 0.7935
+
+use gt4d011.cdf
+list/y=3/l=1/x=233 u[z=@STD]
+ VARIABLE : ZONAL VELOCITY (cm/sec)
+ FILENAME : gt4d011.cdf
+ LONGITUDE: 127W
+ LATITUDE : 3N (interpolated)
+ DEPTH (m): 0 to 100 (standard deviation)
+ TIME : 17-AUG-1982 12:00
+ 3.366
+list/y=3/l=1 temp[x=@std]
+ VARIABLE : TEMPERATURE (deg. C)
+ FILENAME : gt4d011.cdf
+ SUBSET : 10 points (DEPTH (m))
+ LONGITUDE: 140W to 122W (standard deviation)
+ LATITUDE : 3N (interpolated)
+ TIME : 17-AUG-1982 12:00
+ 5 / 1: 0.2508
+ 15 / 2: 0.2559
+ 25 / 3: 0.2623
+ 35 / 4: 0.2318
+ 45 / 5: 0.1489
+ 55 / 6: 0.1136
+ 65 / 7: 0.2355
+ 75 / 8: 0.4054
+ 85 / 9: 0.5649
+ 95 / 10: 0.7755
+list/y=3/l=1 temp[z=@std,x=@std]
+ VARIABLE : TEMPERATURE (deg. C)
+ FILENAME : gt4d011.cdf
+ LONGITUDE: 140W to 122W (standard deviation)
+ LATITUDE : 3N (interpolated)
+ DEPTH (m): 0 to 100 (standard deviation)
+ TIME : 17-AUG-1982 12:00
+ 0.1946
+
+GO bn_reset
+cancel mode verify
+GO bn_set_axis_name
+! bn_set_axis_name.jnl
+! ticket 2160 Implementing new qualifier SET AXIS/NAME
+! 3/2014
+!
+!
+! Prepare a dataset with a time axis
+
+define axis/t=1-may-2010:5-may-2010:1/units=days daysaxis
+let a = t[gt=daysaxis]
+save/clobber/file=a.nc a
+
+cancel variable a
+cancel axis daysaxis
+
+! We define some axis, then open a dataset with an axis of that name.
+
+define axis/t=1-jan-2000:31-jan-2000:1/units=days daysaxis
+
+use a.nc
+
+! The axis in the dataset has been renamed.
+say `a,return=taxis`
+ !-> MESSAGE/CONTINUE DAYSAXIS1
+DAYSAXIS1
+
+! So, rename our user-defined axis
+set axis/name=days2000 daysaxis
+
+! and now rename the one from the dataset back to its original name
+set axis/name=daysaxis `a,return=taxis`
+ !-> set axis/name=daysaxis DAYSAXIS1
+sh grid a
+ GRID GSI1
+ name axis # pts start end
+ normal X
+ normal Y
+ normal Z
+ daysaxis TIME 5 r 01-MAY-2010 00:00 05-MAY-2010 00:00
+ normal E
+ normal F
+
+cancel data/all
+
+! If an axis is used in several datsets, renaming it of course
+! changes the name for all grids.
+! The attribute structure gets updated as well.
+
+! Make several datasets with the same x axis.
+define axis/x=1:13:1/units=meters x13axis
+let a = x[gx=x13axis]
+let b = 3*x[gx=x13axis]
+let c = 5*x[gx=x13axis]
+save/clobber/file=a.nc a
+save/clobber/file=b.nc b
+save/clobber/file=c.nc c
+
+can var/all
+can axis x13axis
+
+! Open them in Ferret; all grids are the same.
+use a.nc, b.nc, c.nc
+say `a[d=1],return=xaxis`
+ !-> MESSAGE/CONTINUE X13AXIS
+X13AXIS
+say `b[d=2],return=xaxis`
+ !-> MESSAGE/CONTINUE X13AXIS
+X13AXIS
+say `c[d=3],return=xaxis`
+ !-> MESSAGE/CONTINUE X13AXIS
+X13AXIS
+
+! Rename the axis
+set axis/name=x_in_meters x13axis
+say `a[d=1],return=xaxis`
+ !-> MESSAGE/CONTINUE x_in_meters
+x_in_meters
+say `b[d=2],return=xaxis`
+ !-> MESSAGE/CONTINUE x_in_meters
+x_in_meters
+say `c[d=3],return=xaxis`
+ !-> MESSAGE/CONTINUE x_in_meters
+x_in_meters
+
+! For SHOW DAT/ATT we get info from the attribute structure.
+! It has the udated name.
+sh dat/att
+ currently SET data sets:
+ 1> ./a.nc
+ Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
+
+(x_in_meters) DOUBLE units CHAR 6 T meters
+ point_spacing CHAR 4 T even
+ axis CHAR 1 T X
+ orig_file_axnameCHAR 7 F X13AXIS
+
+ A DOUBLE missing_value DOUBLE 1 T -1.E+34
+ _FillValue DOUBLE 1 T -1.E+34
+ long_name CHAR 13 T X[GX=X13AXIS]
+
+ 2> ./b.nc
+ Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
+
+(x_in_meters) DOUBLE units CHAR 6 T meters
+ point_spacing CHAR 4 T even
+ axis CHAR 1 T X
+ orig_file_axnameCHAR 7 F X13AXIS
+
+ B DOUBLE missing_value DOUBLE 1 T -1.E+34
+ _FillValue DOUBLE 1 T -1.E+34
+ long_name CHAR 15 T 3*X[GX=X13AXIS]
+
+ 3> ./c.nc (default)
+ Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+
+ . history CHAR 24 T FERRET V6.93 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
+
+(x_in_meters) DOUBLE units CHAR 6 T meters
+ point_spacing CHAR 4 T even
+ axis CHAR 1 T X
+ orig_file_axnameCHAR 7 F X13AXIS
+
+ C DOUBLE missing_value DOUBLE 1 T -1.E+34
+ _FillValue DOUBLE 1 T -1.E+34
+ long_name CHAR 15 T 5*X[GX=X13AXIS]
+
+
+! Intentional errors
+set mode ignore
+
+! Name already in use
+set axis/name=days2000 x_in_meters
+
+! Missing or illegal name
+set axis/name x_in_meters
+set axis/name=45 x_in_meters
+set axis/name=.fr x_in_meters
+
+set mode/last ignore
+
+! *********** v6.9+ Additions ***********
+GO bn_reset
+cancel mode verify
+GO bn691_bug_fixes
+! bn691_bug_fixes
+! test various fixes that went into version 6.91
+! 04/2014 ACM
+
+GO bn_reset
+cancel mode verify
+GO err69_arg_type_error
+! err69_arg_type_error
+! See ticket 2169
+!
+set mode ignore
+sh func tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ A: time steps to convert
+ B: variable with reference time axis
+ C: output precision (STRING)
+sh func /detail tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ Axes of result:
+ X: inherited from argument(s)
+ Y: inherited from argument(s)
+ Z: inherited from argument(s)
+ T: inherited from argument(s)
+ E: inherited from argument(s)
+ F: inherited from argument(s)
+ A: time steps to convert (FLOAT)
+ Influence on output axes:
+ X: passed to result grid
+ Y: passed to result grid
+ Z: passed to result grid
+ T: passed to result grid
+ E: passed to result grid
+ F: passed to result grid
+ B: variable with reference time axis (FLOAT)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+ C: output precision (STRING)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+define axis/t=1-jan-2000:31-jan-2000:1/units=days my_tax
+let tt = t[gt=my_tax]
+
+! Intentional errors
+list tax_datestring (tt[L=3], tt, 5)
+list tax_datestring (tt[L=3], tt, "minutes")
+ VARIABLE : TAX_DATESTRING (TT[L=3], TT, "minutes")
+ TIME : 03-JAN-2000 00:00
+ "03-JAN-2000 00:00"
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+
+set mode /last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_bad_bounds
+! err69_bad_bounds.jnl
+! See ticket 2170
+
+set mode ignore
+
+! time axis has a point_spacing=even attribute
+! and an invalid set of bounds.
+! caused Ferret to mis-read the time axis
+use badbounds_even.nc
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same time axis but with a different error in the bounds
+! also has a point-spacing=even attribute
+! caused Ferret to mis-read the time axis
+use badbounds_non_enclose
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same definition except that the coordinates are irregularly
+! spaced, no point-spacing attribute.
+use badbounds_uneven
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 7.000
+13-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 4.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+sh axis TAX_BB*
+ name axis # pts start end
+ TAX_BB_IRR TIME 6 i 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 31
+ TAX_BB_EVEN_NOENC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
+ TAX_BB_PTSPAC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_const_array
+! err69_const_array.jnl
+! 5/8/2014 ACM
+! See ticket 2174
+! expressions are not allowed in constant-array definitions.
+
+set mode ignore
+
+! The code to read constant-array definitions into memory was simply doing
+! a read on each comma-separated portion of the command-line defining it.
+! Need to first determine if the buffer represents a simple constant.
+
+! These already returned an error as cos(1) can't be read with a Fortran read.
+list {cos(1), sin(0)}
+
+! Previously the first was read as {0,180} and the second as {0.1,0.2,1}, and
+! the third as {30,2000} !
+! They should be reported as syntax errors
+
+list {0-180, 180}
+list {0.1, 0.2, 1./5.}
+list {5*3+1, 2+3}
+
+! These are ok, and always have been
+list/prec=8 {-0.001, 1.23e-2, -45.e3}
+ VARIABLE : {-0.001, 1.23E-2, -45.E3}
+ SUBSET : 3 points (X)
+ 1 / 1: -0.001
+ 2 / 2: 0.012
+ 3 / 3: -45000.000
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_multi_label_ascii
+! err69_multi_label_ascii.jnl
+! 5/2014 ACM
+! ticket 2176
+! Multi-line labels and ascii fonts.
+
+plot/vs/nolab {0,1},{0,1}
+
+
+label .05 .96 0 0 .12 "@CR at P4Single Line examples. Ascii font with and without escape for new color:"
+label .05 .9 0 0 .16 "@ASNo_escapes at c002good_1@c003friend_2"
+label .05 .83 0 0 .16 "@ASEscape_new_colors@c002red_1@c003green_2"
+
+
+label .05 .65 0 0 .12 "@CR at P4Multi Line ascii examples:"
+
+label .05 .56 0 0 .12 "@CR at P4without escape"
+label .05 .5 0 0 .16 "@ASNo_escapes<NL>@c002good_1<NL>@c003friend_2"
+
+label .55 .56 0 0 .12 "@CR at P4with escape:"
+label .55 .5 0 0 .16 "@ASEscape_new_colors<NL>@c002red_1<NL>@c003green_2"
+
+! escape just the special characters.
+label .05 .26 0 0 .12 "@CR at P4Settings around underscores:"
+label .05 .2 0 0 .16 "hello at AS_@SRthere<NL>@c002good at AS_@SR1<NL>@c003friend at AS_@SR2"
+
+! escape new pen setting, not the font
+label .55 .26 0 0 .12 "@CR at P4Escape just the color changes:"
+label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ens_badvalue
+! err69_ens_badvalue.jnl
+!
+! Datasets have _FillValue but not missing_value attributes.
+! In this case the missing data info was not correctly handled
+! when defining an ensemble.
+
+use maize_1.nc, maize_2.nc, maize_3.nc
+
+! Note the _FillValue, flag
+sho att maize_yield
+ attributes for dataset: ./maize_3.nc
+ MAIZE_YIELD._FillValue = 9.96921E+36
+ MAIZE_YIELD.long_name = Maize harvest
+ MAIZE_YIELD.units = kgC.m-2.yr-1
+ MAIZE_YIELD.history = From new_ORCH_CORD_MIR_B1_maize
+ensemble ens = 1,2,3
+
+! MAIZE_YIELD[M=@NGD] should have values of 0, 2, and 3.
+list/y=29.25 MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3], MAIZE_YIELD[m=@ngd]
+ LONGITUDE: 8W(-8) to 6W(-6)
+ LATITUDE: 29.25N
+ E: 0.5 to 3.5 (number of valid)
+ Column 1: MAIZE_YIELD[D=maize_1] is Maize harvest (kgC.m-2.yr-1)
+ Column 2: MAIZE_YIELD[D=maize_2] is Maize harvest (kgC.m-2.yr-1)
+ Column 3: MAIZE_YIELD[D=maize_3] is Maize harvest (kgC.m-2.yr-1)
+ Column 4: MAIZE_YIELD[D=ENS,E=@NGD] is Maize harvest (# of points)
+ MAIZE_YIELD MAIZE_YI MAIZE_Y MAIZE_YIELD
+7.75W / 1: .... 0.05247 0.1022 2.000
+7.25W / 2: 0.01818 0.03588 0.0049 3.000
+6.75W / 3: -0.00002 0.02030 -0.0139 3.000
+6.25W / 4: .... .... .... 0.000
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_by_levels
+! err69_ribbon_by_levels.jnl
+! ACM 5/19/2014
+! See ticket 2179
+! colors were not repeating after the first 10.
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_histogram
+! err69_ribbon_histogram.jnl
+! ACM 5/24/2014
+! Histogram levels with ribbon line plots
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,1.9,1.1,1.3,1.1,1.2,2.3,\
+2.4,2.4,2.2,2.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+! linear levels, then histogram levels
+can view; set v left
+ribbon/vs/line/thick/lev=10 xpts,ypts,var
+set v right
+ribbon/vs/line/thick/lev=10h xpts,ypts,var
+
+GO bn_reset
+cancel mode verify
+GO err69_repl_scinot
+! err69_repl_scinot.jnl
+! ticket 2175
+! The returned number had a bunch of trailing spaces
+
+let a = 1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (1.E-10)
+(1.E-10)
+
+let a = -1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.E-10)
+(-1.E-10)
+
+let a = -1.23e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.23E-10)
+(-1.23E-10)
+
+let a = -1.23e-2
+say (`a`)
+ !-> MESSAGE/CONTINUE (-0.0123)
+(-0.0123)
+
+GO bn_reset
+cancel mode verify
+GO err691_bnds_case
+! err691_bnds_case
+! 6/30/14
+! Ticket 2182 bounds variable incorrectly created with upper-cased axis name
+
+def ax/t tax = {1,2,4,8}
+let tval = t[gt=tax]
+can mode upcase_output
+save/clob/file=tval.nc tval
+
+set mode/last upcase_output
+
+GO bn_reset
+cancel mode verify
+GO err69_plot_vs_labs
+! err69_plot_vs_labs.jnl
+! ticket 2187: the axis labels on the dependent axis
+! for PLOT/VS is wrong. LABX and LABY contain the labels used.
+
+use coads_climatology
+
+let a = sst[L=1]
+let b = a[x=180e:100w at ave]
+let c = a[x=150w:90w at ave]
+let d = a[x=150w:90w at ave]
+set v left; plot/vs b,c; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+set v right; plot/vs c,b; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+
+can view
+plot/vs/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+
+set v left; plot/trans/vs b,c; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+set v right; plot/trans/vs c,b; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+
+can view
+plot/vs/trans/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+
+GO bn_reset
+cancel mode verify
+GO err69_levels_v
+! err69_levels_v.jnl
+! Ferret ticket 2186, and LAS ticket 1598
+! the data has values in the range 300 to 500,
+! and several values over 100000. The variance-
+! based levels returned useless levels. Changes
+! made to throw out data outside 3 std when
+! computing the mean and std dev for color levels.
+
+use "lev_v_bug.nc"
+shade/lev=v var2d
+
+! previously the computed levels spanned -8000 to 16000.
+sh sym *lev*
+LEV_TEXT = "V"
+LEV_HISTO_LEVELS = "1.1,1.2,1.6,1.9,2.4,2.5,3.8,5.4,10.2,13.6,14.9"
+LEV_MIN = "-1.E+34"
+LEV_NUM = "51"
+LEV_DEL = "2.0000E+32"
+LEV_MAX = "2.0000E+32"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_letd_dsetnum
+! err69_letd_dsetnum.jnl
+! Ticket 2189. Previously the grave-accent expression didn't get
+! translated, and the let command failed.
+
+use coads_climatology
+let/d=`sst,r=dsetnum` a = 1
+ !-> DEFINE VARIABLE/d=1 a = 1
+sh dat
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+ ------------------------------
+ A[D=coads_climatology] = 1
+
+
+GO bn_reset
+cancel mode verify
+GO err69_long_string_to_xml
+! err69_long_string_to_xml.jnl
+! ticket 2190 8-8-2014
+! previously the string was cut off at 512 characters. For this example
+! it was in the middle of the code AAAAAAAAAAAA
+!
+
+list/clobber/file="out.xml"/nohead/norow 1
+LET longstring = "Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC2004 [...]
+LET status = list_value_xml ("mytag", longstring, 1, "out.xml")
+LOAD status
+
+sp cat out.xml
+ 1.000
+<mytag><![CDATA[Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC200406 [...]
+
+GO bn_reset
+cancel mode verify
+GO err69_fill_trans
+! err69_fill_trans.jnl
+! ticket 2196. Visible only if bounds-checking is turned on.
+! 9/22/2014
+
+DEFINE AXIS/x=1:15:1 xaxis
+let var = {1,2,3,,,,,,,4,,5,6,7,8}
+LET myvar = var[gx=xaxis at asn]
+
+list myvar
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ SUBSET : 15 points (X)
+ 1 / 1: 1.000
+ 2 / 2: 2.000
+ 3 / 3: 3.000
+ 4 / 4: ....
+ 5 / 5: ....
+ 6 / 6: ....
+ 7 / 7: ....
+ 8 / 8: ....
+ 9 / 9: ....
+ 10 / 10: 4.000
+ 11 / 11: ....
+ 12 / 12: 5.000
+ 13 / 13: 6.000
+ 14 / 14: 7.000
+ 15 / 15: 8.000
+list myvar[x=6 at fnr:2]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 2 pts)
+ ....
+
+! This caused attempt to load variable at index i = -4
+list myvar[x=6 at fnr:10]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 10 pts)
+ 3.000
+
+! Likewise the way @FAV is computed, this caused Ferret
+! to try to get data at i=-3
+list myvar[x=6 at fav:18]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (ave-filled by 18 pts)
+ 4.500
+
+
+GO bn_reset
+cancel mode verify
+GO err69_load_big_grid
+! err69_load_big_grid
+! ticket 1758
+! error about "a negative number of words requested... grid too large"
+! in fact all large grids misreports size. Now computations are done
+! in real numbers and in block not word sizes.
+
+set mode ignore
+
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+
+! this gave the error about "a negative number of words requested... grid too large"
+define axis/t=1-jan-2000:1-jan-2005:1/units=days longtime
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+ GRID (G085)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 1828 r 01-JAN-2000 00:00 01-JAN-2005 00:00
+ normal E
+ normal F
+load bigvar
+
+! also was an incorrect size.
+define axis/t=1-jan-2000:1-jan-2010:1/units=days longtime
+sh grid bigvar
+ GRID (G085)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 3654 r 01-JAN-2000 00:00 01-JAN-2010 00:00
+ normal E
+ normal F
+load bigvar
+
+cancel mode ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_write_attribute
+! err69_write_attribute.jnl
+! Bug 1863
+
+use gt4d011.cdf
+sh grid temp
+ GRID PS3DT21
+ name axis # pts start end
+ PSXT1 LONGITUDE 160mr 130.5E 70.5W
+ PSYT1 LATITUDE 100 i 28.836S 48.568N
+ PSZT2 DEPTH (m) 27 i- 5 3824
+ TIME16 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
+ normal E
+ normal F
+let a = temp[x=@ave,y=@ave,L=1]
+
+! The attribute we ask not to write is not written for this variable
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (PSZT2).point_spacing
+save/q/clob/file="a.nc"/bounds a
+sp ncdump -h a.nc | grep -i "`a,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT2"
+ PSZT21_10 = 10 ;
+ double PSZT21_10(PSZT21_10) ;
+ PSZT21_10:units = "meters" ;
+ PSZT21_10:positive = "down" ;
+ PSZT21_10:standard_name = "depth" ;
+ PSZT21_10:bounds = "PSZT21_10_bnds" ;
+ double PSZT21_10_bnds(PSZT21_10, bnds) ;
+ double A(TIME16, PSZT21_10) ;
+
+! But it was being written for this one. It should not.
+let b = temp[x=@ave,y=@ave,L=1,d=1]
+save/q/clob/file="a.nc"/bounds b
+sp ncdump -h a.nc | grep -i "`b,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT2"
+ PSZT21_10 = 10 ;
+ double PSZT21_10(PSZT21_10) ;
+ PSZT21_10:units = "meters" ;
+ PSZT21_10:positive = "down" ;
+ PSZT21_10:standard_name = "depth" ;
+ PSZT21_10:bounds = "PSZT21_10_bnds" ;
+ double PSZT21_10_bnds(PSZT21_10, bnds) ;
+ double B(TIME16, PSZT21_10) ;
+
+! A variable that depends on more than one dataset.
+use coads_climatology
+let c = temp[x=@ave,y=@ave,L=1,d=1] + sst[x=@ave,y=@ave,t=@ave,d=2]
+save/q/clob/file="a.nc"/bounds c
+sp ncdump -h a.nc | grep -i "`c,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT2"
+ PSZT21_10 = 10 ;
+ double PSZT21_10(PSZT21_10) ;
+ PSZT21_10:units = "meters" ;
+ PSZT21_10:positive = "down" ;
+ PSZT21_10:standard_name = "depth" ;
+ PSZT21_10:bounds = "PSZT21_10_bnds" ;
+ double PSZT21_10_bnds(PSZT21_10, bnds) ;
+ double C(PSZT21_10) ;
+
+can data/all
+can var/all
+
+! When there are two datasets with the same axis name but different depths,
+! the second axis name is changed internally.
+
+DEFINE AXIS/z/depth zzdep = {0,10,20,30,50,75,100,150,200,300,400,600,800,1000,1200,1500,2000,3000,4000,5000}
+
+LET temp = z[gz=zzdep]
+save/clobber/file=aa.nc temp
+save/clobber/keep/file=bb.nc temp[k=1:15]
+can var/all
+can axis zzdep
+
+use aa
+use bb
+set data 1
+
+show att (`temp,r=zaxis`)
+ !-> show att (ZZDEP)
+ attributes for dataset: ./aa.nc
+ (ZZDEP).point_spacing = uneven
+ (ZZDEP).axis = Z
+ (ZZDEP).bounds = ZZDEP_bnds
+ (ZZDEP).positive = down
+ (ZZDEP).standard_name = depth
+ (ZZDEP).orig_file_axname = ZZDEP
+
+let a = temp[d=1,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+set data 2
+let a = temp[d=2,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP1).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP1
+ ZZDEP1 = 15 ;
+ double ZZDEP1(ZZDEP1) ;
+ ZZDEP1:axis = "Z" ;
+ ZZDEP1:bounds = "ZZDEP1_bnds" ;
+ ZZDEP1:positive = "down" ;
+ ZZDEP1:standard_name = "depth" ;
+ double ZZDEP1_bnds(ZZDEP1, bnds) ;
+ double A(ZZDEP1) ;
+
+let a = temp[d=2,gz=temp[d=1]]
+
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+sp rm aa.nc bb.nc
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_countervar_context
+! err69_countervar_context.jnl
+! ACM 10/3/2014
+! Ticket 2200. Context from SET REGION should not
+! apply in named-repeat loop. The loop would run,
+! but returned values of 0.
+
+let a = b
+set region/i=20:30
+repeat/name=b/range=1:3 (say `a`)
+!-> REPEAT: B:1
+ !-> MESSAGE/CONTINUE 1
+1
+!-> REPEAT: B:2
+ !-> MESSAGE/CONTINUE 2
+2
+!-> REPEAT: B:3
+ !-> MESSAGE/CONTINUE 3
+3
+
+can region
+
+GO bn_reset
+cancel mode verify
+GO err69_label_backspace
+! err69_label_backspace
+! Ticket 2203: \\ before a character backspaces before
+! making the character. This broke in the 64-bit versions.
+
+plot/vs/nolab {0,1},{0,1}
+label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_and_regridding
+! err69_isready_and_regridding.jnl
+! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
+! state after other contexts have been defined
+
+can dat/all
+
+! create & load a file with a Gregorian time axis
+def ax/t/unit=days/t0=1-jan-1979 tax_g = {15,45,75,105,135}
+let a = t[gt=tax_g]
+save/clob/file=a.nc a
+can var a
+can ax tax_g
+use a.nc
+
+! create a variable on a Julian time axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=julian/unit="hour"/t0=1-jan-1900 tax_j
+let b = t[gt=tax_j]
+
+! put the Gregorian data on the Julian axis
+let a2 = a
+let a2_on_b = a2[gt=b]
+
+! create a climatological axis (Julian)
+def ax/t/unit=days/t0=1-jan-0001/modulo=365.25/cal=julian tax_jc = {15.5,45.125,74.75,105.25,135.75,166.25,196.75,227.75,258.25,288.75,319.25,349.75}
+
+let b_one = missing(1+0*b,1) !set everything to 1
+let nyr = b_one[gl=tax_jc at modsum] !# years that include each month
+
+! Execute some commands which put things into context storage
+
+say `a2_on_b,r=title`
+ !-> MESSAGE/CONTINUE A2[GT=B]
+A2[GT=B]
+say `nyr[l=1]`
+ !-> MESSAGE/CONTINUE 23
+23
+
+! This got us into a weird hanged state
+IF `a2_on_b,r=isready` THEN
+ !-> IF 1 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_and_uvar_regrid
+! err69_vtree_and_uvar_regrid.jnl
+! Ticket 2206: This lead to a crash.
+! 10/9/2014
+
+let a = t[gt=1:2:1]
+let b2 = a
+let c = b2[gt=a]
+GO bn_vtree.sub c
+/TREE=ALL
+ C = B2[GT=A]
+ B2 = A
+ A = T[GT=1:2:1]
+/TREE=USER
+ C = B2[GT=A]
+ B2 = A
+ A = T[GT=1:2:1]
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_cancel_axis
+! err69_vtree_cancel_axis
+! Ticket 2201: After a return=isready,
+! cannot cancel the axis used by the var
+! 10-Oct-2014
+
+define axis/x=0:360:1 xax1
+define axis/x=0:360:10 xax2
+
+let a = x[gx=xax1]
+say `a,return=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX1]
+X[GX=XAX1]
+
+let b = a[gx=xax2]
+say `b,return=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+cancel var a b
+cancel axis xax1
+cancel axis xax2
+
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_bugs
+! err69_isready_bugs.jnl
+! Tickets 2201 and 2215
+
+! ticket 2201: isready operation meant we couldn't cancel the second axis
+
+def ax/x=0:360:1 xax_isready_1
+def ax/x=0:360:10 xax_isready_2
+let a = x[gx=xax_isready_1]
+say `a,r=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX_ISREADY_1]
+X[GX=XAX_ISREADY_1]
+let b = a[gx=xax_isready_2]
+load b
+say `b,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+
+can var a
+can axis xax_isready_1
+can var b
+can axis xax_isready_2
+
+! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
+
+let a = x[gx=1:3:1]
+let b = a - a[gx=a]
+let c = 1
+let/unit="m" f = b*c
+say `f,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+say `f,r=unit`
+ !-> MESSAGE/CONTINUE m
+m
+
+GO bn_reset
+cancel mode verify
+GO bn_append_dsg
+! bn_append_dsg.jnl
+!From SOCAT 3: appending to a dsg file where the new variable is on the obs
+! dimension. THe file has no coordinate variable, and we want to keep it that way.
+! Ferret needs to detect the dimension-only axis and keep it as-is. Do not upcase,
+! do not write a coordinate variable.
+!
+! Contains the metadata variables, global attributes, and incoming variables.
+! Where we recompute some of the incoming variables and append them to the file,
+! the values in the file are replaced.
+!
+! Argument is a file name; the single-cruise dsg file from the data entry
+!
+! We append more variables to the file, using the same obs dimension.
+
+sp rm test_save_dsg.nc
+sp cp test_save_dsg_in.nc test_save_dsg.nc
+
+use test_save_dsg.nc
+
+! Lon in 0-360
+let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
+define attribute/output lon360.ioos_category = "Location"
+define attribute/output lon360.standard_name = "Longitude"
+define attribute/output lon360.history = "added to test_save_dsg.nc"
+
+save/quiet/append/file=test_save_dsg.nc lon360
+
+! The longitude and lon360 variables should have the same lowercase (obs) dimension.
+
+sp ncdump -h test_save_dsg.nc
+netcdf test_save_dsg {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :History = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "CF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+}
+
+GO bn_reset
+cancel mode verify
+GO bn_global_atts
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.91 (beta)
+ ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
+ ! 7-Apr-14 16:41
+
+sp cp 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
+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
+netcdf global {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventions" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+sp ncdump -h global_copy.nc
+netcdf global_copy {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0FERRET V6.93 29-Oct-14" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventionsCF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+
+! This dataset has global attributes history and Conventions that include
+! a Ferret version and CF version that Ferret will replace.
+
+sp ncgen -o anew_global.nc anew_global.cdl
+use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.71 9-May-14
+ ..Conventions = Existing conventions note, CF-1.0
+let var = 8
+save/append/file=anew_global.nc var
+can dat/all; use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.93 29-Oct-14
+ ..Conventions = Existing conventions note, , CF-1.6
+
+
+
+
+GO bn_reset
+cancel mode verify
+GO bn_conventions_history
+! bn_conventions_history.jnl
+! ticket 2169:
+! Write conventions CF-1.6
+! When appending to the Conventions and history
+! attribute, add the new stuff with a comma and newline.
+
+sp cp conventions_history_in.nc conventions_history.nc
+use conventions_history
+!
+! The existing global attributes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the file
+ ..Conventions = Conventions for variables named V2
+!
+! Write to the file
+let v3 = v1+v2
+save/append/file=conventions_history.nc v3
+can dat/all; use conventions_history
+!
+! The new attibutes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the fileFERRET V6.93 29-Oct-14
+ ..Conventions = Conventions for variables named V2CF-1.6
+
+GO bn_reset
+cancel mode verify
+GO bn_center_key_labels
+! bn_center_key_labels
+! 6/2014
+!
+! Arguments to /KEY qualifier on color plots
+! /CENTERLABEL for label between lines on colorbar
+! /HORIZONTAL for horizontal key
+
+use levitus_climatology.cdf
+shade/lev=10/key=cent,horiz temp
+fill/lev=10v/key=cent temp
+
+! Ribbon plots and all three keywords: centerlab, horizontal, continuous
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key=center,horiz,cont xpts,ypts,var
+
+! Automatically restore non-continuous key, non-center, vertical
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key xpts,ypts,var
+
+! Polygons: the polymark script needs multiple key qualifiers to be in quotes.
+use coads_climatology
+def axis/x=0:360:5 xq
+def axis/y=-90:90:4 yq
+let fsst = sst[l=1,gx=xq,gy=yq]
+
+let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
+let lat = xsequence(0*x[gx=xq] + y[gy=yq])
+shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst ! set up
+
+go polymark poly/key="horiz,center"/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
+
+can data coads_climatology
+
+! Automatically restore regular handling of levels
+shade temp
+
+
+GO bn_reset
+cancel mode verify
+GO bn_wgt_transform
+! bn_wgt_transform.jnl test new @WGT transform,
+! returns weights used in the equiv. average or integral transform
+! ACM 7/2014
+
+! Define an XYT grid
+
+def axis/x=2:360:2/units=degrees_east x2
+def axis/y=-89:89:2/units=degrees_north y2
+let var = x[gx=x2] + y[gy=y2] + t[gt=month_irreg]
+let weights= var[x=@wgt,y=@wgt,t=@wgt]
+
+! Varies in y with latitude correction
+shade/l=1 weights
+
+! Sum of xy transform is the surface area of the earth, meters
+let weights= var[x=@wgt,y=@wgt]
+list/l=1 weights[i=@sum,j=@sum]
+ VARIABLE : VAR[X=@WGT,Y=@WGT]
+ LONGITUDE: 1E to 1E(361) (XY summed)
+ LATITUDE : 90S to 90N (XY summed)
+ TIME : 16-JAN 12:00
+ 5.101E+14
+
+! Varies in T because of irregular t axis
+shade/x=1 weights
+
+
+! The result t=@WGT returned in seconds
+let mywt = var[t=@wgt]
+
+let secperday = 24*3600
+list/x=1/y=1 mywt, mywt/secperday
+ TIME: 01-JAN 00:00 to 31-DEC 05:49
+ LONGITUDE: 1E (interpolated)
+ LATITUDE: 1N
+ Column 1: MYWT is VAR[T=@WGT]
+ Column 2: EX#2 is MYWT/SECPERDAY
+ MYWT EX#2
+16-JAN 12 / 1: 2678400. 31.00
+15-FEB 02 / 2: 2440152. 28.24
+15-MAR 17 / 3: 2678400. 31.00
+15-APR 05 / 4: 2592000. 30.00
+15-MAY 17 / 5: 2678400. 31.00
+15-JUN 05 / 6: 2592000. 30.00
+15-JUL 17 / 7: 2678400. 31.00
+15-AUG 17 / 8: 2678400. 31.00
+15-SEP 05 / 9: 2592000. 30.00
+15-OCT 17 / 10: 2678400. 31.00
+15-NOV 05 / 11: 2592000. 30.00
+15-DEC 17 / 12: 2678400. 31.00
+
+! Test reusing results. (ticket 2183)
+use gt4d011.cdf
+! The last value is a partial grid cell
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130W (interpolated)
+ LATITUDE : 1.5N (interpolated)
+ TIME : 01-SEP-1982 00:00 (interpolated)
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+
+! Now load the result over a larger region
+list/y=1.5/x=130w/z=0:82/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 9 points (DEPTH (m))
+ LONGITUDE: 130W (interpolated)
+ LATITUDE : 1.5N (interpolated)
+ TIME : 01-SEP-1982 00:00 (interpolated)
+ 5 / 1: 10.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 10.00
+ 55 / 6: 10.00
+ 65 / 7: 10.00
+ 75 / 8: 10.00
+ 85 / 9: 2.00
+
+! This finds the previous result in memory - needs to
+! reuse the correct one.
+
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130W (interpolated)
+ LATITUDE : 1.5N (interpolated)
+ TIME : 01-SEP-1982 00:00 (interpolated)
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+
+GO bn_reset
+cancel mode verify
+GO bn_show_outfile
+! bn_show_outfile
+! Adding tests for SHOW/OUTFILE=
+! Previously only tests when SHOW/XML/OUTFILE=
+! Bugs in SHOW/OUTFILE reported in ticket 2194
+! 8/18/2014
+
+! test various combinations of /append and /clobber
+
+!can mode verify
+
+! show axis/outfile
+
+
+sho ax/clobber/outfile=a.txt month_irreg
+sho ax/clobber/outfile=a.txt month_irreg
+
+SAY ---------------- Just axis month_irreg
+---------------- Just axis month_irreg
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+
+show axis/append/outfile=a.txt PS*
+
+SAY ---------------- appending all axes starting with PS
+---------------- appending all axes starting with PS
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ name axis # pts start end
+ PSXT LONGITUDE 160mr 130.5E 70.5W
+ Axis span (to cell edges) = 160 (modulo length = axis span)
+ PSXU LONGITUDE 160mr 131E 70W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYT Y (seconds) 100 i -28.836 48.568
+ Axis span (to cell edges) = 80.00004
+ PSYU LATITUDE 100 i 27.672S 50N
+ Axis span (to cell edges) = 80.2682
+ PSZT Z (zorro) 27 i- 5 3824
+ Axis span (to cell edges) = 4149
+ PSZW DEPTH (m) 27 i- 10 4149
+ Axis span (to cell edges) = 4144
+ PSYT5_89 LATITUDE 85 i 20.151S 21.613N
+ Axis span (to cell edges) = 43.60417
+ PSZT1_2 DEPTH (m) 2 r- 5 15
+ Axis span (to cell edges) = 20
+ PSZT2 DEPTH (m) 27 i- 5 3824
+ Axis span (to cell edges) = 4149
+ PSXT1 LONGITUDE 160mr 130.5E 70.5W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYT1 LATITUDE 100 i 28.836S 48.568N
+ Axis span (to cell edges) = 80.00004
+ PSZT1 Z (METERS) 27 i 5 3824
+ Axis span (to cell edges) = 4149
+
+! show grid/outfile
+
+use coads_climatology
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just the grid of sst
+---------------- Just the grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+! show var/outfile
+
+use coads_climatology
+let two = 2
+let myvar = sst*2
+show var/clobber/outfile=a.txt myvar, two
+
+SAY ---------------- show var output from two user vars
+---------------- show var output from two user vars
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+cancel var/all
+
+! show data/outfile
+
+show data/append/outfile=a.txt
+
+SAY ---------------- appending show data
+---------------- appending show data
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+! combinations of /append and /clobber
+
+show data/clobber/outfile=a.txt
+show data/clobber/outfile=a.txt
+
+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)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just grid of sst
+---------------- Just grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+use coads_climatology
+use levitus_climatology
+
+show data/clobber/outfile=a.txt 1
+
+SAY ---------------- Just dataset 1
+---------------- Just dataset 1
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show data/append/outfile=a.txt levitus_climatology
+
+SAY ---------------- appending datset 2 by name
+---------------- appending datset 2 by name
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+ currently SET data sets:
+ 2> ./levitus_climatology.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 1:160 1:90 1:1 ... ... ...
+
+show grid/clobber/outfile=a.txt PS3*
+
+SAY ---------------- only showing all grids starting with PS3
+---------------- only showing all grids starting with PS3
+sp cat a.txt
+ PS3DT
+ PS3DU
+ PS3DW
+ PS3DT2
+
+SAY ---------------- tests sending output of vtree to a file
+---------------- tests sending output of vtree to a file
+GO bn_vtree_outfile
+! bn_tree_outfile.jnl
+
+! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+
+CANCEL DATA/ALL
+! pure abstract variable -- no dataset
+let a = 1
+
+!
+show var/tree/outfile=a.txt/clobber a
+show var/tree/outfile=a.txt/clobber a
+sp cat a.txt
+ A = 1
+
+let b = 1
+let c = SIN(b)
+show var/tree/outfile=a.txt/clobber c
+sp cat a.txt
+ C = SIN(B)
+ B = 1
+
+! create dummy datasets so we'll have named file variables to play with
+let fv1 = 1
+let fvx = x[i=1:3]
+let fvz = Z[k=1:3]
+SAVE/CLOBBER/QUIET/FILE=my_file_vars.nc fv1, fvx, fvz
+SAVE/CLOBBER/QUIET/FILE=other_file_vars.nc fv1
+SAVE/CLOBBER/QUIET/FILE=another_file_vars.nc fv1
+CAN VAR/ALL
+use my_file_vars, other_file_vars, another_file_vars
+set data 1
+
+! ================
+
+! more pure abstract variables
+let a = 1
+let b = 1
+let c = SIN(b)
+go bn_vtree_outfile.sub c
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1
+ FV1[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+a is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1
+ FVX
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset other_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1
+********************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: V[D=NOEXIST]
+************************
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
+************************
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+RESHAPE(fvx,fvz) is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FVX
+ FVZ
+ FVX[d=my_file_vars]
+ FVZ[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ NOEXIST (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ FV1[d=another_file_var]
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fvx is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=my_file_var]
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_var]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_var]
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+
+ FVX[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ILLEGAL RECURSIVE VARIABLES: P1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S3 (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: S1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S1 (unknown variable)
+ S3 (unknown variable)
+ in default dataset my_file_vars
+ FV = FV1 + FV1 + FV1
+ in default dataset MY_UVAR_AGG
+ FV = FV1 + FV1 + FV1
+ FV1 (aggregate variable)
+ in default dataset other_file_vars
+ UV = FVX + FVX + FVX
+ FVX = FV1 + X[GX=FVX[D=1],I=1:3]
+ in default dataset MY_UVAR_AGG
+ UV = FVX + FVX + FVX
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+***************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v2 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v3 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: F
+************************
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ FV1[d=my_file_var]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ FVX[d=my_file_var]
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ F (unknown variable)
+ FV1[d=my_file_vars]
+ NOEXIST (unknown variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN GRID: A[G=NOEXIST]
+************************
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ A[G=NOEXIST] (unknown grid)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[X=45S]
+************************
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ A[X=45S] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
+************************
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[P=1]
+************************
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ A[P=1] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+f is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ A = FVZ.LONG_NAME[D=1]
+ in default dataset MY_UVAR_AGG
+ A = ..HISTORY[D=1]
+
GO bn_reset
cancel mode verify
-GO bn_enter_exit_GO
-! GO bn_enter_exit_GO
-! Lines to allow trace of GO scripts:
-!
-! ! Enter_GO and ! Exit_GO lines written to the journal file
-! or output file only if SET REDIRECT is turned on
+GO bn_date1900_array
+! bn_date1900_array.jnl
+! Let date1900 accept an array of date strings, returning a list
+! of coordinate values, days since 1-jan-1900.
-! Check that we have the ! Enter_GO and ! Exit_GO lines
-set redirect/tee/journal
-go bn_shortgo
-! Enter_GO bn_shortgo
-! bn_shortgo.jnl
-! short script for bn_enter_exit_GO
+sh func/details date1900
+DATE1900(formatted date)
+ Convert date strings into Julian days since 1-Jan-1900
+ Axes of result:
+ X: inherited from argument(s)
+ Y: NORMAL (no axis)
+ Z: NORMAL (no axis)
+ T: NORMAL (no axis)
+ E: NORMAL (no axis)
+ F: NORMAL (no axis)
+ formatted date: dd-MMM-yy or dd-MMM-yyyy (e.g. "20-Dec-00") (none) (STRING)
+ Influence on output axes:
+ X: passed to result grid
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+! Function always worked just on one date string.
+list date1900("01-jan-2001")
+ VARIABLE : DATE1900("01-jan-2001")
+ 36890.
+
+
+! Now the argument can be an array
+let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
+list date1900(datestrings)
+ VARIABLE : DATE1900(DATESTRINGS)
+ SUBSET : 3 points (X)
+ 1 / 1: 36890.
+ 2 / 2: 36891.
+ 3 / 3: 37465.
-plot/i=1:15/color=red/thick i
-! Exit_GO
+def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
+list t[gt=taxis]
+ VARIABLE : T
+ axis TAXIS
+ SUBSET : 3 points (TIME)
+ 01-JAN-2001 00 / 1: 36890.
+ 02-JAN-2001 00 / 2: 36891.
+ 30-JUL-2002 00 / 3: 37465.
-! Inside an IF
-let a = 1
-if `a gt 0` THEN GO bn_shortgo2
- !-> if 1 THEN GO bn_shortgo2
-! Enter_GO bn_shortgo2
-! bn_shortgo2.jnl
-! short script extracted from bn_negative_t for bn_enter_exit_GO
-DEFINE AXIS/T=-10:10:2 tax
-LET tvar = t[gt=tax]
-GO bn_short.sub tvar ave
-! Enter_GO bn_short.sub tvar ave
-! bn_short.sub
-! short script extracted from bn_negative_t.sub for bn_enter_exit_GO
+GO bn_reset
+cancel mode verify
+GO bn_spawn_size
+! bn_spawn_size.jnl
+! Return the size of the result of a spawn, not
+! the nominalabstract axis length.
-LIST/nohead/norow $1[t=-5:9@$2] ! neg/pos t endpoints
- !-> LIST/nohead/norow tvar[t=-5:9 at ave] ! neg/pos t endpoints
- 2.000
+! ticket 981
-! Exit_GO
-! Exit_GO
+let files = {spawn:"ls *cdf*.jnl"}
+list files
+ VARIABLE : {SPAWN:"ls *cdf*.jnl"}
+ SUBSET : 8 points (X)
+ 1 / 1:"bn_cdf_errmsg.jnl"
+ 2 / 2:"bn_cdf.jnl"
+ 3 / 3:"bn_cdf_keepax.jnl"
+ 4 / 4:"bn_netcdf4.jnl"
+ 5 / 5:"err490_cdf_childax.jnl"
+ 6 / 6:"err491_cdf_childax.jnl"
+ 7 / 7:"err65_read_epic_cdf.jnl"
+ 8 / 8:"err667_5d_netcdf.jnl"
+say `files,return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
-! Inside a REPEAT
-define symbol ok = 0
-repeat/L=1:3 (if ($ok) then go bn_shortgo; def sym ok = `($ok)+1`)
- !-> repeat/L=1:3 (if ($ok) then go bn_shortgo; def sym ok = `($ok)+1`)
-!-> REPEAT: L=1
- !-> if 0 then go bn_shortgo
- !-> def sym ok = 1
-!-> REPEAT: L=2
- !-> if 1 then go bn_shortgo
-! Enter_GO bn_shortgo
-! bn_shortgo.jnl
-! short script for bn_enter_exit_GO
+! Evaluate size without loading the variable first
+let datfiles = {spawn:"ls *.dat"}
+say `datfiles,return=isize`
+ !-> MESSAGE/CONTINUE 36
+36
-plot/i=1:15/color=red/thick i
-! Exit_GO
- !-> def sym ok = 2
-!-> REPEAT: L=3
- !-> if 2 then go bn_shortgo
-! Enter_GO bn_shortgo
-! bn_shortgo.jnl
-! short script for bn_enter_exit_GO
+! expression syntax
+say `{spawn:"ls xml*.jnl"},return=isize`
+ !-> MESSAGE/CONTINUE 3
+3
+list {spawn:"ls xml*.jnl"}
+ VARIABLE : {SPAWN:"ls xml*.jnl"}
+ SUBSET : 3 points (X)
+ 1 / 1:"xml_header_script.jnl"
+ 2 / 2:"xml_use_coads.jnl"
+ 3 / 3:"xml_use_numstring.jnl"
-plot/i=1:15/color=red/thick i
-! Exit_GO
- !-> def sym ok = 3
+! Test variables based on output of a spawn.
+! These already worked correctly, has a grid-changing function.
-cancel redirect
+LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+say `filesets, return=isize`
+ !-> MESSAGE/CONTINUE 875
+875
+
+let files = {spawn:"ls *cdf*.jnl"}
+let name_len = strindex(files, ".sub")
+say `name_len, return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+
+GO bn_reset
+cancel mode verify
+GO bn_polygon_log
+! bn_polygon_log.jnl
+! polygon plots on a log axis need tests
+
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let xpts = cos(x/10) + 2
+let ypts = x/10+1
+
+! Polygon plot
+
+set view ul
+polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+
+! Poly/vlog and /hlog
+! (known bug: Whats up with the colorbar labels?)
+set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
+set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
+set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
+
+! These are errors - log of negative values on axis
+
+set mode ignore
+
+let ybad = x/10 - 1
+let xbad = cos(x/10) + 0.8
+
+can view
+polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+set mode/last ignore
! *********** Always do a bn_reset ***********
! *********** make sure things clean up well **
@@ -75972,9 +78647,9 @@ yes? ! run bn_all_ef tests
yes?
yes? GO bn_all_ef
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5PAE 32-bit - 03/17/14
- 17-Mar-14 15:55
+ FERRET v6.93
+ Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
+ 29-Oct-14 15:57
SET MODE VERIFY
! bn_all_ef.jnl
@@ -76828,8 +79503,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969 ;
@@ -76853,8 +79528,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969, 50757974 ;
@@ -76877,8 +79552,8 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -76916,8 +79591,8 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
GFP3 = "" ;
@@ -76951,8 +79626,8 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_4 = 1, 2, 3, 4 ;
@@ -76992,8 +79667,8 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425,
@@ -77049,8 +79724,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -77106,8 +79781,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -77161,8 +79836,8 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
ZIRR = 0, 10, 40, 70 ;
@@ -77209,8 +79884,8 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_83 = 181, 183, 185 ;
@@ -77270,7 +79945,7 @@ dimensions:
COADSX81_81 = 1 ;
bnds = 2 ;
COADSY46_46 = 1 ;
- TIME = UNLIMITED ; // (3 currently)
+ TIME4 = UNLIMITED ; // (3 currently)
variables:
double COADSX81_81(COADSX81_81) ;
COADSX81_81:units = "degrees_east" ;
@@ -77287,15 +79962,15 @@ variables:
COADSY46_46:standard_name = "latitude" ;
COADSY46_46:bounds = "COADSY46_46_bnds" ;
double COADSY46_46_bnds(COADSY46_46, bnds) ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- TIME:bounds = "TIME_bnds" ;
- double TIME_bnds(TIME, bnds) ;
- float SST(TIME, COADSY46_46, COADSX81_81) ;
+ double TIME4(TIME4) ;
+ TIME4:units = "hour since 0000-01-01 00:00:00" ;
+ TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME4:modulo = " " ;
+ TIME4:axis = "T" ;
+ TIME4:standard_name = "time" ;
+ TIME4:bounds = "TIME4_bnds" ;
+ double TIME4_bnds(TIME4, bnds) ;
+ float SST(TIME4, COADSY46_46, COADSX81_81) ;
SST:missing_value = -1.e+34f ;
SST:_FillValue = -1.e+34f ;
SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -77303,8 +79978,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -77317,9 +79992,9 @@ data:
COADSY46_46_bnds =
0, 2 ;
- TIME = 366, 1096.485, 1826.97 ;
+ TIME4 = 366, 1096.485, 1826.97 ;
- TIME_bnds =
+ TIME4_bnds =
0.757499999999993, 731.2425,
731.2425, 1461.7275,
1461.7275, 2192.2125 ;
@@ -77336,8 +80011,8 @@ dimensions:
COADSX81_81edges = 2 ;
COADSY46_46 = 1 ;
COADSY46_46edges = 2 ;
- TIME = UNLIMITED ; // (3 currently)
- TIMEedges = 4 ;
+ TIME4 = UNLIMITED ; // (3 currently)
+ TIME4edges = 4 ;
variables:
double COADSX81_81(COADSX81_81) ;
COADSX81_81:units = "degrees_east" ;
@@ -77356,16 +80031,16 @@ variables:
COADSY46_46:edges = "COADSY46_46edges" ;
double COADSY46_46edges(COADSY46_46edges) ;
COADSY46_46edges:edges = " " ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- TIME:edges = "TIMEedges" ;
- double TIMEedges(TIMEedges) ;
- TIMEedges:edges = " " ;
- float SST(TIME, COADSY46_46, COADSX81_81) ;
+ double TIME4(TIME4) ;
+ TIME4:units = "hour since 0000-01-01 00:00:00" ;
+ TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME4:modulo = " " ;
+ TIME4:axis = "T" ;
+ TIME4:standard_name = "time" ;
+ TIME4:edges = "TIME4edges" ;
+ double TIME4edges(TIME4edges) ;
+ TIME4edges:edges = " " ;
+ float SST(TIME4, COADSY46_46, COADSX81_81) ;
SST:missing_value = -1.e+34f ;
SST:_FillValue = -1.e+34f ;
SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -77373,8 +80048,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -77385,9 +80060,9 @@ data:
COADSY46_46edges = 0, 2 ;
- TIME = 366, 1096.485, 1826.97 ;
+ TIME4 = 366, 1096.485, 1826.97 ;
- TIMEedges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
+ TIME4edges = 0.757499999999993, 731.2425, 1461.7275, 2192.2125 ;
SST =
28.28389,
@@ -77424,8 +80099,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -77499,8 +80174,8 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 0.5, 2 ;
@@ -77526,8 +80201,8 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -77550,8 +80225,8 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -77577,11 +80252,11 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.861 17-Mar-14" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
bn_bounds_defineax.jnl --- N+1 def of bounds.
netcdf irrxzt {
dimensions:
@@ -77612,8 +80287,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -77684,8 +80359,8 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -77700,7 +80375,7 @@ netcdf a {
dimensions:
COADSX105_105 = 1 ;
COADSY45_45 = 1 ;
- TIME = UNLIMITED ; // (3 currently)
+ TIME4 = UNLIMITED ; // (3 currently)
variables:
double COADSX105_105(COADSX105_105) ;
COADSX105_105:units = "degrees_east" ;
@@ -77714,13 +80389,13 @@ variables:
COADSY45_45:point_spacing = "even" ;
COADSY45_45:axis = "Y" ;
COADSY45_45:standard_name = "latitude" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float SST(TIME, COADSY45_45, COADSX105_105) ;
+ double TIME4(TIME4) ;
+ TIME4:units = "hour since 0000-01-01 00:00:00" ;
+ TIME4:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME4:modulo = " " ;
+ TIME4:axis = "T" ;
+ TIME4:standard_name = "time" ;
+ float SST(TIME4, COADSY45_45, COADSX105_105) ;
SST:missing_value = -1.e+34f ;
SST:_FillValue = -1.e+34f ;
SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -77728,22 +80403,22 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX105_105 = 229 ;
COADSY45_45 = -1 ;
- TIME = 366, 1096.485, 1826.97 ;
+ TIME4 = 366, 1096.485, 1826.97 ;
}
bn_attributes.jnl --- 3 modulo set to false
netcdf a {
dimensions:
COADSX81_81 = 1 ;
COADSY45_45 = 1 ;
- TIME = UNLIMITED ; // (12 currently)
+ TIME7 = UNLIMITED ; // (12 currently)
variables:
double COADSX81_81(COADSX81_81) ;
COADSX81_81:units = "degrees_east" ;
@@ -77756,13 +80431,13 @@ variables:
COADSY45_45:point_spacing = "even" ;
COADSY45_45:axis = "Y" ;
COADSY45_45:standard_name = "latitude" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = " " ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float SST(TIME, COADSY45_45, COADSX81_81) ;
+ double TIME7(TIME7) ;
+ TIME7:units = "hour since 0000-01-01 00:00:00" ;
+ TIME7:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME7:modulo = " " ;
+ TIME7:axis = "T" ;
+ TIME7:standard_name = "time" ;
+ float SST(TIME7, COADSY45_45, COADSX81_81) ;
SST:missing_value = -1.e+34f ;
SST:_FillValue = -1.e+34f ;
SST:long_name = "SEA SURFACE TEMPERATURE" ;
@@ -77770,15 +80445,15 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
COADSY45_45 = -1 ;
- TIME = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91,
+ TIME7 = 366, 1096.485, 1826.97, 2557.455, 3287.94, 4018.425, 4748.91,
5479.395, 6209.88, 6940.365, 7670.85, 8401.335 ;
}
bn_attributes.jnl --- 4 CANCEL MODE upcase_output; original file:
@@ -77878,8 +80553,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
netcdf a {
@@ -77919,8 +80594,8 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
netcdf a {
@@ -77942,8 +80617,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -77968,8 +80643,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -77988,8 +80663,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78009,8 +80684,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78021,7 +80696,7 @@ dimensions:
XAX_LEV9421_380 = 360 ;
YAX_LEV94 = 180 ;
ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (2 currently)
+ TIME3 = UNLIMITED ; // (2 currently)
variables:
double XAX_LEV9421_380(XAX_LEV9421_380) ;
XAX_LEV9421_380:units = "degrees_east" ;
@@ -78038,13 +80713,13 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
+ double TIME3(TIME3) ;
+ TIME3:units = "hour since 0000-01-01 00:00:00" ;
+ TIME3:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME3:modulo = " " ;
+ TIME3:axis = "T" ;
+ TIME3:standard_name = "time" ;
+ float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "Temperature" ;
@@ -78052,8 +80727,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
netcdf a {
@@ -78061,7 +80736,7 @@ dimensions:
XAX_LEV9421_380281_340 = 60 ;
YAX_LEV94121_135 = 15 ;
ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (2 currently)
+ TIME3 = UNLIMITED ; // (2 currently)
variables:
double XAX_LEV9421_380281_340(XAX_LEV9421_380281_340) ;
XAX_LEV9421_380281_340:units = "degrees_east" ;
@@ -78078,13 +80753,13 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
+ double TIME3(TIME3) ;
+ TIME3:units = "hour since 0000-01-01 00:00:00" ;
+ TIME3:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME3:modulo = " " ;
+ TIME3:axis = "T" ;
+ TIME3:standard_name = "time" ;
+ float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94121_135, XAX_LEV9421_380281_340) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "Temperature" ;
@@ -78092,8 +80767,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
netcdf a {
@@ -78101,7 +80776,7 @@ dimensions:
XAX_LEV9421_380 = 360 ;
YAX_LEV94 = 180 ;
ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (2 currently)
+ TIME3 = UNLIMITED ; // (2 currently)
variables:
double XAX_LEV9421_380(XAX_LEV9421_380) ;
XAX_LEV9421_380:units = "degrees_east" ;
@@ -78118,52 +80793,52 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
+ double TIME3(TIME3) ;
+ TIME3:units = "hour since 0000-01-01 00:00:00" ;
+ TIME3:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME3:modulo = " " ;
+ TIME3:axis = "T" ;
+ TIME3:standard_name = "time" ;
+ float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV94, XAX_LEV9421_380) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX042 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float A1(XAX1_5) ;
+ double AX042(AX042) ;
+ AX042:point_spacing = "even" ;
+ AX042:axis = "X" ;
+ float A1(AX042) ;
A1:missing_value = -1.e+34f ;
A1:_FillValue = -1.e+34f ;
A1:long_name = "A1" ;
A1:three = 1.f, 2.f, 3.f ;
A1:history = "From EZ.DAT" ;
- float A2(XAX1_5) ;
+ float A2(AX042) ;
A2:missing_value = -1.e+34f ;
A2:_FillValue = -1.e+34f ;
A2:long_name = "A2" ;
A2:history = "From EZ.DAT" ;
- float A3(XAX1_5) ;
+ float A3(AX042) ;
A3:missing_value = -1.e+34f ;
A3:_FillValue = -1.e+34f ;
A3:long_name = "A3" ;
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX042 = 1, 2, 3, 4, 5 ;
A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -78174,29 +80849,29 @@ data:
bn_attributes.jnl --- 15 attributes of data from delimited data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX009 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float V1(XAX1_5) ;
+ double AX009(AX009) ;
+ AX009:point_spacing = "even" ;
+ AX009:axis = "X" ;
+ float V1(AX009) ;
V1:missing_value = -1.e+34f ;
V1:_FillValue = -1.e+34f ;
V1:long_name = "V1" ;
V1:strval = "2" ;
V1:history = "From EZ.DAT" ;
- float V4(XAX1_5) ;
+ float V4(AX009) ;
V4:missing_value = -1.e+34f ;
V4:_FillValue = -1.e+34f ;
V4:long_name = "V4" ;
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX009 = 1, 2, 3, 4, 5 ;
V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -78218,8 +80893,8 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -78264,8 +80939,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
:option = 0 ;
@@ -78303,10 +80978,10 @@ dimensions:
YC = 127 ;
bnds = 2 ;
TI = UNLIMITED ; // (1 currently)
- PSXT100_100 = 1 ;
- PSYT35_56 = 22 ;
- PSZT1_1 = 1 ;
- TIME1 = 25 ;
+ PSXT1100_100 = 1 ;
+ PSYT135_56 = 22 ;
+ PSZT11_1 = 1 ;
+ TIME11 = 25 ;
variables:
double XC(XC) ;
XC:long_name = "Longitude" ;
@@ -78336,34 +81011,34 @@ variables:
ELEV:scale_factor = 0.000274674967954587 ;
ELEV:add_offset = 0. ;
ELEV:history = "From err491_attval" ;
- double PSXT100_100(PSXT100_100) ;
- PSXT100_100:units = "degrees_east" ;
- PSXT100_100:modulo = 360. ;
- PSXT100_100:point_spacing = "even" ;
- PSXT100_100:axis = "X" ;
- PSXT100_100:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_1(PSZT1_1) ;
- PSZT1_1:units = "METERS" ;
- PSZT1_1:positive = "down" ;
- PSZT1_1:point_spacing = "uneven" ;
- PSZT1_1:axis = "Z" ;
- PSZT1_1:standard_name = "depth" ;
- PSZT1_1:bounds = "PSZT1_1_bnds" ;
- double PSZT1_1_bnds(PSZT1_1, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:point_spacing = "even" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- float TEMP(TIME1, PSZT1_1, PSYT35_56, PSXT100_100) ;
+ double PSXT1100_100(PSXT1100_100) ;
+ PSXT1100_100:units = "degrees_east" ;
+ PSXT1100_100:point_spacing = "even" ;
+ PSXT1100_100:modulo = 360. ;
+ PSXT1100_100:axis = "X" ;
+ PSXT1100_100:standard_name = "longitude" ;
+ double PSYT135_56(PSYT135_56) ;
+ PSYT135_56:units = "degrees_north" ;
+ PSYT135_56:point_spacing = "uneven" ;
+ PSYT135_56:axis = "Y" ;
+ PSYT135_56:standard_name = "latitude" ;
+ PSYT135_56:bounds = "PSYT135_56_bnds" ;
+ double PSYT135_56_bnds(PSYT135_56, bnds) ;
+ double PSZT11_1(PSZT11_1) ;
+ PSZT11_1:units = "meters" ;
+ PSZT11_1:positive = "down" ;
+ PSZT11_1:point_spacing = "uneven" ;
+ PSZT11_1:axis = "Z" ;
+ PSZT11_1:standard_name = "depth" ;
+ PSZT11_1:bounds = "PSZT11_1_bnds" ;
+ double PSZT11_1_bnds(PSZT11_1, bnds) ;
+ double TIME11(TIME11) ;
+ TIME11:units = "hour since 1980-01-14 14:00:00" ;
+ TIME11:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME11:point_spacing = "even" ;
+ TIME11:axis = "T" ;
+ TIME11:standard_name = "time" ;
+ float TEMP(TIME11, PSZT11_1, PSYT135_56, PSXT1100_100) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "TEMPERATURE" ;
@@ -78371,8 +81046,8 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
bn_attributes.jnl --- 19 scale and offset attr.
@@ -78413,8 +81088,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XC = -135.50957036625, -135.496120344706, -135.482670323162,
@@ -78443,7 +81118,7 @@ data:
-32767, -32767, -32767, -32767, -32767, -32767 ;
}
bn_attributes.jnl --- 20 set data type on output int4
- int TEMP(TIME1, PSZT1_1, PSYT48_48, PSXT91_108) ;
+ int TEMP(TIME11, PSZT11_1, PSYT148_48, PSXT191_108) ;
TEMP:missing_value = -1000 ;
TEMP:_FillValue = -1000 ;
TEMP:long_name = "TEMPERATURE" ;
@@ -78456,7 +81131,7 @@ bn_attributes.jnl --- 20 set data type on output int4
26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 26, 26, 26, 26, 26, 25, 25, 25 ;
}
bn_attributes.jnl --- 21 set data type on output double
- double SALT(TIME1, PSZT1_1, PSYT48_48, PSXT91_108) ;
+ double SALT(TIME11, PSZT11_1, PSYT148_48, PSXT191_108) ;
SALT:missing_value = 0.00999999977648258 ;
SALT:_FillValue = 0.00999999977648258 ;
SALT:long_name = "(SALINITY(ppt) - 35) /1000" ;
@@ -78496,8 +81171,8 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
J = 2, 4, 6 ;
@@ -78533,8 +81208,8 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
B = 1 ;
@@ -78573,8 +81248,8 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -78624,8 +81299,8 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -78644,133 +81319,135 @@ data:
bn_attributes.jnl --- 26 attributes of axes
netcdf a {
dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
+ PSXT191_108 = 18 ;
+ PSYT135_56 = 22 ;
bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (1 currently)
+ PSZT11_10 = 10 ;
+ TIME11 = UNLIMITED ; // (1 currently)
variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "degrees_east" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- PSXT91_108:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- double T2(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
+ double PSXT191_108(PSXT191_108) ;
+ PSXT191_108:units = "degrees" ;
+ PSXT191_108:point_spacing = "even" ;
+ PSXT191_108:modulo = 360. ;
+ PSXT191_108:axis = "X" ;
+ PSXT191_108:standard_name = "longitude" ;
+ double PSYT135_56(PSYT135_56) ;
+ PSYT135_56:units = "degrees_north" ;
+ PSYT135_56:point_spacing = "uneven" ;
+ PSYT135_56:axis = "Y" ;
+ PSYT135_56:standard_name = "latitude" ;
+ PSYT135_56:bounds = "PSYT135_56_bnds" ;
+ double PSYT135_56_bnds(PSYT135_56, bnds) ;
+ double PSZT11_10(PSZT11_10) ;
+ PSZT11_10:units = "meters" ;
+ PSZT11_10:positive = "down" ;
+ PSZT11_10:point_spacing = "uneven" ;
+ PSZT11_10:axis = "Z" ;
+ PSZT11_10:standard_name = "depth" ;
+ PSZT11_10:bounds = "PSZT11_10_bnds" ;
+ double PSZT11_10_bnds(PSZT11_10, bnds) ;
+ double TIME11(TIME11) ;
+ TIME11:units = "hour since 1980-01-14 14:00:00" ;
+ TIME11:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME11:axis = "T" ;
+ TIME11:standard_name = "time" ;
+ double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
T2:missing_value = -1.e+34 ;
T2:_FillValue = -1.e+34 ;
T2:long_name = "T*TEMP" ;
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
+ PSXT191_108 = 18 ;
+ PSYT135_56 = 22 ;
bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (1 currently)
+ PSZT11_10 = 10 ;
+ TIME11 = UNLIMITED ; // (1 currently)
variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "degrees_east" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- PSXT91_108:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- double T2(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
+ double PSXT191_108(PSXT191_108) ;
+ PSXT191_108:units = "degrees" ;
+ PSXT191_108:point_spacing = "even" ;
+ PSXT191_108:new_att = "something" ;
+ PSXT191_108:modulo = 360. ;
+ PSXT191_108:axis = "X" ;
+ PSXT191_108:standard_name = "longitude" ;
+ double PSYT135_56(PSYT135_56) ;
+ PSYT135_56:units = "degrees_north" ;
+ PSYT135_56:point_spacing = "uneven" ;
+ PSYT135_56:axis = "Y" ;
+ PSYT135_56:standard_name = "latitude" ;
+ PSYT135_56:bounds = "PSYT135_56_bnds" ;
+ double PSYT135_56_bnds(PSYT135_56, bnds) ;
+ double PSZT11_10(PSZT11_10) ;
+ PSZT11_10:units = "meters" ;
+ PSZT11_10:positive = "down" ;
+ PSZT11_10:point_spacing = "uneven" ;
+ PSZT11_10:axis = "Z" ;
+ PSZT11_10:standard_name = "depth" ;
+ PSZT11_10:bounds = "PSZT11_10_bnds" ;
+ double PSZT11_10_bnds(PSZT11_10, bnds) ;
+ double TIME11(TIME11) ;
+ TIME11:units = "hour since 1980-01-14 14:00:00" ;
+ TIME11:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME11:axis = "T" ;
+ TIME11:standard_name = "time" ;
+ double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
T2:missing_value = -1.e+34 ;
T2:_FillValue = -1.e+34 ;
T2:long_name = "T*TEMP" ;
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
+ PSXT191_108 = 18 ;
+ PSYT135_56 = 22 ;
bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (1 currently)
+ PSZT11_10 = 10 ;
+ TIME11 = UNLIMITED ; // (1 currently)
variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "meters" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "meters" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- double T2(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
+ double PSXT191_108(PSXT191_108) ;
+ PSXT191_108:units = "meters" ;
+ PSXT191_108:point_spacing = "even" ;
+ PSXT191_108:new_att = "something" ;
+ PSXT191_108:modulo = 360. ;
+ PSXT191_108:axis = "X" ;
+ double PSYT135_56(PSYT135_56) ;
+ PSYT135_56:units = "meters" ;
+ PSYT135_56:point_spacing = "uneven" ;
+ PSYT135_56:axis = "Y" ;
+ PSYT135_56:bounds = "PSYT135_56_bnds" ;
+ double PSYT135_56_bnds(PSYT135_56, bnds) ;
+ double PSZT11_10(PSZT11_10) ;
+ PSZT11_10:units = "meters" ;
+ PSZT11_10:positive = "down" ;
+ PSZT11_10:point_spacing = "uneven" ;
+ PSZT11_10:axis = "Z" ;
+ PSZT11_10:standard_name = "depth" ;
+ PSZT11_10:bounds = "PSZT11_10_bnds" ;
+ double PSZT11_10_bnds(PSZT11_10, bnds) ;
+ double TIME11(TIME11) ;
+ TIME11:units = "hour since 1980-01-14 14:00:00" ;
+ TIME11:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME11:axis = "T" ;
+ TIME11:standard_name = "time" ;
+ double T2(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
T2:missing_value = -1.e+34 ;
T2:_FillValue = -1.e+34 ;
T2:long_name = "T*TEMP" ;
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -78804,8 +81481,8 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -78838,8 +81515,8 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
netcdf string4d {
@@ -78868,8 +81545,8 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
@@ -78897,8 +81574,8 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
data:
@@ -78918,39 +81595,39 @@ data:
bn_attributes.jnl --- 29 SET VAR/OUTTYPE for user variable
netcdf a {
dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
+ PSXT191_108 = 18 ;
+ PSYT135_56 = 22 ;
bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (25 currently)
+ PSZT11_10 = 10 ;
+ TIME11 = UNLIMITED ; // (25 currently)
variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "degrees_east" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- PSXT91_108:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- double FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
+ double PSXT191_108(PSXT191_108) ;
+ PSXT191_108:units = "degrees_east" ;
+ PSXT191_108:point_spacing = "even" ;
+ PSXT191_108:modulo = 360. ;
+ PSXT191_108:axis = "X" ;
+ PSXT191_108:standard_name = "longitude" ;
+ double PSYT135_56(PSYT135_56) ;
+ PSYT135_56:units = "degrees_north" ;
+ PSYT135_56:point_spacing = "uneven" ;
+ PSYT135_56:axis = "Y" ;
+ PSYT135_56:standard_name = "latitude" ;
+ PSYT135_56:bounds = "PSYT135_56_bnds" ;
+ double PSYT135_56_bnds(PSYT135_56, bnds) ;
+ double PSZT11_10(PSZT11_10) ;
+ PSZT11_10:units = "meters" ;
+ PSZT11_10:positive = "down" ;
+ PSZT11_10:point_spacing = "uneven" ;
+ PSZT11_10:axis = "Z" ;
+ PSZT11_10:standard_name = "depth" ;
+ PSZT11_10:bounds = "PSZT11_10_bnds" ;
+ double PSZT11_10_bnds(PSZT11_10, bnds) ;
+ double TIME11(TIME11) ;
+ TIME11:units = "hour since 1980-01-14 14:00:00" ;
+ TIME11:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME11:axis = "T" ;
+ TIME11:standard_name = "time" ;
+ double FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
FAREN:missing_value = -1.e+34 ;
FAREN:_FillValue = -1.e+34 ;
FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -78958,44 +81635,44 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
- PSXT91_108 = 18 ;
- PSYT35_56 = 22 ;
+ PSXT191_108 = 18 ;
+ PSYT135_56 = 22 ;
bnds = 2 ;
- PSZT1_10 = 10 ;
- TIME1 = UNLIMITED ; // (25 currently)
+ PSZT11_10 = 10 ;
+ TIME11 = UNLIMITED ; // (25 currently)
variables:
- double PSXT91_108(PSXT91_108) ;
- PSXT91_108:units = "degrees_east" ;
- PSXT91_108:modulo = 360. ;
- PSXT91_108:point_spacing = "even" ;
- PSXT91_108:axis = "X" ;
- PSXT91_108:standard_name = "longitude" ;
- double PSYT35_56(PSYT35_56) ;
- PSYT35_56:units = "degrees_north" ;
- PSYT35_56:point_spacing = "uneven" ;
- PSYT35_56:axis = "Y" ;
- PSYT35_56:standard_name = "latitude" ;
- PSYT35_56:bounds = "PSYT35_56_bnds" ;
- double PSYT35_56_bnds(PSYT35_56, bnds) ;
- double PSZT1_10(PSZT1_10) ;
- PSZT1_10:units = "METERS" ;
- PSZT1_10:positive = "down" ;
- PSZT1_10:point_spacing = "uneven" ;
- PSZT1_10:axis = "Z" ;
- PSZT1_10:standard_name = "depth" ;
- PSZT1_10:bounds = "PSZT1_10_bnds" ;
- double PSZT1_10_bnds(PSZT1_10, bnds) ;
- double TIME1(TIME1) ;
- TIME1:units = "hour since 1980-01-14 14:00:00" ;
- TIME1:time_origin = "14-JAN-1980 14:00:00" ;
- TIME1:axis = "T" ;
- TIME1:standard_name = "time" ;
- int FAREN(TIME1, PSZT1_10, PSYT35_56, PSXT91_108) ;
+ double PSXT191_108(PSXT191_108) ;
+ PSXT191_108:units = "degrees_east" ;
+ PSXT191_108:point_spacing = "even" ;
+ PSXT191_108:modulo = 360. ;
+ PSXT191_108:axis = "X" ;
+ PSXT191_108:standard_name = "longitude" ;
+ double PSYT135_56(PSYT135_56) ;
+ PSYT135_56:units = "degrees_north" ;
+ PSYT135_56:point_spacing = "uneven" ;
+ PSYT135_56:axis = "Y" ;
+ PSYT135_56:standard_name = "latitude" ;
+ PSYT135_56:bounds = "PSYT135_56_bnds" ;
+ double PSYT135_56_bnds(PSYT135_56, bnds) ;
+ double PSZT11_10(PSZT11_10) ;
+ PSZT11_10:units = "meters" ;
+ PSZT11_10:positive = "down" ;
+ PSZT11_10:point_spacing = "uneven" ;
+ PSZT11_10:axis = "Z" ;
+ PSZT11_10:standard_name = "depth" ;
+ PSZT11_10:bounds = "PSZT11_10_bnds" ;
+ double PSZT11_10_bnds(PSZT11_10, bnds) ;
+ double TIME11(TIME11) ;
+ TIME11:units = "hour since 1980-01-14 14:00:00" ;
+ TIME11:time_origin = "14-JAN-1980 14:00:00" ;
+ TIME11:axis = "T" ;
+ TIME11:standard_name = "time" ;
+ int FAREN(TIME11, PSZT11_10, PSYT135_56, PSXT191_108) ;
FAREN:missing_value = -999 ;
FAREN:_FillValue = -999 ;
FAREN:long_name = "TEMP*9/5 + 32" ;
@@ -79003,8 +81680,8 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79022,8 +81699,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -79052,8 +81729,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -79082,8 +81759,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -79101,7 +81778,7 @@ dimensions:
XAX_LEV9421_380 = 360 ;
YAX_LEV9450_50 = 1 ;
ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (1 currently)
+ TIME3 = UNLIMITED ; // (1 currently)
variables:
double XAX_LEV9421_380(XAX_LEV9421_380) ;
XAX_LEV9421_380:units = "degrees_east" ;
@@ -79121,13 +81798,13 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
+ double TIME3(TIME3) ;
+ TIME3:units = "hour since 0000-01-01 00:00:00" ;
+ TIME3:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME3:modulo = " " ;
+ TIME3:axis = "T" ;
+ TIME3:standard_name = "time" ;
+ float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_380) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "Temperature" ;
@@ -79135,15 +81812,15 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
XAX_LEV9421_3801_12 = 12 ;
YAX_LEV9450_50 = 1 ;
ZAXLEVIT191_1 = 1 ;
- TIME = UNLIMITED ; // (1 currently)
+ TIME3 = UNLIMITED ; // (1 currently)
variables:
double XAX_LEV9421_3801_12(XAX_LEV9421_3801_12) ;
XAX_LEV9421_3801_12:units = "degrees_east" ;
@@ -79163,13 +81840,13 @@ variables:
ZAXLEVIT191_1:point_spacing = "even" ;
ZAXLEVIT191_1:axis = "Z" ;
ZAXLEVIT191_1:standard_name = "depth" ;
- double TIME(TIME) ;
- TIME:units = "hour since 0000-01-01 00:00:00" ;
- TIME:time_origin = "01-JAN-0000 00:00:00" ;
- TIME:modulo = 8765.81982421875 ;
- TIME:axis = "T" ;
- TIME:standard_name = "time" ;
- float TEMP(TIME, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
+ double TIME3(TIME3) ;
+ TIME3:units = "hour since 0000-01-01 00:00:00" ;
+ TIME3:time_origin = "01-JAN-0000 00:00:00" ;
+ TIME3:modulo = " " ;
+ TIME3:axis = "T" ;
+ TIME3:standard_name = "time" ;
+ float TEMP(TIME3, ZAXLEVIT191_1, YAX_LEV9450_50, XAX_LEV9421_3801_12) ;
TEMP:missing_value = -1.e+34f ;
TEMP:_FillValue = -1.e+34f ;
TEMP:long_name = "Temperature" ;
@@ -79177,8 +81854,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79195,18 +81872,18 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
err611_set_var_ez.jnl ---
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX138 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_ASC(XAX1_3) ;
+ double AX138(AX138) ;
+ AX138:point_spacing = "even" ;
+ AX138:axis = "X" ;
+ float MY_ASC(AX138) ;
MY_ASC:missing_value = 3.f ;
MY_ASC:_FillValue = 3.f ;
MY_ASC:long_name = "chlorophyll" ;
@@ -79214,17 +81891,17 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX138 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_UNF(XAX1_3) ;
+ double AX138(AX138) ;
+ AX138:point_spacing = "even" ;
+ AX138:axis = "X" ;
+ float MY_UNF(AX138) ;
MY_UNF:missing_value = 5.f ;
MY_UNF:_FillValue = 5.f ;
MY_UNF:long_name = "Some Unformatted input" ;
@@ -79232,8 +81909,8 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
netcdf a {
@@ -79249,8 +81926,8 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -79270,8 +81947,8 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
@@ -79312,6 +81989,7 @@ variables:
lat1_5:bounds = "lat1_5_bnds" ;
double lat1_5_bnds(lat1_5, bnds) ;
float zt(zt) ;
+ zt:long_name = "zt" ;
zt:units = "meters" ;
zt:positive = "down" ;
zt:point_spacing = "uneven" ;
@@ -79321,8 +81999,8 @@ variables:
float zt_bnds(zt, bnds) ;
double time1478(time1478) ;
time1478:calendar = "NOLEAP" ;
- time1478:point_spacing = "even" ;
time1478:axis = "T" ;
+ time1478:point_spacing = "even" ;
time1478:standard_name = "time" ;
double newvar(time1478, zt, lat1_5, lon1_5) ;
newvar:missing_value = -999. ;
@@ -79332,8 +82010,8 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
netcdf a {
@@ -79359,8 +82037,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
netcdf a {
@@ -79386,8 +82064,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
netcdf a {
@@ -79452,8 +82130,8 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
netcdf a {
@@ -79484,8 +82162,8 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
netcdf a {
@@ -79517,8 +82195,8 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V6.861 17-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
-----
end of ncdump output
@@ -79531,27 +82209,27 @@ yes?
yes?
yes? GO bn_startupfile
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5PAE 32-bit - 03/17/14
- 17-Mar-14 15:55
+ FERRET v6.93
+ Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
+ 29-Oct-14 15:57
CAN MODE VERIFY
- Current size of FERRET memory cache: 31 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
PPL$XPIXEL = "656"
PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.861"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5PAE 32-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.18-398.el5PAE 32-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:50:21 $"
+NETCDF_VERSION = "4.3.3-rc2 of Oct 6 2014 16:16:52 $"
FERRET_MEMORY = "31"
-SESSION_DATE = "17-Mar-14"
-SESSION_TIME = "15:55"
-SESSION_PID = "3996"
-DELTA_CPU = "0.027995"
-CLOCK_SECS = "0.348"
-CURRENT_DATE = "17-Mar-14"
-CURRENT_TIME = "15:55:05"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "15:57"
+SESSION_PID = "1762"
+DELTA_CPU = "0.036993"
+CLOCK_SECS = "0.328"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "15:57:39"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
LAST_GO_FILE = "./bn_startupfile.jnl"
@@ -79573,7 +82251,7 @@ PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "17-Mar-14:15:55"
+WIN_TITLE = "29-Oct-14:15:57"
VP_WIDTH = "10.2"
VP_HEIGHT = "8.8"
VP_SCALE = "1"
@@ -79635,9 +82313,9 @@ yes?
yes?
yes? GO bn_gif
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5PAE 32-bit - 03/17/14
- 17-Mar-14 15:55
+ FERRET v6.93
+ Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
+ 29-Oct-14 15:57
! bn450_gif.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of gif file in batch mode using
@@ -79698,7 +82376,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= .gif [...]
@@ -79854,9 +82532,9 @@ yes?
yes?
yes? GO bn_ps
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5PAE 32-bit - 03/17/14
- 17-Mar-14 15:55
+ FERRET v6.93
+ Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
+ 29-Oct-14 15:57
! bn450_ps.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of ps files in batch mode using
@@ -79917,7 +82595,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= bnplot.ps [...]
@@ -79968,9 +82646,9 @@ yes?
yes?
yes? GO bn_batch_metafile
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5PAE 32-bit - 03/17/14
- 17-Mar-14 15:55
+ FERRET v6.93
+ Linux 2.6.18-398.el5PAE 32-bit - 10/29/14
+ 29-Oct-14 15:57
! bn_batch_metafile.jnl
! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -80054,4 +82732,4 @@ set window/location=0.1,0.1/title="another title"
set mode/last logo
exit/command
-Ended at Mon Mar 17 15:55:07 PDT 2014
+Ended at Wed Oct 29 15:57:41 PDT 2014
diff --git a/bench/ansley_official.rhel6-64_err b/bench/ansley_official.rhel6-64_err
index ee75936..e6331a5 100644
--- a/bench/ansley_official.rhel6-64_err
+++ b/bench/ansley_official.rhel6-64_err
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/flat_64/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53378727 Mar 28 11:22 /home/users/ansley/build/flat_64/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/flat_64/FERRET/external_functions/ext_func
+Running FERRET version /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 manke oerdnewp 79254903 Oct 29 16:02 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+Using external functions from /home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: ticket 2160: SET AXIS/NAME=
+Note: bug 2215
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -13,7 +13,7 @@ FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /hom
FER_DESCR=.
FER_DIR=.
FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/flat_64/FERRET/external_functions/ext_func
+FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
FER_GRIDS=.
@@ -21,12 +21,11 @@ FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
FER_LINK_DIR=/home/users/tmap/ferret_link/linux
FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
FER_WEB_BROWSER=firefox
-PWD=/home/users/ansley/build/flat_64/FERRET/bench
-Beginning at Fri Mar 28 11:40:40 PDT 2014
+PWD=/home/users/ansley/build/current_trunk/FERRET/bench
+Beginning at Wed Oct 29 16:02:58 PDT 2014
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
SET EXPRESSION has not been given or implied
- SET EXPRESSION has not been given or implied
**ERROR: unknown command qualifier: help
MESSAGE/CONTINUE /help
**ERROR: unknown command: that
@@ -306,7 +305,7 @@ list temp[i=2:5,gx=130e:80w:10]
list temp[gx=130e:80w]
**ERROR: variable unknown or not in data set: NOEXIST
list temp[gx=u] + noexist
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G004) does not exist at K=30
Axis extremes are K=1:27
list temp[gx=u,k=30]
**ERROR: illegal limits: TEMP does not contain K=20
@@ -322,7 +321,7 @@ list tu
list tu
**ERROR: variable unknown or not in data set: NOEXIST
list tu
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G004) does not exist at K=30
Axis extremes are K=1:27
list tu
**ERROR: illegal limits: TEMP does not contain K=20
@@ -582,9 +581,10 @@ Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: A negative number of words were requested.
+ **ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: The current grid is most likely too large
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
@@ -1085,7 +1085,7 @@ Replacing definition of axis TAX2
*** NOTE: regarding ./test_axes.nc ...
*** NOTE: Climatological axes test_irreg, test_seas defined
*** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
+ *** NOTE: Axis is in use by grid (G023)
*** NOTE: Not deleted: XEVEN
*** NOTE: Axis is in use by grid EVEN
*** NOTE: Not deleted: XODD
@@ -1190,18 +1190,18 @@ Replacing definition of axis TAX2
*** NOTE: Axis is in use by grid GFORMAT
*** NOTE: Not deleted: XAXLEVITR1_160
*** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: TIME5
*** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: COADSX
*** NOTE: Axis is in use by grid GG
*** NOTE: Not deleted: COADSY
*** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G023)
*** NOTE: Not deleted: YAXLEVITR1_90
*** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
*** NOTE: Not deleted: ZAXLEVITR1_1
*** NOTE: Axis is in use by grid GG2
*** NOTE: Not deleted: (AX020)
@@ -1310,10 +1310,10 @@ Replacing definition of axis TAX2
*** NOTE: Axis is in use by grid GFORMAT
*** NOTE: Not deleted: XAXLEVITR1_160
*** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: TIME5
*** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: COADSX
*** NOTE: Axis is in use by grid GG
*** NOTE: Not deleted: COADSY
@@ -1681,15 +1681,15 @@ Replacing definition of grid TGRID
def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units not recognized: SOMETHING
+ *** NOTE: Units not recognized: something
*** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: SOMETHING
+ *** NOTE: Units not recognized: something
*** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: ZORRO
+ *** NOTE: Units not recognized: zorro
*** NOTE: They will not be convertible:
- *** NOTE: Units not recognized for T axis: METERS
+ *** NOTE: Units not recognized for T axis: meters
*** NOTE: They will not be convertible
- *** NOTE: Units not recognized for Y axis: SECONDS
+ *** NOTE: Units not recognized for Y axis: seconds
*** NOTE: They will not be convertible
Replacing definition of axis TAX
Replacing definition of axis XAX
@@ -3485,11 +3485,6 @@ Replacing definition of axis ZAX
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
LISTing to file append_to_this.nc
-ncks: WARNING Overwriting global attribute history
-ncks: WARNING Overwriting global attribute Conventions
-ncks: WARNING Overwriting attribute point_spacing for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute axis for output variable ZAXIS_ORIG
-ncks: WARNING Overwriting attribute standard_name for output variable ZAXIS_ORIG
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
Replacing definition of axis XIRREG
@@ -3521,11 +3516,17 @@ Replacing definition of axis ZAX
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
- *** NOTE: Not deleted: ENSEMBLE
- *** NOTE: Axis is in use by grid (G103)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3609,10 +3610,14 @@ show att temp.noexist[d=levitus_climatology]
TEMPORARY data cleared from memory
**ERROR: invalid command: illegal new name. Variable b already defined
set var/name=b a
+ **ERROR: invalid command: illegal new name. Variable b already defined
+set var/name=b a
**ERROR: invalid command: illegal new name. Variable temp exists in dataset
set var/name=temp salt
**ERROR: invalid command: illegal new name. Variable psi exists in dataset
set var/name=psi myvar
+ **ERROR: invalid command: illegal new name. Variable diff already defined
+set var/name=diff w
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
*** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
@@ -3641,6 +3646,151 @@ set axis/name=.fr x_in_meters
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
+list tax_datestring (tt[L=3], tt, 5)
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: must be a constant COS(1)
+list {cos(1), sin(0)}
+ **ERROR: command syntax: must be a constant 0-180
+list {0-180, 180}
+ **ERROR: command syntax: must be a constant 1./5.
+list {0.1, 0.2, 1./5.}
+ **ERROR: command syntax: must be a constant 5*3+1
+list {5*3+1, 2+3}
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+ LISTing to file tval.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file out.xml
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAXIS
+ **ERROR: request exceeds memory setting: 2369 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+Replacing definition of axis LONGTIME
+ **ERROR: request exceeds memory setting: 4735 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ LISTing to file aa.nc
+ LISTing to file bb.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file anew_global.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file conventions_history.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis X2
+Replacing definition of axis Y2
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
+ **ERROR: illegal limits: X axis limits don't match variable def'n: A
+ Are you giving explicit limits when SET REGION would suffice ?
+list f
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
**ERROR: command syntax: unknown region name: @w
set region/@w
PERMANENT data cleared from memory
@@ -3728,4 +3878,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 Fri Mar 28 11:42:11 PDT 2014
+Ended at Wed Oct 29 16:04:41 PDT 2014
diff --git a/bench/ansley_official.rhel6-64_log b/bench/ansley_official.rhel6-64_log
index b1f2cf4..f8289ca 100644
--- a/bench/ansley_official.rhel6-64_log
+++ b/bench/ansley_official.rhel6-64_log
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
-Running FERRET version /home/users/ansley/build/flat_64/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53378727 Mar 28 11:22 /home/users/ansley/build/flat_64/FERRET/fer/ferret_c
-Using external functions from /home/users/ansley/build/flat_64/FERRET/external_functions/ext_func
+Running FERRET version /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+-rwxr-xr-x. 1 manke oerdnewp 79254903 Oct 29 16:02 /home/users/ansley/build/current_trunk/FERRET/fer/ferret_c
+Using external functions from /home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: ticket 2160: SET AXIS/NAME=
+Note: bug 2215
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -13,7 +13,7 @@ FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /hom
FER_DESCR=.
FER_DIR=.
FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/flat_64/FERRET/external_functions/ext_func
+FER_EXTERNAL_FUNCTIONS=/home/users/ansley/build/current_trunk/FERRET/external_functions/ext_func
FER_FONTS=/home/users/tmap/ferret/rhel6-x86_64-linux/ppl/fonts
FER_GO=. /home/users/tmap/ferret/rhel6-x86_64-linux/go /home/users/tmap/ferret/rhel6-x86_64-linux/examples /home/users/tmap/ferret/rhel6-x86_64-linux/contrib /home/users/tmap/ferret/tmap_go
FER_GRIDS=.
@@ -21,8 +21,8 @@ FER_LIBS=/home/users/tmap/ferret/rhel6-x86_64-linux/lib
FER_LINK_DIR=/home/users/tmap/ferret_link/linux
FER_PALETTE=. /home/users/tmap/ferret/rhel6-x86_64-linux/ppl
FER_WEB_BROWSER=firefox
-PWD=/home/users/ansley/build/flat_64/FERRET/bench
-Beginning at Fri Mar 28 11:40:40 PDT 2014
+PWD=/home/users/ansley/build/current_trunk/FERRET/bench
+Beginning at Wed Oct 29 16:02:58 PDT 2014
! BN500_ALL.JNL
! - run all the benchmark tests
! - ordered (more or less) from least to most complex
@@ -275,9 +275,9 @@ SHOW DATA/FULL
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ V1 V1 1:2 ... ... ... ... ...
+ on grid (G008) with -1.E+34 for missing data
+ X=-0.5:1.5
/FORMAT = FREE
/SKIP = 0
@@ -287,7 +287,7 @@ SHOW DATA
currently SET data sets:
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:2 ... ... ... ... ...
SET MODE IGNORE_ERROR
SET DATA/EZ/VAR="P,Q" 1
@@ -529,7 +529,7 @@ show mode journal
JOURNAL SET newjournal.jnl
set mode journal ferret.jnl
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= metafile.plt [...]
@@ -541,7 +541,7 @@ ppl list plot
ppl listsym
cancel mode ppllist
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= metafile.plt [...]
@@ -598,6 +598,8 @@ set mode metafile metafile.plt
! SET - SHOW - CANCEL EXPRESSION
SHOW EXPRESSION
+ current output expression(s):
+ X[GX=1:0:1]
CANCEL EXPRESSION
SHOW EXPRESSION
SET EXPRESSION i+5,i-j
@@ -796,19 +798,19 @@ SHOW VARIABLES
! SHOW MEMORY , LOAD
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded without /PERMANENT:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
105 /125W 50 /1.7N 1 /10 5 /13-SEP-1982 ... / ... ... / ...
SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded with /PERMANENT:
SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
all data in memory:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
@@ -818,9 +820,9 @@ all data in memory:
LET A=i
LOAD/PERM/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -834,9 +836,9 @@ SHOW MEMORY/FREE
number of blocks used /PERM: 1
LOAD/TEMPORARY/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -1406,8 +1408,8 @@ let x1 = 0.012954
let x2 = 7.5E-09
let x3 = .1
say >>`x1`<< --- >>`x2`<< --- >>`x3`<<
- !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09 << --- >>0.1<<
->>0.012954<< --- >>7.5E-09 << --- >>0.1<<
+ !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09<< --- >>0.1<<
+>>0.012954<< --- >>7.5E-09<< --- >>0.1<<
! must recognize "/" inside immediate mode exprn
list/I=`6/2` i
@@ -1748,8 +1750,8 @@ show data
2> ./snoopy.dat (default)
name title I J K L M N
- T4 test4 1:20480 ... ... ... ... ...
- T3 test3 1:20480 ... ... ... ... ...
+ T4 test4 1:2 ... ... ... ... ...
+ T3 test3 1:2 ... ... ... ... ...
show data/full 1
currently SET data sets:
@@ -9619,9 +9621,9 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ V1 V1 1:5 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9649,12 +9651,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:5 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:5.5
+ X2 X2 1:5 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9685,12 +9687,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 0
@@ -9729,12 +9731,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9767,12 +9769,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9802,12 +9804,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0))
/SKIP = 2
@@ -9840,12 +9842,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0)/)
/SKIP = 1
@@ -10089,7 +10091,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= bnplot.plt [...]
@@ -10189,7 +10191,7 @@ plot/i=1:10/ylimits=1:40/nolabel i ! note that /nolabel supresses XLAB
plot/i=1:10/over/sym=2 i^1.1
plot/i=1:10/over/sym=2/size=.12 i^1.2
plot/i=1:10/over/sym=2/color=red i^1.3
-plot/i=1:10/over/thick/step i^1.4
+plot/i=1:10/over/thick/step/color=light_blue i^1.4
plot/i=1:10/over/thick/color=blue/step=connected i^1.5
plot/i=1:10/over/thick=3/color=purple/size=.14 i^1.6
@@ -10448,18 +10450,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.862"
-FERRET_PLATFORM = "Linux 2.6.32-431.5.1.el6.x86_64 64-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "28-Mar-14"
-SESSION_TIME = "11:40"
-SESSION_PID = "30596"
-DELTA_CPU = "4.37933"
-CLOCK_SECS = "6.512"
-CURRENT_DATE = "28-Mar-14"
-CURRENT_TIME = "11:40:47"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "16:02"
+SESSION_PID = "1700"
+DELTA_CPU = "4.44432"
+CLOCK_SECS = "7.074"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "16:03:05"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -10477,18 +10479,18 @@ show symbol/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.862"
-FERRET_PLATFORM = "Linux 2.6.32-431.5.1.el6.x86_64 64-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "28-Mar-14"
-SESSION_TIME = "11:40"
-SESSION_PID = "30596"
-DELTA_CPU = "0.001"
-CLOCK_SECS = "6.513"
-CURRENT_DATE = "28-Mar-14"
-CURRENT_TIME = "11:40:47"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "16:02"
+SESSION_PID = "1700"
+DELTA_CPU = "0"
+CLOCK_SECS = "7.074"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "16:03:05"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
S1 = "hello"
@@ -10498,9 +10500,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = "28-Mar-14"
-SESSION_TIME = "11:40"
-SESSION_PID = "30596"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "16:02"
+SESSION_PID = "1700"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10510,15 +10512,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = "28-Mar-14"
-SESSION_TIME = "11:40"
-SESSION_PID = "30596"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "16:02"
+SESSION_PID = "1700"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = "28-Mar-14"
-SESSION_TIME = "11:40"
-SESSION_PID = "30596"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "16:02"
+SESSION_PID = "1700"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10552,9 +10554,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
! show the upper left coordinate limits labels as symbols
plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
show symbol lab*
-LAB1 = "FERRET Ver. 6.862"
+LAB1 = "FERRET (beta) Ver.6.93"
LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "28-MAR-2014 11:40:47"
+LAB3 = "29-OCT-2014 16:03:05"
LABX = "X"
LAB4 = "Y : 10"
LABNUM_Y = "4"
@@ -10649,18 +10651,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.862"
-FERRET_PLATFORM = "Linux 2.6.32-431.5.1.el6.x86_64 64-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "28-Mar-14"
-SESSION_TIME = "11:40"
-SESSION_PID = "30596"
-DELTA_CPU = "0.008999"
-CLOCK_SECS = "6.522"
-CURRENT_DATE = "28-Mar-14"
-CURRENT_TIME = "11:40:47"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "16:02"
+SESSION_PID = "1700"
+DELTA_CPU = "0.007999"
+CLOCK_SECS = "7.082"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "16:03:05"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -12355,7 +12357,7 @@ set region/l=1/k=1/i=101:105/j=46:50
load temp[gx=u]
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12406,7 +12408,7 @@ Dynamic axes:
list temp[gx=u,k=20] ! err during read
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12450,7 +12452,7 @@ list temp[gx=a] ! uvar for grid name
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12497,7 +12499,7 @@ let tu = temp[gx=u,k=20]
list tu ! err during read
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12528,7 +12530,7 @@ set mem/siz = 10
list temp[gz=z999999,z=5:15] ! err during regrid
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12544,7 +12546,7 @@ set mem/siz=`save_mem`
shade 1/0 * temp[gx=u] ! err during plot
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12576,7 +12578,7 @@ list temp[gx=psxu]
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12618,7 +12620,7 @@ list temp[gx=u]
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12658,7 +12660,7 @@ list temp[gx=psxu] + 5
0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12684,7 +12686,7 @@ list 5 + temp[gx=psxu]
0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12711,7 +12713,7 @@ list tu
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12722,7 +12724,7 @@ Dynamic grids:
Dynamic axes:
no implicit axes
show grid tu
- GRID (G003)
+ GRID (G004)
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12747,7 +12749,7 @@ list tu
0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12826,7 +12828,7 @@ list temp[gx=taux] ! X only
0.17S / 45: 27.8727 27.7878 27.7232 27.6494 27.5563 27.4494
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12937,7 +12939,7 @@ Dynamic axes:
! * * * dynamic generation of pseudo-variables * * *
list x[x=.1:1:.1] ! dynamic abstract
VARIABLE : X
- axis (AX003)
+ axis (AX005)
SUBSET : 10 points (X)
0.1 / 1: 0.10000
0.2 / 2: 0.20000
@@ -12951,7 +12953,7 @@ list x[x=.1:1:.1] ! dynamic abstract
1 / 10: 1.00000
list x[gx=psxu,x=130:150:2.5] ! dynamic based on named axis
VARIABLE : X
- axis (AX004)
+ axis (AX003)
SUBSET : 9 points (LONGITUDE)
130E / 1: 130.000
132.5E / 2: 132.500
@@ -13038,24 +13040,24 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX002) X 7 r 0.1 9.1
- (AX004) Y 3 r 95 109
+ (AX004) X 7 r 0.1 9.1
+ (AX003) Y 3 r 95 109
normal Z
normal T
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 7 r 0.1 9.1
- (AX003) Y 10 r 101 110
+ (AX004) X 7 r 0.1 9.1
+ (AX005) Y 10 r 101 110
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX004) use count: 1
- AXIS (AX002) use count: 2
AXIS (AX003) use count: 1
+ AXIS (AX004) use count: 2
+ AXIS (AX005) use count: 1
! ambiguous coordinate tests
list/order=x x[x=0.1:10:1.5] + x[x=1.1:11:1.5]
@@ -13073,16 +13075,16 @@ list/order=x a
1.2000 4.2000 7.2000 10.2000 13.2000 16.2000 19.2000
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
- (AX004) X 7 r 0.1 9.1
+ (AX003) X 7 r 0.1 9.1
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX004) use count: 1
+ AXIS (AX003) use count: 1
! box size on dynamic axes
cancel region
@@ -13106,10 +13108,10 @@ let/quiet b = a[i=1:10:2]
load b ! "child" irregular axis
show grid/x
Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
- GRID (G003)
+ Last successful data access was on grid (G004)
+ GRID (G004)
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
@@ -13141,7 +13143,7 @@ list/i=1:10 x[gx=temp] ! from named variable
139.5E / 10: 139.500
list x[g=temp,x=150w:130w:2.5] ! dynamic based on named variable
VARIABLE : X
- axis (AX005)
+ axis (AX001)
FILENAME : gtsa056_1.cdf
SUBSET : 9 points (LONGITUDE)
150W / 1: 210.000
@@ -13155,7 +13157,7 @@ list x[g=temp,x=150w:130w:2.5] ! dynamic based on named variable
130W / 9: 230.000
list x[gx=temp,x=150w:130w:2.5] ! dynamic based on named variable
VARIABLE : X
- axis (AX003)
+ axis (AX005)
FILENAME : gtsa056_1.cdf
SUBSET : 9 points (LONGITUDE)
150W / 1: 210.000
@@ -13183,16 +13185,16 @@ list/i=101:105/j=46:50/l=1/k=1 temp+x ! grid inherited from expression
0.17N / 46: 254.456 255.346 256.243 257.163 258.142
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX002) use count: 1
+ AXIS (AX004) use count: 1
! this expression does NOT inherit the X axis -- the result is
! i) ambiguous X axis coordinates
@@ -13214,23 +13216,23 @@ show grid/dynamic
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX004) LONGITUDE 5 r 129.5W 113.5W
+ (AX003) LONGITUDE 5 r 129.5W 113.5W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13253,7 +13255,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
! deliberate errors: ****
list x[i=5:1:1] ! not an error: inverted order
VARIABLE : X
- axis (AX004)
+ axis (AX003)
SUBSET : 5 points (X)
1 / 1: 1.00000
2 / 2: 2.00000
@@ -13298,23 +13300,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX004) LONGITUDE 6 i 108.5W(-468.5) 98.5W(-458.5)
+ (AX003) LONGITUDE 6 i 108.5W(-468.5) 98.5W(-458.5)
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
! regular dynamic axis
! ... by subscript
@@ -13382,22 +13384,22 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX004) LATITUDE 4 r 0.5S 4N
+ (AX003) LATITUDE 4 r 0.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
! ========
! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13559,24 +13561,24 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 4 r 130W 121W
- (AX003) LATITUDE 4 r 0.5S 4N
+ (AX001) LONGITUDE 4 r 130W 121W
+ (AX005) LATITUDE 4 r 0.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX003) use count: 1
AXIS (AX005) use count: 1
- AXIS (AX002) use count: 1
+ AXIS (AX001) use count: 1
+ AXIS (AX004) use count: 1
! the same tests but now on a nested definition
! regular dynamic axis
@@ -13744,23 +13746,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX003) LONGITUDE 6 r 138W 113W
+ (AX005) LONGITUDE 6 r 138W 113W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 4 r 130W 121W
+ (AX001) LONGITUDE 4 r 130W 121W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
- AXIS (AX003) use count: 1
AXIS (AX005) use count: 1
+ AXIS (AX001) use count: 1
! irregular dynamic axis
! ... by subscript
@@ -13898,23 +13900,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 8 r 90W 62W
+ (AX001) LONGITUDE 8 r 90W 62W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX002) LATITUDE 6 r 3.5S 4N
+ (AX004) LATITUDE 6 r 3.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 1
- AXIS (AX002) use count: 1
+ AXIS (AX001) use count: 1
+ AXIS (AX004) use count: 1
! nested modulo (the dynamic axis is **NOT** modulo)
! ... by subscript
@@ -14096,23 +14098,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX002) LONGITUDE 9 r 101W 53W
+ (AX004) LONGITUDE 9 r 101W 53W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX003) LONGITUDE 8 r 90W 62W
+ (AX005) LONGITUDE 8 r 90W 62W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
- AXIS (AX002) use count: 1
- AXIS (AX003) use count: 1
+ AXIS (AX004) use count: 1
+ AXIS (AX005) use count: 1
! calendar axes
list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave] ! 6-day ave
@@ -14144,7 +14146,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`] ! pseudo-var
!-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48] ! pseudo-var
VARIABLE : T
- axis (AX004)
+ axis (AX003)
SUBSET : 3 points (TIME)
15-JAN-1982 00 / 1: 723925.
17-JAN-1982 00 / 2: 723927.
@@ -14756,7 +14758,7 @@ show data/full
on grid G016_NYZ with -1.E+34 for missing data
X=130E:140E
JK J1+K1 ... 5:10 5:15 ... ... ...
- on grid G007_NXT with -1.E+34 for missing data
+ on grid G008_NXT with -1.E+34 for missing data
Y=21.11S:12.52S Z=40:190
IJK TEMP[L=@AVE] 70:72 1:100 1:27 ... ... ...
(T=15-MAR-1983 09:30:15-MAR-1983 11:30)
@@ -17828,10 +17830,10 @@ list a2[gx=xoffset at ave, gy=yoffset at ave]
eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
pseudo Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
-DELETE X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A2 M:297 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -17864,10 +17866,10 @@ list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:298 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
pseudo Y M:297 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE Y M:297 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
-DELETE X M:298 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A2 M:298 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -17901,10 +17903,10 @@ list a2[gx=xoffset at var, gy=yoffset at var]
eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
pseudo Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
-DELETE X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A2 M:297 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -18102,18 +18104,18 @@ list a5[gx=x5 at max] ! note: top dest axis point, only, looks at point above
allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 2 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A5 --> (G008) @MAX
+ allocate dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ strip regrid on X: A5 --> (G002) @MAX
eval A5 C: 7 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:298 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A5 M:297 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
VARIABLE : X[GX=X5_EDGES]
regrid: 1 delta on X at MAX
SUBSET : 5 points (X)
@@ -18123,7 +18125,7 @@ list a5[gx=x5 at max] ! note: top dest axis point, only, looks at point above
4 / 4: 3.50000
5 / 5: 5.50000
let a5 = x[gx=x5_edges, i=3]
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE A5 M:297 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE A5 M:299 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
@@ -25630,7 +25632,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Fri Mar 28 11:40:54 PDT 2014
+Wed Oct 29 16:03:12 PDT 2014
GO bn_reset
cancel mode verify
@@ -25757,7 +25759,7 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
1N / 46: 29.1373 28.9243 28.3264
1S / 45: 28.8965 28.8240 28.5357
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -26254,7 +26256,7 @@ Dynamic grids:
GRID (G017) use count: 2
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX001) LATITUDE 5 r 1S 1N
+ (AX002) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -26262,13 +26264,13 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX001) LATITUDE 5 r 1S 1N
+ (AX002) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
normal F
Dynamic axes:
- AXIS (AX001) use count: 2
+ AXIS (AX002) use count: 2
cancel memory/all
let/quiet a = sst[l=1,y=1s:1n:.5]
list SAMPLEI(a,{30,40,50})
@@ -26288,7 +26290,7 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX005) LATITUDE 5 r 1S 1N
+ (AX001) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -26296,13 +26298,13 @@ Dynamic grids:
GRID (G017) use count: 1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 5 r 1S 1N
+ (AX001) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 2
+ AXIS (AX001) use count: 2
! sampling a pseudo-variable
list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26459,9 +26461,9 @@ list SAMPLEI(Y[y=110:200:10],{3,4,7})
cancel memory/all
set mode diagnostic
list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
- dealloc dynamic grid (G017) NORMAL (AX001) NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT (AX001) NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT (AX001) NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G017) NORMAL (AX002) NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G006) ABSTRACT (AX002) NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G006) ABSTRACT (AX002) NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C09,V02 C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -26564,7 +26566,7 @@ list a ! <-- CACHE HIT FAILS!!!
set mode/last diagnostic
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -29159,15 +29161,15 @@ stat $1[gx=xtrop]
!-> stat sst[gx=xtrop]
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 52 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29186,7 +29188,7 @@ stat $1[gx=xtrop]
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29199,15 +29201,15 @@ stat $1[gx=xtrop]
-DELETE I M: 49 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 49 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29230,21 +29232,21 @@ let $1x = $1[gx=xtrop]
!-> DEFINE VARIABLE sstx = sst[gx=xtrop]
stat $1x
!-> stat sstx
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SSTX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTX C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 27 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -29262,7 +29264,7 @@ stat $1x
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29274,14 +29276,14 @@ stat $1x
-DELETE I M: 44 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTX C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 44 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -29300,24 +29302,24 @@ stat $1x
Standard deviation: 9.8848
define grid/x=xtrop gx
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SSTX M: 40 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SSTX M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
stat $1[g=gx]
!-> stat sst[g=gx]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 47 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29336,7 +29338,7 @@ stat $1[g=gx]
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29349,15 +29351,15 @@ stat $1[g=gx]
-DELETE I M: 43 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 43 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29379,19 +29381,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 (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 46 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
regrid SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X, 1 deg on Y
@@ -29410,7 +29412,7 @@ stat $1[gx=xtrop,gy=ytrop]
Mean value: 26.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29423,16 +29425,16 @@ stat $1[gx=xtrop,gy=ytrop]
-DELETE I M: 40 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 40 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
regrid SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X, 1 deg on Y
@@ -29453,7 +29455,7 @@ stat $1[gx=xtrop,gy=ytrop]
define grid/like=$1/x=xtrop/y=ytrop gxyt
!-> define grid/like=sst/x=xtrop/y=ytrop gxyt
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
@@ -29991,18 +29993,18 @@ stat $1[gx=xtrop]
!-> stat sst5[gx=xtrop]
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 50 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 42 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 42 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 42 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30021,7 +30023,7 @@ stat $1[gx=xtrop]
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST5 M: 42 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -30034,18 +30036,18 @@ stat $1[gx=xtrop]
-DELETE I M: 42 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 42 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 45 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 45 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 45 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30068,24 +30070,24 @@ let $1x = $1[gx=xtrop]
!-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
stat $1x
!-> stat sst5x
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST5 M: 45 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5X C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SST5X C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 9 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 45 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 58 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST5[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -30103,7 +30105,7 @@ stat $1x
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30115,17 +30117,17 @@ stat $1x
-DELETE I M: 61 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SST5X C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 9 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 61 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 62 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST5[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -30146,20 +30148,20 @@ stat $1x
define grid/x=xtrop gx
stat $1[g=gx]
!-> stat sst5[g=gx]
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 65 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 66 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30178,7 +30180,7 @@ stat $1[g=gx]
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30190,18 +30192,18 @@ stat $1[g=gx]
-DELETE I M: 68 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 68 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 69 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30223,7 +30225,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 (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST5 --> GXYT @LIN
@@ -30441,7 +30443,7 @@ let $1xyt = $1[g=gxyt]
dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-DELETE SST5X M: 60 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5X M: 64 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST5 M: 58 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 62 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 66 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -31042,7 +31044,7 @@ say `a,return=isize`
getgrid (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -31166,7 +31168,7 @@ cancel mode verify
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE (C09,V11 M: 79 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE (C09,V11 M: 90 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
-DELETE (C01,V11 M: 84 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE (C01,V11 M: 93 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
@@ -31390,7 +31392,7 @@ show grid
GRID (G012)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 201 r 10S 10N
+ (AX001) LATITUDE 201 r 10S 10N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -31400,7 +31402,7 @@ Dynamic grids:
GRID (G012) use count: 1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 201 r 10S 10N
+ (AX001) LATITUDE 201 r 10S 10N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -31414,7 +31416,7 @@ Dynamic grids:
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 1
+ AXIS (AX001) use count: 1
AXIS (AX012) use count: 1
AXIS (AX020) use count: 1
@@ -31534,7 +31536,7 @@ SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2] ! implicit Y axis
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31543,7 +31545,7 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 41 r 10S 2S
+ (AX001) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31552,7 +31554,7 @@ SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
@@ -31561,7 +31563,7 @@ SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2]) ! abstract X axis
GRID (G018)
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31578,15 +31580,15 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
- (AX005) T (CYC/hour) 2 r 0.00034224 0.00068448
+ (AX001) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
GRID (G018)
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31599,7 +31601,7 @@ SHOW GRID
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 41 r 10S 2S
+ (AX001) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31611,14 +31613,14 @@ SHOW GRID
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
list/j=1:5 j
VARIABLE : J
- axis (AX002)
+ axis (AX004)
SUBSET : 5 points (LATITUDE)
9.2S / 5: 5.00000
9.4S / 4: 4.00000
@@ -31630,7 +31632,7 @@ SHOW GRID MYGRID
GRID MYGRID
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31640,14 +31642,14 @@ Dynamic grids:
GRID (G011) use count: 1
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
Dynamic axes:
AXIS (AX011) use count: 1
- AXIS (AX002) use count: 2
+ AXIS (AX004) use count: 2
AXIS (AX020) use count: 1
@@ -34178,6 +34180,10 @@ SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
XPTS: X values of sample points
YPTS: Y values of sample points
TPTS: T values of sample points
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -36867,56 +36873,56 @@ show data/var
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V2 V2 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V3 V3 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V4 V4 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V5 V5 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V5 V5 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V6 V6 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V7 V7 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V8 V8 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V9 V9 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V10 V10 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
/DELIMITERS="\t,\,"
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
@@ -37015,11 +37021,11 @@ show data
currently SET data sets:
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- A1 A1 1:20480 ... ... ... ... ...
- A2 A2 1:20480 ... ... ... ... ...
- A3 A3 1:20480 ... ... ... ... ...
- A4 A4 1:20480 ... ... ... ... ...
- A5 A5 1:20480 ... ... ... ... ...
+ A1 A1 1:7 ... ... ... ... ...
+ A2 A2 1:7 ... ... ... ... ...
+ A3 A3 1:7 ... ... ... ... ...
+ A4 A4 1:7 ... ... ... ... ...
+ A5 A5 1:7 ... ... ... ... ...
list a1,a2,a3,a4,a5
DATA SET: ./bn_delimited_read_1.dat
@@ -37127,18 +37133,18 @@ show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
file/form=delimited/delimiter=" " bn_delimited_read_2.dat
show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
(Julian days since 1-Jan-1900)
- V2 V2 1:20480 ... ... ... ... ...
+ V2 V2 1:3 ... ... ... ... ...
(Time of day)
- V3 V3 1:20480 ... ... ... ... ...
+ V3 V3 1:3 ... ... ... ... ...
(all values missing)
list v1,v2
@@ -37439,367 +37445,367 @@ show data/full
1> ./bn_delimited_read_CO2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V2 V2 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V3 V3 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V4 V4 1:20 ... ... ... ... ...
(Julian days since 1-Jan-1900)
Data type = NUMERIC
Conversion /TYPE=DATE
- days on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V5 V5 1:20480 ... ... ... ... ...
+ days on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V5 V5 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V6 V6 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V7 V7 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V8 V8 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V9 V9 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V10 V10 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V11 V11 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V11 V11 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V12 V12 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V12 V12 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V13 V13 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V13 V13 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V14 V14 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V14 V14 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V15 V15 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V15 V15 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V16 V16 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V16 V16 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V17 V17 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V17 V17 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V18 V18 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V18 V18 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V19 V19 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V19 V19 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V20 V20 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V20 V20 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V21 V21 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V21 V21 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V22 V22 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V22 V22 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V23 V23 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V23 V23 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V24 V24 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V24 V24 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V25 V25 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V25 V25 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V26 V26 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V26 V26 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V27 V27 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V27 V27 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V28 V28 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V28 V28 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V29 V29 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V29 V29 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V30 V30 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V30 V30 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V31 V31 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V31 V31 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V32 V32 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V32 V32 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V33 V33 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V33 V33 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V34 V34 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V34 V34 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V35 V35 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V35 V35 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V36 V36 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V36 V36 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V37 V37 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V37 V37 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V38 V38 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V38 V38 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V39 V39 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V39 V39 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V40 V40 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V40 V40 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V41 V41 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V41 V41 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V42 V42 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V42 V42 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V43 V43 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V43 V43 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V44 V44 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V44 V44 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V45 V45 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V45 V45 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V46 V46 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V46 V46 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V47 V47 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V47 V47 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V48 V48 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V48 V48 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V49 V49 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V49 V49 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V50 V50 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V50 V50 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V51 V51 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V51 V51 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V52 V52 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V52 V52 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V53 V53 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V53 V53 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V54 V54 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V54 V54 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V55 V55 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V55 V55 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V56 V56 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V56 V56 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V57 V57 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V57 V57 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V58 V58 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V58 V58 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V59 V59 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V59 V59 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V60 V60 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V60 V60 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V61 V61 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V61 V61 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V62 V62 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V62 V62 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V63 V63 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V63 V63 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V64 V64 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V64 V64 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V65 V65 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V65 V65 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V66 V66 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V66 V66 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V67 V67 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V67 V67 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V68 V68 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V68 V68 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V69 V69 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V69 V69 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V70 V70 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V70 V70 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V71 V71 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V71 V71 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V72 V72 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V72 V72 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
/DELIMITERS="\t,\,"
/FORMAT = DELIMITED
@@ -38343,7 +38349,7 @@ set mode stupid
set mode diag
set mem/size=0.05
show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 0.2 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 100
@@ -38357,11 +38363,11 @@ show mem/free
use/ord=x-y test_100x100.nc
list/prec=1 a[i=1:100:10] ! this looks just right!!
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 100 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
strip regrid on X: A --> (G005) @XACT
strip reversing A on Y axis: 1 100 dset: 1
rdstride A C: 8 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -38369,7 +38375,7 @@ list/prec=1 a[i=1:100:10] ! this looks just right!!
-DELETE A M: 1 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
nulrgd A M: 1 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE A M: 2 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
VARIABLE : IF I EQ J THEN 1 ELSE A0
regrid: 10 delta on X
FILENAME : test_100x100.nc
@@ -38481,7 +38487,7 @@ show grid
Last successful data access was on grid (G005)
GRID (G005)
name axis # pts start end
- (AX010) X 10 r 1 91
+ (AX017) X 10 r 1 91
YAX1_100 Y 100 r 1 100
normal Z
normal T
@@ -38491,7 +38497,7 @@ show grid
! should be a diagonal path of steps all the way across the plot
shade a[i=1:100:10]
eval EX#1 C: 4 dset: 1 I: 1 100 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
strip regrid on X: A --> (G005) @XACT
strip reversing A on Y axis: 1 100 dset: 1
rdstride A C: 8 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -38499,7 +38505,7 @@ shade a[i=1:100:10]
-DELETE A M: 2 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
nulrgd A M: 2 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE A M: 3 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
setting up 2D plot
-DELETE A M: 3 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
PPL plot 279 complete
@@ -38810,8 +38816,11 @@ save/q/clob/file=g.nc b
can var a b
sp ncrename -h -v A,a f.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
sp ncrename -h -v A,a -v B,b f2.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 2 variables
sp ncrename -h -v B,b g.nc
+ncrename: In total renamed 0 attributes, 0 dimensions, 0 groups, and 1 variable
use f.nc
use f2.nc
use g.nc
@@ -39938,37 +39947,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
!-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
dealloc dynamic grid GFJ3 XAX_SUBSPANORMAL NORMAL TAX_SUBSPANORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- dealloc dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- strip regrid on X: V2D_REG --> (G008) @XACT
+ allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ strip regrid on X: V2D_REG --> (G002) @XACT
found V2D_REG M: 69 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid V2D_REG M: 70 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
.... 12.0000 14.0000 16.0000 11.0000 13.0000 15.0000 ....
l200n/order=x $2[l=1,i=0:14:7]
!-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
............
set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
!-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc dynamic grid (G008) (AX017) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G002) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
-DELETE V2D_REG M: 71 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- dealloc dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
+ allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ dealloc dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- strip regrid on T: V2D_REG --> (G008) @XACT
+ allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ strip regrid on T: V2D_REG --> (G002) @XACT
strip moduloing V2D_REG on T axis: 1 15 dset: 1
rdstride V2D_REG C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
doing moduloing V2D_REG on T axis: 1 5 dset: 1
-DELETE V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
nulrgd V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
-DELETE V2D_REG M: 72 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
+ dealloc dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
16-JAN-0000 / 1: 11.000
16-MAR-0000 / 2: 71.000
15-MAY-0000 / 3: 131.000
@@ -40467,29 +40476,29 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
!-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
dealloc dynamic grid GFJ4 XIRREG_SUBNORMAL NORMAL TIRREG_SUBNORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
strip regrid on X: V2D_IRR --> (G018) @XACT
found V2D_IRR M:146 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid V2D_IRR M:147 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
.... 12.0000 14.0000 16.0000 11.0000 12.1000 15.0000 ....
l200n/order=x $2[l=1,i=0:14:7]
!-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
............
set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
!-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc dynamic grid (G018) (AX010) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
-DELETE V2D_IRR M:148 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
+ allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
+ allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
strip regrid on T: V2D_IRR --> (G018) @XACT
strip moduloing V2D_IRR on T axis: 1 15 dset: 1
rdstride V2D_IRR C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
@@ -40497,7 +40506,7 @@ set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
-DELETE V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
nulrgd V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
-DELETE V2D_IRR M:149 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
+ dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
16-JAN-0000 / 1: 11.000
15-MAR-0000 / 2: 70.249
15-MAY-0000 / 3: 131.249
@@ -44835,52 +44844,52 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
load a
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
eval A C: 6 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- strip regrid on X: TAUX --> (G023) @XACT
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ strip regrid on X: TAUX --> (G022) @XACT
rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
nulrgd TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE TAUX M:146 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
can mem/all
-DELETE A M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
def grid/like=taux agrid
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6 NORMAL NORMAL
set mode diag
let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
dealloc dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6 NORMAL NORMAL
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
load a
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
eval A C: 6 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- strip regrid on X: TAUX --> (G023) @XACT
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ strip regrid on X: TAUX --> (G022) @XACT
rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
nulrgd TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE TAUX M:151 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
can mem/all
-DELETE TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE A M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
can data/all
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
! Some tests taken from bn_strides_revs_perms.jnl but with
! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44948,16 +44957,16 @@ LIST VAR[i=2:4:2,j=1:3:2]
dealloc dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
-DELETE VAR M:147 dset: 1 I: 1 2 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G014) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
nulrgd VAR M:146 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
FILENAME : bn_strides.cdf
@@ -44978,19 +44987,19 @@ CANC MEM/ALL
! modulo requests cannot use strides (as this example shows)
set axis/modulo XAX1_4
LIST VAR[I=1:10:3,j=1,k=1,l=1] ! 1, 4, 7(3), 10(2)
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G014) @XACT
strip moduloing VAR on X axis: 1 10 dset: 1
reading VAR M:151 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing VAR on X axis: 1 4 dset: 1
regrid VAR M:147 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 3 delta on X
FILENAME : bn_strides.cdf
@@ -45011,7 +45020,7 @@ cancel axis/modulo XAX1_4
! strides applied to more than one axis need special attention in IS_REGRID
LIST VAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
@@ -45040,16 +45049,16 @@ LIST VAR[i=2:6:2,j=1:5:2]
dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
-DELETE VAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G014) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
nulrgd VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
FILENAME : bn_strides.cdf
@@ -45066,7 +45075,7 @@ LIST VAR[i=2:6:2,j=1:5:2]
! test sub-region selection on strides axis
let a = bigvar[i=1:40:5]
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
-DELETE VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
list/j=1/k=1/l=1 a[i=3:5]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -45141,17 +45150,17 @@ cancel mem/all
LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 3 6 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G001) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
nulrgd UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE UNE-NVAR M:151 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
FILENAME : bn_strides.cdf
@@ -45169,7 +45178,7 @@ set region/i=3:6/j=2:4/k=1:2/l=1
use/order=yx bn_strides
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
-DELETE UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
@@ -46533,7 +46542,7 @@ set axis/units=feet `temp,return=zaxis`
show axis `temp,return=zaxis`
!-> show axis PSZT
name axis # pts start end
- PSZT Z (FEET) 27 i- 5 3824
+ PSZT Z (feet) 27 i- 5 3824
Axis span (to cell edges) = 4149
! unrecognized units
@@ -46542,7 +46551,7 @@ set axis/units="something" `temp,return=xaxis`
show axis `temp,return=xaxis`
!-> show axis PSXT1
name axis # pts start end
- PSXT1 X (SOMETHING) 160mr 130.5 289.5
+ PSXT1 X (something) 160mr 130.5 289.5
Axis span (to cell edges) = 160 (modulo length = 360)
! restore lon
@@ -46559,7 +46568,7 @@ set axis/units=something `temp,return=xaxis`
show axis `temp,return=xaxis`
!-> show axis PSXT1
name axis # pts start end
- PSXT1 X (SOMETHING) 160mr 130.5 289.5
+ PSXT1 X (something) 160mr 130.5 289.5
Axis span (to cell edges) = 160 (modulo length = 360)
! restore lon using word DEG
@@ -46579,7 +46588,7 @@ list/x=130w/y=1/k=1/L=1:5 temp
SUBSET : 5 points (TIME)
LONGITUDE: 130.5W
LATITUDE : 0.833N
- Z (ZORRO): 5
+ Z (zorro): 5
130.5W
100
17-AUG-1982 12 / 1: 25.9777
@@ -46594,9 +46603,9 @@ set axis/units=meters `temp,return=yaxis`
list/x=222/k=1/l=1/y=-0.5:0.5 temp
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- SUBSET : 4 points (Y (METERS))
+ SUBSET : 4 points (Y (meters))
LONGITUDE: 138.5W
- Z (ZORRO): 5
+ Z (zorro): 5
TIME : AUG-1982
138.5W
92
@@ -46617,7 +46626,7 @@ list/x=222/k=1/l=1/y=-0.5:0.5 temp
FILENAME : gt4d011.cdf
SUBSET : 4 points (LATITUDE)
LONGITUDE: 138.5W
- Z (ZORRO): 5
+ Z (zorro): 5
TIME : AUG-1982
138.5W
92
@@ -46632,10 +46641,10 @@ set axis/units=meters `temp,return=taxis`
list/x=130w/y=1/k=1/l=1:5 temp
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- SUBSET : 5 points (T (METERS))
+ SUBSET : 5 points (T (meters))
LONGITUDE: 130.5W
LATITUDE : 0.833N
- Z (ZORRO): 5
+ Z (zorro): 5
130.5W
100
22702 / 1: 25.9777
@@ -46650,9 +46659,9 @@ show grid temp
GRID PS3DT2
name axis # pts start end
PSXT1 LONGITUDE 160mr 130.5E 70.5W
- PSYT Y (SECONDS) 100 i -28.836 48.568
- PSZT Z (ZORRO) 27 i- 5 3824
- TIME11 T (METERS) 25 r 22702 26206
+ PSYT Y (seconds) 100 i -28.836 48.568
+ PSZT Z (zorro) 27 i- 5 3824
+ TIME11 T (meters) 25 r 22702 26206
normal E
normal F
@@ -48301,11 +48310,11 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver. 6.862
+ LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET (beta) Ver.6.93
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 @AS28-MAR-2014 11:41:22
+ LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS29-OCT-2014 16:03:42
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 4 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLONGITUDE : 179E
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
@@ -49421,11 +49430,11 @@ let the_data_var = {4,5,4}
list/format=comma country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY,ID,AA,BB,NEWCOUNTRY,THE_DATA_VAR
1 / 1:"JP",1,4000,1000500,"w",4
@@ -49434,11 +49443,11 @@ list/format=comma country, id, aa, bb, newcountry, the_data_var
list/format=tab/norow country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY ID AA BB NEWCOUNTRY THE_DATA_VAR
"JP" 1 4000 1000500 "w" 4
@@ -49582,7 +49591,7 @@ GO bn_long_revision_num.jnl
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.862"
+FERRET_VERSION = "6.93"
! history attribute
let a = 12
@@ -49600,7 +49609,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET version6.862:
+ Commands in Program FERRET (beta) version6.93:
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
@@ -49736,7 +49745,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "28-Mar-14:11:40"
+WIN_TITLE = "29-Oct-14:16:02"
set win/title="set the title"
sho sym win_title
@@ -49754,7 +49763,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title="28-Mar-14:11:40"
+ !-> set win/title="29-Oct-14:16:02"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -49763,16 +49772,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 = 28-Mar-14
+ !-> DEFINE SYMBOL the_date = 29-Oct-14
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 11:40
+ !-> DEFINE SYMBOL the_time = 16:02
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="28-Mar-14:11:40"
+ !-> SET WIN/TITLE="29-Oct-14:16:02"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "28-Mar-14:11:40"
+WIN_TITLE = "29-Oct-14:16:02"
GO bn_reset
cancel mode verify
@@ -54074,8 +54083,8 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -54119,8 +54128,8 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -54511,12 +54520,12 @@ use coads_climatology
set axis/stride=6/offset=5 `sst,return=xaxis`
!-> set axis/stride=6/offset=5 COADSX
show axis `sst,return=xaxis`
- !-> show axis (AX005)
+ !-> show axis (AX009)
name axis # pts start end
- (AX005) LONGITUDE 30mr 31E 19E(379)
+ (AX009) LONGITUDE 30mr 31E 19E(379)
Axis span (to cell edges) = 360 (modulo length = axis span)
cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX005)
+ !-> cancel axis/stride (AX009)
!--- 8.2 stride value is not an integer factor of the axis length
! warning: it may lose modulo property
@@ -54740,9 +54749,9 @@ show axis `sst,return=xaxis`
(AX051) LONGITUDE 90mr 21E 17E(377)
Axis span (to cell edges) = 360 (modulo length = axis span)
show axis `sst,return=yaxis`
- !-> show axis (AX005)
+ !-> show axis (AX009)
name axis # pts start end
- (AX005) LATITUDE 45 r 89S 87N
+ (AX009) LATITUDE 45 r 89S 87N
Axis span (to cell edges) = 180
show axis `sst,return=taxis`
!-> show axis (AX048)
@@ -55470,7 +55479,7 @@ set mem/siz=90
sh sym ferret_memory
FERRET_MEMORY = "90"
show memory
- Current size of FERRET memory cache: 90 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 90 MegaWords (1 word = 8 bytes)
set mem/size=0.05
sh sym ferret_memory
@@ -55482,7 +55491,7 @@ FERRET_MEMORY = "0.2"
set mem/siz=25.6 ! return to the default setting
show memory
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
GO bn_reset
cancel mode verify
@@ -55744,23 +55753,38 @@ EXPND_BY_LEN_STR(var,len,nx)
FC_ISUBSET(index_list,lengths,nx,FullData)
EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+SEPARATE(A,Rowsize,FixLongitudes)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
DATES(Offsets)
-EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EFSTRINGS(--)
FACTORIAL(A)
FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
+LENGTH_OF_STRINGS(--)
+MAXSTRLEN(A)
PASS_THRU(A)
+PASS_THRU_STRING(A)
PERCENT_GOOD_T(A)
+PICK_A_STRING(A,N)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SEPARATE(A,Rowsize,FixLongitudes)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
STORAGE(A)
STRING_ARG(Flags,NString)
+STRING_CAT3(A,B,C)
+STRING_LEN_SUM(S1,S2)
+STRINGS_AS_ARGS(S1,S2,NCHAR)
+STR_MISSING(MASK,STR,REPL)
STUDENT_T_CUTOFF(P,nf)
SUBTRACT(A,B)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
GO bn_reset
@@ -58313,7 +58337,7 @@ SORTI(DAT)
T: inherited from argument(s)
E: inherited from argument(s)
F: inherited from argument(s)
- DAT: variable to sort in I
+ DAT: variable to sort in I (FLOAT)
Influence on output axes:
X: no influence (indicate argument limits with "[]")
Y: passed to result grid
@@ -59970,10 +59994,10 @@ SH GRID am
GO bn_clock_syms
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "35.8975"
-CLOCK_SECS = "62.39"
-CURRENT_DATE = "28-Mar-14"
-CURRENT_TIME = "11:41:43"
+DELTA_CPU = "33.7209"
+CLOCK_SECS = "66.472"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "16:04:05"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -59982,8 +60006,8 @@ CURRENT_TIME = "11:41:43"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.033996"
-CLOCK_SECS = "62.45"
+DELTA_CPU = "0.036995"
+CLOCK_SECS = "66.57"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -59997,60 +60021,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.268959
+ !-> DEFINE VARIABLE ten_plots = 0.259961
sh sym DELTA_CPU, CLOCK_SECS
DELTA_CPU = "0"
-CLOCK_SECS = "63.055"
+CLOCK_SECS = "67.499"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "63.056"
+CLOCK_SECS = "67.499"
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.034994
- !-> DEFINE VARIABLE sumcpu =0.034994
+ !-> DEFINE VARIABLE dt = 0.029995
+ !-> DEFINE VARIABLE sumcpu =0.029995
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.069989
+ !-> DEFINE VARIABLE dt = 0.036994
+ !-> DEFINE VARIABLE sumcpu =0.066989
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.029995
- !-> DEFINE VARIABLE sumcpu =0.099984
+ !-> DEFINE VARIABLE dt = 0.040994
+ !-> DEFINE VARIABLE sumcpu =0.107983
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.034994
- !-> DEFINE VARIABLE sumcpu =0.134978
+ !-> DEFINE VARIABLE dt = 0.041994
+ !-> DEFINE VARIABLE sumcpu =0.149977
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.030996
- !-> DEFINE VARIABLE sumcpu =0.165974
+ !-> DEFINE VARIABLE dt = 0.041993
+ !-> DEFINE VARIABLE sumcpu =0.19197
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.199969
+ !-> DEFINE VARIABLE dt = 0.043994
+ !-> DEFINE VARIABLE sumcpu =0.235964
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.033994
- !-> DEFINE VARIABLE sumcpu =0.233963
+ !-> DEFINE VARIABLE dt = 0.034994
+ !-> DEFINE VARIABLE sumcpu =0.270958
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.033996
- !-> DEFINE VARIABLE sumcpu =0.267959
+ !-> DEFINE VARIABLE dt = 0.036995
+ !-> DEFINE VARIABLE sumcpu =0.307953
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.031995
- !-> DEFINE VARIABLE sumcpu =0.299954
+ !-> DEFINE VARIABLE dt = 0.035995
+ !-> DEFINE VARIABLE sumcpu =0.343948
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.031995
- !-> DEFINE VARIABLE sumcpu =0.331949
+ !-> DEFINE VARIABLE dt = 0.041993
+ !-> DEFINE VARIABLE sumcpu =0.385941
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.331949
-0.331949
+ !-> MESSAGE/CONTINUE 0.385941
+0.385941
sh sym CLOCK_SECS
-CLOCK_SECS = "64.012"
+CLOCK_SECS = "69.286"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "28-Mar-14"
-SESSION_TIME = "11:40"
-CURRENT_DATE = "28-Mar-14"
-CURRENT_TIME = "11:41:44"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "16:02"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "16:04:08"
! ******** V6.3 Additions below ***********
@@ -61282,11 +61306,11 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
strip regrid on T: TEMP --> ZNTERMED @AVE
reading TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
regrid TEMP M: 42 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
-DELETE TEMP M: 42 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 42 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
FILENAME : gtsa056_1.cdf
@@ -61306,13 +61330,13 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijkl
strip regrid on Z: TEMP --> YNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @LIN
found TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid TEMP M: 32 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
-DELETE TEMP M: 32 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
regrid TEMP M: 32 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
FILENAME : gtsa056_1.cdf
@@ -61332,11 +61356,11 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijkl
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @ASN
found TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid TEMP M: 29 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 34 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
-DELETE TEMP M: 29 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
@@ -61365,7 +61389,7 @@ plot temp
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid PS3DT1 PSXT1 PSYT1 PSZT2 TIME14 NORMAL NORMAL
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
setting up plot
PPL plot 753 complete
plot/over temp[g=u]
@@ -61375,12 +61399,12 @@ plot/over temp[g=u]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 28 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 27 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
@@ -61392,7 +61416,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
strip regrid on T: TEMP --> XNTERMED @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
@@ -61407,7 +61431,7 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
@@ -61423,12 +61447,12 @@ plot/over temp[g=u at ave]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @AAV
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 26 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @AAV
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 19 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
@@ -61440,7 +61464,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
strip regrid on T: TEMP --> XNTERMED @AVE
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 17 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
@@ -62570,65 +62594,65 @@ sp cat the_xml_file.xml
<value>8765.82</value>
</attribute>
</axis>
-<axis name="ZAXLEVIT191_1">
+<axis name="XAX_LEV9421_380">
<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
+ <value><![CDATA[I]]></value>
</attribute>
<attribute name="units" type="char">
- <value><![CDATA[METERS]]></value>
+ <value><![CDATA[degrees_east]]></value>
</attribute>
<attribute name="length" type="short">
- <value>1</value>
+ <value>360</value>
</attribute>
<attribute name="start" type="double">
- <value>0</value>
+ <value>20.5</value>
</attribute>
<attribute name="end" type="double">
- <value>0</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
+ <value>379.5</value>
</attribute>
<attribute name="point_spacing" type="char">
<value><![CDATA[even]]></value>
</attribute>
<attribute name="modulo" type="char">
- <value>no</value>
+ <value><![CDATA[yes]]></value>
</attribute>
<attribute name="infile_datatype" type="char">
<value><![CDATA[DOUBLE]]></value>
</attribute>
<attribute name="orig_file_axname" type="char">
- <value><![CDATA[ZAXLEVIT191_1]]></value>
+ <value><![CDATA[XAX_LEV9421_380]]></value>
</attribute>
</axis>
-<axis name="XAX_LEV9421_380">
+<axis name="ZAXLEVIT191_1">
<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
+ <value><![CDATA[K]]></value>
</attribute>
<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
+ <value><![CDATA[METERS]]></value>
</attribute>
<attribute name="length" type="short">
- <value>360</value>
+ <value>1</value>
</attribute>
<attribute name="start" type="double">
- <value>20.5</value>
+ <value>0</value>
</attribute>
<attribute name="end" type="double">
- <value>379.5</value>
+ <value>0</value>
+</attribute>
+<attribute name="positive" type="char">
+ <value><![CDATA[down]]></value>
</attribute>
<attribute name="point_spacing" type="char">
<value><![CDATA[even]]></value>
</attribute>
<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
+ <value>no</value>
</attribute>
<attribute name="infile_datatype" type="char">
<value><![CDATA[DOUBLE]]></value>
</attribute>
<attribute name="orig_file_axname" type="char">
- <value><![CDATA[XAX_LEV9421_380]]></value>
+ <value><![CDATA[ZAXLEVIT191_1]]></value>
</attribute>
</axis>
<axis name="YAX_LEV94">
@@ -62899,7 +62923,7 @@ define axis/t=1-jan-2010:30-mar-2010:1/units=days tin
define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
let tt = t[gt=tout,L=1:10]
sh grid tt
- GRID (G089)
+ GRID (G091)
name axis # pts start end
normal X
normal Y
@@ -63106,7 +63130,7 @@ list/x=2:3 sgrid
let tpts = 39798 + 87*RANDU(I)
show grid tt
- GRID (G103)
+ GRID (G089)
name axis # pts start end
X10 X 201 r 0 10
Y10 Y 201 r 0 10
@@ -64026,9 +64050,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.862 "
- 3 / 3:" ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 03/28/14"
- 4 / 4:" ! 28-Mar-14 11:40 "
+ 2 / 2:" ! FERRET v6.93 (beta)"
+ 3 / 3:" ! Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14"
+ 4 / 4:" ! 29-Oct-14 16:02 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -64090,23 +64114,24 @@ sh trans
variable transforms e.g.SST[T=1-jan:15-mar at DDC]
code description code description
---- ----------- ---- -----------
- @ITP interpolated @SPZ Parzen smoothed
- @AVE averaged @FAV ave-filled
- @VAR variance @FLN linear-filled
- @SUM summed @FNR nearest-filled
- @RSU running sum @NGD number of valid
- @SHF shifted @NBD number flagged bad
- @MIN minimum @LOC location
- @MAX maximum @WEQ weighted equal
- @DDC centered derivative @CDA closest dist above
- @DDF forward derivative @CDB closest dist below
- @DDB backwards derivative @CIA closest index above
- @DIN integrated @CIB closest index below
- @IIN indef. integ. @EVN event mask
- @SBX box smoothed @MED median smoothed
- @SBN binomial smoothed @SMX maximum smoothed
- @SWL Welch smoothed @SMN minimum smoothed
- @SHN Hanning smoothed @STD standard deviation
+ @ITP interpolated @FAV ave-filled
+ @AVE averaged @FLN linear-filled
+ @VAR variance @FNR nearest-filled
+ @SUM summed @NGD number of valid
+ @RSU running sum @NBD number flagged bad
+ @SHF shifted @LOC location
+ @MIN minimum @WEQ weighted equal
+ @MAX maximum @CDA closest dist above
+ @DDC centered derivative @CDB closest dist below
+ @DDF forward derivative @CIA closest index above
+ @DDB backwards derivative @CIB closest index below
+ @DIN integrated @EVN event mask
+ @IIN indef. integ. @MED median smoothed
+ @SBX box smoothed @SMX maximum smoothed
+ @SBN binomial smoothed @SMN minimum smoothed
+ @SWL Welch smoothed @STD standard deviation
+ @SHN Hanning smoothed @WGT weights for avg,int
+ @SPZ Parzen smoothed
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
@@ -66249,7 +66274,7 @@ let a = x[gx=0:2:1]; save/clob/file=a1.nc a
sho grid/x a
GRID (G101)
name axis # pts start end
- (AX128) X 3 r 0 2
+ (AX129) X 3 r 0 2
normal Y
normal Z
normal T
@@ -66265,7 +66290,7 @@ let a = x[gx=1:3:1]; save/clob/file=a2.nc a
sho grid/x a
GRID (G101)
name axis # pts start end
- (AX120) X 3 r 1 3
+ (AX116) X 3 r 1 3
normal Y
normal Z
normal T
@@ -66286,14 +66311,14 @@ can var/all; can dat/all
use a1
list x[gx=a[d=1]]
VARIABLE : X
- axis AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
2 / 3: 2.000
list x[gx=a[d=1,i=1:3]]
VARIABLE : X
- axis AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66308,7 +66333,7 @@ use a2
list x[gx=a[d=1]]
VARIABLE : X
- axis AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66317,7 +66342,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 AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66333,7 +66358,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 AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66496,40 +66521,40 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.940
-randu2_randn2 0.286
-randu2_randn2 0.045
-randu2_randn2 0.839
-randu2_randn2 0.445
+randu2_randn2 0.925
+randu2_randn2 0.939
+randu2_randn2 0.712
+randu2_randn2 0.070
+randu2_randn2 0.981
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.553
-randu2_randn2 0.241
-randu2_randn2 0.063
-randu2_randn2 0.435
-randu2_randn2 0.366
+randu2_randn2 0.285
+randu2_randn2 0.165
+randu2_randn2 0.236
+randu2_randn2 0.633
+randu2_randn2 0.135
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.354
-randu2_randn2 0.314
-randu2_randn2 0.798
-randu2_randn2 0.528
-randu2_randn2 0.607
-randu2_randn2 0.108
+randu2_randn2 0.690
+randu2_randn2 0.225
+randu2_randn2 0.822
+randu2_randn2 0.494
+randu2_randn2 0.818
+randu2_randn2 0.578
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.215
-randu2_randn2 0.246
-randu2_randn2 0.099
-randu2_randn2 0.204
-randu2_randn2 0.104
-randu2_randn2 0.148
+randu2_randn2 0.195
+randu2_randn2 0.170
+randu2_randn2 0.390
+randu2_randn2 0.112
+randu2_randn2 0.716
+randu2_randn2 0.341
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66554,40 +66579,40 @@ randu2_randn2 0.638
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.345
-randu2_randn2 -1.197
-randu2_randn2 -1.226
-randu2_randn2 -0.532
-randu2_randn2 0.783
+randu2_randn2 2.118
+randu2_randn2 3.132
+randu2_randn2 -1.682
+randu2_randn2 1.951
+randu2_randn2 -1.088
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 -0.339
-randu2_randn2 -0.069
-randu2_randn2 0.345
-randu2_randn2 2.072
-randu2_randn2 -1.610
+randu2_randn2 -1.474
+randu2_randn2 -1.168
+randu2_randn2 1.070
+randu2_randn2 -1.126
+randu2_randn2 -0.350
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 1.749
-randu2_randn2 -0.602
-randu2_randn2 -0.229
-randu2_randn2 1.741
-randu2_randn2 1.232
-randu2_randn2 0.522
+randu2_randn2 0.451
+randu2_randn2 2.386
+randu2_randn2 1.507
+randu2_randn2 -1.407
+randu2_randn2 -1.841
+randu2_randn2 1.406
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -0.061
-randu2_randn2 0.559
-randu2_randn2 -1.751
-randu2_randn2 -2.088
-randu2_randn2 0.150
-randu2_randn2 0.302
+randu2_randn2 0.293
+randu2_randn2 -0.300
+randu2_randn2 -0.661
+randu2_randn2 0.210
+randu2_randn2 1.113
+randu2_randn2 -0.920
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66612,14 +66637,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.017 1.494 0.754
-randu2_randn2 1.494 1.017 0.754
-randu2_randn2 0.754 0.754 0.257
-randu2_randn2 0.257 0.257 0.393
-randu2_randn2 -0.545 -0.545 0.393
-randu2_randn2 -0.658 -0.545 0.393
-randu2_randn2 -0.379 -0.379 0.393
-randu2_randn2 0.393 0.393 0.393
+randu2_randn2 1.173 1.545 0.424
+randu2_randn2 1.545 1.173 0.424
+randu2_randn2 0.424 0.424 0.224
+randu2_randn2 -0.186 -0.186 0.322
+randu2_randn2 -0.762 -0.186 0.322
+randu2_randn2 -0.144 -0.144 0.322
+randu2_randn2 0.224 0.224 0.322
+randu2_randn2 0.322 0.322 0.322
GO bn_reset
cancel mode verify
@@ -71072,10 +71097,10 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
-DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
-DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
@@ -71117,10 +71142,10 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
pseudo _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
-DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
-DELETE _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
regrid A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
@@ -71162,10 +71187,10 @@ list a2[ge=eoffset at var, gf=fax4day at var]
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
-DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
-DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
@@ -71371,18 +71396,18 @@ list afcst[gf=ehour at max]
-DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- strip regrid on F: AFCST --> (G106) @MAX
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ strip regrid on F: AFCST --> (G103) @MAX
eval AFCST C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
regrid AFCST M: 46 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
VARIABLE : _F[GF=EDAY]
regrid: 24 hour on F at MAX
SUBSET : 5 points (FORECAST)
@@ -71393,8 +71418,8 @@ list afcst[gf=ehour at max]
05-JAN-1990 00 / 5: 32497.0
show grid
Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G106)
- GRID (G106)
+ Last successful data access was on grid (G103)
+ GRID (G103)
name axis # pts start end
normal X
normal Y
@@ -71427,7 +71452,7 @@ 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 (G106) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ allocate dynamic grid (G103) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
strip --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
@@ -71455,7 +71480,7 @@ list/i=3 sst[T=@ave]
cancel data fourfiles
-DELETE SST M: 66 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
-DELETE SST M: 74 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: -999 -999 M: 1 4 N: -999 -999
- dealloc dynamic grid (G106) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ dealloc dynamic grid (G103) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
! Create airt in the other datasets by LET/D definitions.
let/d=ens2 airt = sst + 1
@@ -72401,8 +72426,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72452,8 +72477,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72491,8 +72516,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72530,8 +72555,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72561,8 +72586,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72593,8 +72618,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72654,8 +72679,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72699,8 +72724,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72754,8 +72779,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72790,8 +72815,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72826,8 +72851,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72862,8 +72887,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72894,8 +72919,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73124,8 +73149,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73156,8 +73181,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73197,8 +73222,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73235,8 +73260,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -73260,8 +73285,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -73285,8 +73310,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -73725,8 +73750,8 @@ variables:
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME10 = 366, 1096.485, 1826.97 ;
@@ -73754,8 +73779,8 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME10 = 366, 1096.485, 1826.97 ;
@@ -73805,8 +73830,8 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME10 = 366, 1096.485, 1826.97 ;
@@ -74271,6 +74296,54 @@ sh grid sal
normal E
normal F
+! This file from the datset "West Coast Carbon cruises" in our
+! example erdadp, has the cf_role attribute on a coordinate variable.
+! prof, time, latitude, longitude, and rowsize are on the E axis
+! press_db and pco2 are on the X asis
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+sh dat 2
+ currently SET data sets:
+ 2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+sh att (profile)
+ attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ (profile)._FillValue = -1.E+34
+ (profile).actual_range = 70, 90
+ (profile).cf_role = profile_id
+ (profile).history = From allDataFrom2007-2011-2012WestCoastCarbonCruises-revised3-6-13-1.txt
+ (profile).long_name = profile ID: Cruise and Station
+ (profile).missing_value = -1.E+34
+ (profile).orig_file_axname = profile
+sh grid rowsize
+ GRID GSS1
+ name axis # pts start end
+ normal X
+ normal Y
+ normal Z
+ normal T
+ PROFILE E 21 r 70 90
+ normal F
+sh grid pco2
+ GRID GSS2
+ name axis # pts start end
+ OBS1 X 373 r 1 373
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+
GO bn_reset
cancel mode verify
GO bn_nco_append
@@ -74322,9 +74395,10 @@ variables:
DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
// global attributes:
- :history = "Fri Mar 28 11:42:04 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
- "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "Wed Oct 29 16:04:27 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
+ "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
+ :NCO = "4.4.6" ;
}
GO bn_reset
@@ -74356,8 +74430,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -74387,8 +74461,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -74449,8 +74523,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! On a SAVE either with /BOUNDS or no bounds qualifier,
@@ -74477,8 +74551,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
@@ -75645,20 +75719,20 @@ save/file=a.nc/clobber labels
sp ncdump -h a.nc
netcdf a {
dimensions:
- ENSEMBLE = 3 ;
+ ENSEMBLE1 = 3 ;
maxStrlen64 = 64 ;
variables:
- double ENSEMBLE(ENSEMBLE) ;
- ENSEMBLE:long_name = "Ensemble of Realizations" ;
- ENSEMBLE:axis = "E" ;
- ENSEMBLE:point_spacing = "even" ;
- char LABELS(ENSEMBLE, maxStrlen64) ;
+ double ENSEMBLE1(ENSEMBLE1) ;
+ ENSEMBLE1:long_name = "Ensemble of Realizations" ;
+ ENSEMBLE1:axis = "E" ;
+ ENSEMBLE1:point_spacing = "even" ;
+ char LABELS(ENSEMBLE1, maxStrlen64) ;
LABELS:long_name = "Realizations" ;
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! The behavior is unchanged for user-defined variables
@@ -75680,8 +75754,8 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
@@ -75709,9 +75783,9 @@ fill/lev=(20,30,10)/L=1 sst
! *********** v6.9 Additions ***********
GO bn_reset
cancel mode verify
-GO bn687_bug_fixes
-! bn687_bug_fixes
-! test various fixes that went into version 6.87
+GO bn69_bug_fixes
+! bn69_bug_fixes
+! test various fixes that went into version 6.9
! 02/2014 ACM
GO bn_reset
@@ -75908,8 +75982,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! Yet more combinations
@@ -75938,8 +76012,8 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! We can use /KEEP_AXISNAMES, changes XAXIS_TEST1 to XAXIS_TEST
@@ -75959,8 +76033,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! Subsets also use XAXIS_TEST1
@@ -75980,8 +76054,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! Unless we use /KEEP_AXISNAMES - which removes renaming
@@ -76002,8 +76076,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! If we try /KEEP_AXISNAMES but there is a conflict, it's an err
@@ -76110,6 +76184,15 @@ sh var
C = 1
use gt4d011.cdf
+! again, with user-variables and an open dataset the message is as above
+
+let a = 1
+let b = 2
+set var/name=b a
+
+! Intentional error, new name already in file
+
+
! Intentional error, new name already in file
set var/name=temp salt
show dat
@@ -76163,7 +76246,8 @@ show dat
DIFF[D=gt4d011] = TAUX - TAUY
-
+! another error, new name is a user-var
+yes? set var/name=diff w
SET MODE/LAST ignore
@@ -76351,7 +76435,6 @@ DAYSAXIS1
set axis/name=days2000 daysaxis
! and now rename the one from the dataset back to its original name
-
set axis/name=daysaxis `a,return=taxis`
!-> set axis/name=daysaxis DAYSAXIS1
sh grid a
@@ -76414,8 +76497,8 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
point_spacing CHAR 4 T even
@@ -76430,8 +76513,8 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
point_spacing CHAR 4 T even
@@ -76446,8 +76529,8 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.862 28-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 29 T FERRET V6.93 (beta) 29-Oct-14
+ Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
point_spacing CHAR 4 T even
@@ -76472,275 +76555,2354 @@ set axis/name=.fr x_in_meters
set mode/last ignore
+! *********** v6.9+ Additions ***********
+GO bn_reset
+cancel mode verify
+GO bn691_bug_fixes
+! bn691_bug_fixes
+! test various fixes that went into version 6.91
+! 04/2014 ACM
-! *********** Always do a bn_reset ***********
-! *********** make sure things clean up well **
GO bn_reset
cancel mode verify
+GO err69_arg_type_error
+! err69_arg_type_error
+! See ticket 2169
+!
+set mode ignore
+sh func tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ A: time steps to convert
+ B: variable with reference time axis
+ C: output precision (STRING)
+sh func /detail tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ Axes of result:
+ X: inherited from argument(s)
+ Y: inherited from argument(s)
+ Z: inherited from argument(s)
+ T: inherited from argument(s)
+ E: inherited from argument(s)
+ F: inherited from argument(s)
+ A: time steps to convert (FLOAT)
+ Influence on output axes:
+ X: passed to result grid
+ Y: passed to result grid
+ Z: passed to result grid
+ T: passed to result grid
+ E: passed to result grid
+ F: passed to result grid
+ B: variable with reference time axis (FLOAT)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+ C: output precision (STRING)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
-! version 2.3 requires exit/command *sh* 3/92
-exit/command
-yes? ! bn_all_ef_shell.jnl
-yes? ! 5/05 *acm*
-yes? ! run bn_all_ef tests
-yes?
-yes? GO bn_all_ef
- NOAA/PMEL TMAP
- FERRET v6.862
- Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 03/28/14
- 28-Mar-14 11:42
-
-SET MODE VERIFY
-! bn_all_ef.jnl
-! - run all the benchmark tests for externally-linked external functions.
+define axis/t=1-jan-2000:31-jan-2000:1/units=days my_tax
+let tt = t[gt=my_tax]
+
+! Intentional errors
+list tax_datestring (tt[L=3], tt, 5)
+list tax_datestring (tt[L=3], tt, "minutes")
+ VARIABLE : TAX_DATESTRING (TT[L=3], TT, "minutes")
+ TIME : 03-JAN-2000 00:00
+ "03-JAN-2000 00:00"
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+
+set mode /last ignore
GO bn_reset
cancel mode verify
-GO bn_ef_external_functions.jnl
-! Tests of external functions that are distributed as shared object files.
+GO err69_bad_bounds
+! err69_bad_bounds.jnl
+! See ticket 2170
-! Jon's benchmarks
-go bench_examples
-set mode ignore_error
-show func/ext add_9
-ADD_9(A,B,C,D,E,F,G,H,I)
- (demonstration function) adds 9 arguments
-show func/ext ave*
-AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
- Compute average of a variable in each cell of output time axis
- TPTS: T coordinates of scattered input time coordinates
- VPTS: Variable at times in TPTS
- TAXIS: Output time axis
-AVET(A)
- (demonstration function) returns the time average
- A: data to be averaged over the time axis
-show func pass_thru
-PASS_THRU(A)
- (demonstration function) sets result equal to input
- A: this arg is passed through
-show func sto*
-STORAGE(A)
- sets result equal to input/10
- A: input
+set mode ignore
-go bench_add_9
-! Bench_add_9.jnl
-! ACM 8/99
-! benchmark script for testing external function add_9.
-! Note: bench_add_9_visual contains plots of similar computations
+! time axis has a point_spacing=even attribute
+! and an invalid set of bounds.
+! caused Ferret to mis-read the time axis
+use badbounds_even.nc
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same time axis but with a different error in the bounds
+! also has a point-spacing=even attribute
+! caused Ferret to mis-read the time axis
+use badbounds_non_enclose
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same definition except that the coordinates are irregularly
+! spaced, no point-spacing attribute.
+use badbounds_uneven
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 7.000
+13-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 4.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+sh axis TAX_BB*
+ name axis # pts start end
+ TAX_BB_IRR TIME 6 i 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 31
+ TAX_BB_EVEN_NOENC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
+ TAX_BB_PTSPAC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
-set mode ignore_errors
+set mode/last ignore
+GO bn_reset
+cancel mode verify
+GO err69_const_array
+! err69_const_array.jnl
+! 5/8/2014 ACM
+! See ticket 2174
+! expressions are not allowed in constant-array definitions.
-can region
-use coads_climatology
-set region/x=151E:179E/y=0
+set mode ignore
-let a1 = sst[d=1,l=1]
-let a2 = sst[d=1,l=2]
-let a3 = sst[d=1,l=3]
+! The code to read constant-array definitions into memory was simply doing
+! a read on each comma-separated portion of the command-line defining it.
+! Need to first determine if the buffer represents a simple constant.
-let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+! These already returned an error as cos(1) can't be read with a Fortran read.
+list {cos(1), sin(0)}
-list a
- VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 263.6
- 153E / 67: 264.5
- 155E / 68: 264.2
- 157E / 69: 261.3
- 159E / 70: 260.9
- 161E / 71: 262.4
- 163E / 72: 264.0
- 165E / 73: 261.1
- 167E / 74: 260.9
- 169E / 75: 261.0
- 171E / 76: 259.3
- 173E / 77: 257.9
- 175E / 78: 257.0
- 177E / 79: 259.1
- 179E / 80: 254.8
-list a - 3 * sst[d=1,l=1:3 at sum]
- VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 16-JAN 06:00
- 1S
- 45
- 151E / 66: 0.0000
- 153E / 67: 0.0000
- 155E / 68: 0.0000
- 157E / 69: 0.0000
- 159E / 70: 0.0000
- 161E / 71: 0.0000
- 163E / 72: 0.0000
- 165E / 73: 0.0000
- 167E / 74: 0.0000
- 169E / 75: 0.0000
- 171E / 76: 0.0000
- 173E / 77: 0.0000
- 175E / 78: 0.0000
- 177E / 79: 0.0000
- 179E / 80: 0.0000
-set mode/last ignore_errors
-go bench_avet
-! Bench_avet.jnl
-! ACM 8/99
-! benchmark script for testing external function avet.
-! Note: bench_avet_visual.jnl contains plots of similar computations
+! Previously the first was read as {0,180} and the second as {0.1,0.2,1}, and
+! the third as {30,2000} !
+! They should be reported as syntax errors
-set mode ignore_errors
+list {0-180, 180}
+list {0.1, 0.2, 1./5.}
+list {5*3+1, 2+3}
+
+! These are ok, and always have been
+list/prec=8 {-0.001, 1.23e-2, -45.e3}
+ VARIABLE : {-0.001, 1.23E-2, -45.E3}
+ SUBSET : 3 points (X)
+ 1 / 1: -0.001
+ 2 / 2: 0.012
+ 3 / 3: -45000.000
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_multi_label_ascii
+! err69_multi_label_ascii.jnl
+! 5/2014 ACM
+! ticket 2176
+! Multi-line labels and ascii fonts.
+
+plot/vs/nolab {0,1},{0,1}
+
+
+label .05 .96 0 0 .12 "@CR at P4Single Line examples. Ascii font with and without escape for new color:"
+label .05 .9 0 0 .16 "@ASNo_escapes at c002good_1@c003friend_2"
+label .05 .83 0 0 .16 "@ASEscape_new_colors@c002red_1@c003green_2"
+
+
+label .05 .65 0 0 .12 "@CR at P4Multi Line ascii examples:"
+
+label .05 .56 0 0 .12 "@CR at P4without escape"
+label .05 .5 0 0 .16 "@ASNo_escapes<NL>@c002good_1<NL>@c003friend_2"
+
+label .55 .56 0 0 .12 "@CR at P4with escape:"
+label .55 .5 0 0 .16 "@ASEscape_new_colors<NL>@c002red_1<NL>@c003green_2"
+
+! escape just the special characters.
+label .05 .26 0 0 .12 "@CR at P4Settings around underscores:"
+label .05 .2 0 0 .16 "hello at AS_@SRthere<NL>@c002good at AS_@SR1<NL>@c003friend at AS_@SR2"
+
+! escape new pen setting, not the font
+label .55 .26 0 0 .12 "@CR at P4Escape just the color changes:"
+label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ens_badvalue
+! err69_ens_badvalue.jnl
+!
+! Datasets have _FillValue but not missing_value attributes.
+! In this case the missing data info was not correctly handled
+! when defining an ensemble.
+
+use maize_1.nc, maize_2.nc, maize_3.nc
+
+! Note the _FillValue, flag
+sho att maize_yield
+ attributes for dataset: ./maize_3.nc
+ MAIZE_YIELD._FillValue = 9.96921E+36
+ MAIZE_YIELD.long_name = Maize harvest
+ MAIZE_YIELD.units = kgC.m-2.yr-1
+ MAIZE_YIELD.history = From new_ORCH_CORD_MIR_B1_maize
+ensemble ens = 1,2,3
+
+! MAIZE_YIELD[M=@NGD] should have values of 0, 2, and 3.
+list/y=29.25 MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3], MAIZE_YIELD[m=@ngd]
+ LONGITUDE: 8W(-8) to 6W(-6)
+ LATITUDE: 29.25N
+ E: 0.5 to 3.5 (number of valid)
+ Column 1: MAIZE_YIELD[D=maize_1] is Maize harvest (kgC.m-2.yr-1)
+ Column 2: MAIZE_YIELD[D=maize_2] is Maize harvest (kgC.m-2.yr-1)
+ Column 3: MAIZE_YIELD[D=maize_3] is Maize harvest (kgC.m-2.yr-1)
+ Column 4: MAIZE_YIELD[D=ENS,E=@NGD] is Maize harvest (# of points)
+ MAIZE_YIELD MAIZE_YI MAIZE_Y MAIZE_YIELD
+7.75W / 1: .... 0.05247 0.1022 2.000
+7.25W / 2: 0.01818 0.03588 0.0049 3.000
+6.75W / 3: -0.00002 0.02030 -0.0139 3.000
+6.25W / 4: .... .... .... 0.000
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_by_levels
+! err69_ribbon_by_levels.jnl
+! ACM 5/19/2014
+! See ticket 2179
+! colors were not repeating after the first 10.
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_histogram
+! err69_ribbon_histogram.jnl
+! ACM 5/24/2014
+! Histogram levels with ribbon line plots
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,1.9,1.1,1.3,1.1,1.2,2.3,\
+2.4,2.4,2.2,2.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+! linear levels, then histogram levels
+can view; set v left
+ribbon/vs/line/thick/lev=10 xpts,ypts,var
+set v right
+ribbon/vs/line/thick/lev=10h xpts,ypts,var
+
+GO bn_reset
+cancel mode verify
+GO err69_repl_scinot
+! err69_repl_scinot.jnl
+! ticket 2175
+! The returned number had a bunch of trailing spaces
+
+let a = 1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (1.E-10)
+(1.E-10)
+
+let a = -1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.E-10)
+(-1.E-10)
+
+let a = -1.23e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.23E-10)
+(-1.23E-10)
+
+let a = -1.23e-2
+say (`a`)
+ !-> MESSAGE/CONTINUE (-0.0123)
+(-0.0123)
+
+GO bn_reset
+cancel mode verify
+GO err691_bnds_case
+! err691_bnds_case
+! 6/30/14
+! Ticket 2182 bounds variable incorrectly created with upper-cased axis name
+
+def ax/t tax = {1,2,4,8}
+let tval = t[gt=tax]
+can mode upcase_output
+save/clob/file=tval.nc tval
+
+set mode/last upcase_output
+
+GO bn_reset
+cancel mode verify
+GO err69_plot_vs_labs
+! err69_plot_vs_labs.jnl
+! ticket 2187: the axis labels on the dependent axis
+! for PLOT/VS is wrong. LABX and LABY contain the labels used.
-can region
use coads_climatology
-set region/x=151E:179E/y=0
-let a = avet(sst)
-list a
- VARIABLE : AVET(SST)
- FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- 1S
- 45
- 151E / 66: 29.28
- 153E / 67: 29.39
- 155E / 68: 29.35
- 157E / 69: 29.03
- 159E / 70: 28.99
- 161E / 71: 29.15
- 163E / 72: 29.33
- 165E / 73: 29.01
- 167E / 74: 28.99
- 169E / 75: 29.00
- 171E / 76: 28.81
- 173E / 77: 28.66
- 175E / 78: 28.56
- 177E / 79: 28.79
- 179E / 80: 28.31
-list a - sst[l=@ave]
- VARIABLE : A - SST[L=@AVE]
- FILENAME : coads_climatology.cdf
- SUBSET : 15 points (LONGITUDE)
- LATITUDE : 1S
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 1S
- 45
- 151E / 66: 0.000E+00
- 153E / 67: -3.553E-15
- 155E / 68: 0.000E+00
- 157E / 69: 0.000E+00
- 159E / 70: 3.553E-15
- 161E / 71: 7.105E-15
- 163E / 72: 3.553E-15
- 165E / 73: 0.000E+00
- 167E / 74: 0.000E+00
- 169E / 75: 3.553E-15
- 171E / 76: 0.000E+00
- 173E / 77: 3.553E-15
- 175E / 78: 0.000E+00
- 177E / 79: 3.553E-15
- 179E / 80: 3.553E-15
+let a = sst[L=1]
+let b = a[x=180e:100w at ave]
+let c = a[x=150w:90w at ave]
+let d = a[x=150w:90w at ave]
+set v left; plot/vs b,c; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+set v right; plot/vs c,b; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
-can region
-let a = x[i=1:9,k=1:5] + t[l=1:5]
-let b = x[i=1:9,k=1:5]
-let c = avet(a)
-list b, c
- X: 0.5 to 9.5
- Column 1: B is X[I=1:9,K=1:5]
- Column 2: C is AVET(A)
- B C
-1 / 1: 1.000 4.00
-2 / 2: 2.000 5.00
-3 / 3: 3.000 6.00
-4 / 4: 4.000 7.00
-5 / 5: 5.000 8.00
-6 / 6: 6.000 9.00
-7 / 7: 7.000 10.00
-8 / 8: 8.000 11.00
-9 / 9: 9.000 12.00
+can view
+plot/vs/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
-set mode/last ignore_errors
-go bench_pass_thru
-! Bench_pass_thru.jnl
-! ACM 8/99
-! benchmark script for testing external function pass_thru.
-! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+set v left; plot/trans/vs b,c; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+set v right; plot/trans/vs c,b; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
-set mode ignore_errors
+can view
+plot/vs/trans/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+
+GO bn_reset
+cancel mode verify
+GO err69_levels_v
+! err69_levels_v.jnl
+! Ferret ticket 2186, and LAS ticket 1598
+! the data has values in the range 300 to 500,
+! and several values over 100000. The variance-
+! based levels returned useless levels. Changes
+! made to throw out data outside 3 std when
+! computing the mean and std dev for color levels.
+
+use "lev_v_bug.nc"
+shade/lev=v var2d
+
+! previously the computed levels spanned -8000 to 16000.
+sh sym *lev*
+LEV_TEXT = "V"
+LEV_HISTO_LEVELS = "1.1,1.2,1.6,1.9,2.4,2.5,3.8,5.4,10.2,13.6,14.9"
+LEV_MIN = "-1.E+34"
+LEV_NUM = "52"
+LEV_DEL = "2.0000E+32"
+LEV_MAX = "4.0000E+32"
-can region
-let a = pass_thru(x)
-list a[i=1:20]
- VARIABLE : PASS_THRU(X)
- SUBSET : 20 points (X)
- 1 / 1: 1.00
- 2 / 2: 2.00
- 3 / 3: 3.00
- 4 / 4: 4.00
- 5 / 5: 5.00
- 6 / 6: 6.00
- 7 / 7: 7.00
- 8 / 8: 8.00
- 9 / 9: 9.00
- 10 / 10: 10.00
- 11 / 11: 11.00
- 12 / 12: 12.00
- 13 / 13: 13.00
- 14 / 14: 14.00
- 15 / 15: 15.00
- 16 / 16: 16.00
- 17 / 17: 17.00
- 18 / 18: 18.00
- 19 / 19: 19.00
- 20 / 20: 20.00
-set region/i=1:20
-list sin(a)
- VARIABLE : SIN(A)
- SUBSET : 20 points (X)
- 1 / 1: 0.8415
- 2 / 2: 0.9093
- 3 / 3: 0.1411
- 4 / 4: -0.7568
- 5 / 5: -0.9589
- 6 / 6: -0.2794
- 7 / 7: 0.6570
- 8 / 8: 0.9894
- 9 / 9: 0.4121
- 10 / 10: -0.5440
- 11 / 11: -1.0000
- 12 / 12: -0.5366
- 13 / 13: 0.4202
- 14 / 14: 0.9906
- 15 / 15: 0.6503
- 16 / 16: -0.2879
- 17 / 17: -0.9614
- 18 / 18: -0.7510
- 19 / 19: 0.1499
- 20 / 20: 0.9129
-can var/all
-can region
+
+GO bn_reset
+cancel mode verify
+GO err69_letd_dsetnum
+! err69_letd_dsetnum.jnl
+! Ticket 2189. Previously the grave-accent expression didn't get
+! translated, and the let command failed.
use coads_climatology
-let a = pass_thru(sst[l=@ave,y=@sbx:11])
-list/x=50 a
- VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
- FILENAME : coads_climatology.cdf
- SUBSET : 90 points (LATITUDE)
- LONGITUDE: 49E
- TIME : 01-JAN 00:45 to 01-APR 08:12
- 49E
- 15
- 89N / 90: ....
- 87N / 89: ....
- 85N / 88: ....
- 83N / 87: ....
+let/d=`sst,r=dsetnum` a = 1
+ !-> DEFINE VARIABLE/d=1 a = 1
+sh dat
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+ ------------------------------
+ A[D=coads_climatology] = 1
+
+
+GO bn_reset
+cancel mode verify
+GO err69_long_string_to_xml
+! err69_long_string_to_xml.jnl
+! ticket 2190 8-8-2014
+! previously the string was cut off at 512 characters. For this example
+! it was in the middle of the code AAAAAAAAAAAA
+!
+
+list/clobber/file="out.xml"/nohead/norow 1
+LET longstring = "Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC2004 [...]
+LET status = list_value_xml ("mytag", longstring, 1, "out.xml")
+LOAD status
+
+sp cat out.xml
+ 1.000
+<mytag><![CDATA[Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC200406 [...]
+
+GO bn_reset
+cancel mode verify
+GO err69_fill_trans
+! err69_fill_trans.jnl
+! ticket 2196. Visible only if bounds-checking is turned on.
+! 9/22/2014
+
+DEFINE AXIS/x=1:15:1 xaxis
+let var = {1,2,3,,,,,,,4,,5,6,7,8}
+LET myvar = var[gx=xaxis at asn]
+
+list myvar
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ SUBSET : 15 points (X)
+ 1 / 1: 1.000
+ 2 / 2: 2.000
+ 3 / 3: 3.000
+ 4 / 4: ....
+ 5 / 5: ....
+ 6 / 6: ....
+ 7 / 7: ....
+ 8 / 8: ....
+ 9 / 9: ....
+ 10 / 10: 4.000
+ 11 / 11: ....
+ 12 / 12: 5.000
+ 13 / 13: 6.000
+ 14 / 14: 7.000
+ 15 / 15: 8.000
+list myvar[x=6 at fnr:2]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 2 pts)
+ ....
+
+! This caused attempt to load variable at index i = -4
+list myvar[x=6 at fnr:10]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 10 pts)
+ 3.000
+
+! Likewise the way @FAV is computed, this caused Ferret
+! to try to get data at i=-3
+list myvar[x=6 at fav:18]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (ave-filled by 18 pts)
+ 4.500
+
+
+GO bn_reset
+cancel mode verify
+GO err69_load_big_grid
+! err69_load_big_grid
+! ticket 1758
+! error about "a negative number of words requested... grid too large"
+! in fact all large grids misreports size. Now computations are done
+! in real numbers and in block not word sizes.
+
+set mode ignore
+
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+
+! this gave the error about "a negative number of words requested... grid too large"
+define axis/t=1-jan-2000:1-jan-2005:1/units=days longtime
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+ GRID (G085)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 1828 r 01-JAN-2000 00:00 01-JAN-2005 00:00
+ normal E
+ normal F
+load bigvar
+
+! also was an incorrect size.
+define axis/t=1-jan-2000:1-jan-2010:1/units=days longtime
+sh grid bigvar
+ GRID (G085)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 3654 r 01-JAN-2000 00:00 01-JAN-2010 00:00
+ normal E
+ normal F
+load bigvar
+
+cancel mode ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_write_attribute
+! err69_write_attribute.jnl
+! Bug 1863
+
+use gt4d011.cdf
+sh grid temp
+ GRID PS3DT21
+ name axis # pts start end
+ PSXT1 LONGITUDE 160mr 130.5E 70.5W
+ PSYT1 LATITUDE 100 i 28.836S 48.568N
+ PSZT2 DEPTH (m) 27 i- 5 3824
+ TIME16 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
+ normal E
+ normal F
+let a = temp[x=@ave,y=@ave,L=1]
+
+! The attribute we ask not to write is not written for this variable
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (PSZT2).point_spacing
+save/q/clob/file="a.nc"/bounds a
+sp ncdump -h a.nc | grep -i "`a,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT2"
+ PSZT21_10 = 10 ;
+ double PSZT21_10(PSZT21_10) ;
+ PSZT21_10:units = "meters" ;
+ PSZT21_10:positive = "down" ;
+ PSZT21_10:standard_name = "depth" ;
+ PSZT21_10:bounds = "PSZT21_10_bnds" ;
+ double PSZT21_10_bnds(PSZT21_10, bnds) ;
+ double A(TIME16, PSZT21_10) ;
+
+! But it was being written for this one. It should not.
+let b = temp[x=@ave,y=@ave,L=1,d=1]
+save/q/clob/file="a.nc"/bounds b
+sp ncdump -h a.nc | grep -i "`b,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT2"
+ PSZT21_10 = 10 ;
+ double PSZT21_10(PSZT21_10) ;
+ PSZT21_10:units = "meters" ;
+ PSZT21_10:positive = "down" ;
+ PSZT21_10:standard_name = "depth" ;
+ PSZT21_10:bounds = "PSZT21_10_bnds" ;
+ double PSZT21_10_bnds(PSZT21_10, bnds) ;
+ double B(TIME16, PSZT21_10) ;
+
+! A variable that depends on more than one dataset.
+use coads_climatology
+let c = temp[x=@ave,y=@ave,L=1,d=1] + sst[x=@ave,y=@ave,t=@ave,d=2]
+save/q/clob/file="a.nc"/bounds c
+sp ncdump -h a.nc | grep -i "`c,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT2"
+ PSZT21_10 = 10 ;
+ double PSZT21_10(PSZT21_10) ;
+ PSZT21_10:units = "meters" ;
+ PSZT21_10:positive = "down" ;
+ PSZT21_10:standard_name = "depth" ;
+ PSZT21_10:bounds = "PSZT21_10_bnds" ;
+ double PSZT21_10_bnds(PSZT21_10, bnds) ;
+ double C(PSZT21_10) ;
+
+can data/all
+can var/all
+
+! When there are two datasets with the same axis name but different depths,
+! the second axis name is changed internally.
+
+DEFINE AXIS/z/depth zzdep = {0,10,20,30,50,75,100,150,200,300,400,600,800,1000,1200,1500,2000,3000,4000,5000}
+
+LET temp = z[gz=zzdep]
+save/clobber/file=aa.nc temp
+save/clobber/keep/file=bb.nc temp[k=1:15]
+can var/all
+can axis zzdep
+
+use aa
+use bb
+set data 1
+
+show att (`temp,r=zaxis`)
+ !-> show att (ZZDEP)
+ attributes for dataset: ./aa.nc
+ (ZZDEP).point_spacing = uneven
+ (ZZDEP).axis = Z
+ (ZZDEP).bounds = ZZDEP_bnds
+ (ZZDEP).positive = down
+ (ZZDEP).standard_name = depth
+ (ZZDEP).orig_file_axname = ZZDEP
+
+let a = temp[d=1,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+set data 2
+let a = temp[d=2,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP1).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP1
+ ZZDEP1 = 15 ;
+ double ZZDEP1(ZZDEP1) ;
+ ZZDEP1:axis = "Z" ;
+ ZZDEP1:bounds = "ZZDEP1_bnds" ;
+ ZZDEP1:positive = "down" ;
+ ZZDEP1:standard_name = "depth" ;
+ double ZZDEP1_bnds(ZZDEP1, bnds) ;
+ double A(ZZDEP1) ;
+
+let a = temp[d=2,gz=temp[d=1]]
+
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+sp rm aa.nc bb.nc
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_countervar_context
+! err69_countervar_context.jnl
+! ACM 10/3/2014
+! Ticket 2200. Context from SET REGION should not
+! apply in named-repeat loop. The loop would run,
+! but returned values of 0.
+
+let a = b
+set region/i=20:30
+repeat/name=b/range=1:3 (say `a`)
+!-> REPEAT: B:1
+ !-> MESSAGE/CONTINUE 1
+1
+!-> REPEAT: B:2
+ !-> MESSAGE/CONTINUE 2
+2
+!-> REPEAT: B:3
+ !-> MESSAGE/CONTINUE 3
+3
+
+can region
+
+GO bn_reset
+cancel mode verify
+GO err69_label_backspace
+! err69_label_backspace
+! Ticket 2203: \\ before a character backspaces before
+! making the character. This broke in the 64-bit versions.
+
+plot/vs/nolab {0,1},{0,1}
+label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_and_regridding
+! err69_isready_and_regridding.jnl
+! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
+! state after other contexts have been defined
+
+can dat/all
+
+! create & load a file with a Gregorian time axis
+def ax/t/unit=days/t0=1-jan-1979 tax_g = {15,45,75,105,135}
+let a = t[gt=tax_g]
+save/clob/file=a.nc a
+can var a
+can ax tax_g
+use a.nc
+
+! create a variable on a Julian time axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=julian/unit="hour"/t0=1-jan-1900 tax_j
+let b = t[gt=tax_j]
+
+! put the Gregorian data on the Julian axis
+let a2 = a
+let a2_on_b = a2[gt=b]
+
+! create a climatological axis (Julian)
+def ax/t/unit=days/t0=1-jan-0001/modulo=365.25/cal=julian tax_jc = {15.5,45.125,74.75,105.25,135.75,166.25,196.75,227.75,258.25,288.75,319.25,349.75}
+
+let b_one = missing(1+0*b,1) !set everything to 1
+let nyr = b_one[gl=tax_jc at modsum] !# years that include each month
+
+! Execute some commands which put things into context storage
+
+say `a2_on_b,r=title`
+ !-> MESSAGE/CONTINUE A2[GT=B]
+A2[GT=B]
+say `nyr[l=1]`
+ !-> MESSAGE/CONTINUE 23
+23
+
+! This got us into a weird hanged state
+IF `a2_on_b,r=isready` THEN
+ !-> IF 1 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_and_uvar_regrid
+! err69_vtree_and_uvar_regrid.jnl
+! Ticket 2206: This lead to a crash.
+! 10/9/2014
+
+let a = t[gt=1:2:1]
+let b2 = a
+let c = b2[gt=a]
+GO bn_vtree.sub c
+/TREE=ALL
+ C = B2[GT=A]
+ B2 = A
+ A = T[GT=1:2:1]
+/TREE=USER
+ C = B2[GT=A]
+ B2 = A
+ A = T[GT=1:2:1]
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_cancel_axis
+! err69_vtree_cancel_axis
+! Ticket 2201: After a return=isready,
+! cannot cancel the axis used by the var
+! 10-Oct-2014
+
+define axis/x=0:360:1 xax1
+define axis/x=0:360:10 xax2
+
+let a = x[gx=xax1]
+say `a,return=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX1]
+X[GX=XAX1]
+
+let b = a[gx=xax2]
+say `b,return=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+cancel var a b
+cancel axis xax1
+cancel axis xax2
+
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_bugs
+! err69_isready_bugs.jnl
+! Tickets 2201 and 2215
+
+! ticket 2201: isready operation meant we couldn't cancel the second axis
+
+def ax/x=0:360:1 xax_isready_1
+def ax/x=0:360:10 xax_isready_2
+let a = x[gx=xax_isready_1]
+say `a,r=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX_ISREADY_1]
+X[GX=XAX_ISREADY_1]
+let b = a[gx=xax_isready_2]
+load b
+say `b,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+
+can var a
+can axis xax_isready_1
+can var b
+can axis xax_isready_2
+
+! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
+
+let a = x[gx=1:3:1]
+let b = a - a[gx=a]
+let c = 1
+let/unit="m" f = b*c
+say `f,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+say `f,r=unit`
+ !-> MESSAGE/CONTINUE m
+m
+
+GO bn_reset
+cancel mode verify
+GO bn_append_dsg
+! bn_append_dsg.jnl
+!From SOCAT 3: appending to a dsg file where the new variable is on the obs
+! dimension. THe file has no coordinate variable, and we want to keep it that way.
+! Ferret needs to detect the dimension-only axis and keep it as-is. Do not upcase,
+! do not write a coordinate variable.
+!
+! Contains the metadata variables, global attributes, and incoming variables.
+! Where we recompute some of the incoming variables and append them to the file,
+! the values in the file are replaced.
+!
+! Argument is a file name; the single-cruise dsg file from the data entry
+!
+! We append more variables to the file, using the same obs dimension.
+
+sp rm test_save_dsg.nc
+sp cp test_save_dsg_in.nc test_save_dsg.nc
+
+use test_save_dsg.nc
+
+! Lon in 0-360
+let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
+define attribute/output lon360.ioos_category = "Location"
+define attribute/output lon360.standard_name = "Longitude"
+define attribute/output lon360.history = "added to test_save_dsg.nc"
+
+save/quiet/append/file=test_save_dsg.nc lon360
+
+! The longitude and lon360 variables should have the same lowercase (obs) dimension.
+
+sp ncdump -h test_save_dsg.nc
+netcdf test_save_dsg {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :History = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "CF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+}
+
+GO bn_reset
+cancel mode verify
+GO bn_global_atts
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.91 (beta)
+ ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
+ ! 7-Apr-14 16:41
+
+sp cp 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
+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
+netcdf global {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventions" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+sp ncdump -h global_copy.nc
+netcdf global_copy {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0FERRET V6.93 (beta) 29-Oct-14" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventionsCF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+
+! This dataset has global attributes history and Conventions that include
+! a Ferret version and CF version that Ferret will replace.
+
+sp ncgen -o anew_global.nc anew_global.cdl
+use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.71 9-May-14
+ ..Conventions = Existing conventions note, CF-1.0
+let var = 8
+save/append/file=anew_global.nc var
+can dat/all; use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.93 (beta) 29-Oct-14
+ ..Conventions = Existing conventions note, , CF-1.6
+
+
+
+
+GO bn_reset
+cancel mode verify
+GO bn_conventions_history
+! bn_conventions_history.jnl
+! ticket 2169:
+! Write conventions CF-1.6
+! When appending to the Conventions and history
+! attribute, add the new stuff with a comma and newline.
+
+sp cp conventions_history_in.nc conventions_history.nc
+use conventions_history
+!
+! The existing global attributes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the file
+ ..Conventions = Conventions for variables named V2
+!
+! Write to the file
+let v3 = v1+v2
+save/append/file=conventions_history.nc v3
+can dat/all; use conventions_history
+!
+! The new attibutes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the fileFERRET V6.93 (beta) 29-Oct-14
+ ..Conventions = Conventions for variables named V2CF-1.6
+
+GO bn_reset
+cancel mode verify
+GO bn_center_key_labels
+! bn_center_key_labels
+! 6/2014
+!
+! Arguments to /KEY qualifier on color plots
+! /CENTERLABEL for label between lines on colorbar
+! /HORIZONTAL for horizontal key
+
+use levitus_climatology.cdf
+shade/lev=10/key=cent,horiz temp
+fill/lev=10v/key=cent temp
+
+! Ribbon plots and all three keywords: centerlab, horizontal, continuous
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key=center,horiz,cont xpts,ypts,var
+
+! Automatically restore non-continuous key, non-center, vertical
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key xpts,ypts,var
+
+! Polygons: the polymark script needs multiple key qualifiers to be in quotes.
+use coads_climatology
+def axis/x=0:360:5 xq
+def axis/y=-90:90:4 yq
+let fsst = sst[l=1,gx=xq,gy=yq]
+
+let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
+let lat = xsequence(0*x[gx=xq] + y[gy=yq])
+shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst ! set up
+
+go polymark poly/key="horiz,center"/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
+
+can data coads_climatology
+
+! Automatically restore regular handling of levels
+shade temp
+
+
+GO bn_reset
+cancel mode verify
+GO bn_wgt_transform
+! bn_wgt_transform.jnl test new @WGT transform,
+! returns weights used in the equiv. average or integral transform
+! ACM 7/2014
+
+! Define an XYT grid
+
+def axis/x=2:360:2/units=degrees_east x2
+def axis/y=-89:89:2/units=degrees_north y2
+let var = x[gx=x2] + y[gy=y2] + t[gt=month_irreg]
+let weights= var[x=@wgt,y=@wgt,t=@wgt]
+
+! Varies in y with latitude correction
+shade/l=1 weights
+
+! Sum of xy transform is the surface area of the earth, meters
+let weights= var[x=@wgt,y=@wgt]
+list/l=1 weights[i=@sum,j=@sum]
+ VARIABLE : VAR[X=@WGT,Y=@WGT]
+ LONGITUDE: 1E to 1E(361) (XY summed)
+ LATITUDE : 90S to 90N (XY summed)
+ TIME : 16-JAN 12:00
+ 5.101E+14
+
+! Varies in T because of irregular t axis
+shade/x=1 weights
+
+
+! The result t=@WGT returned in seconds
+let mywt = var[t=@wgt]
+
+let secperday = 24*3600
+list/x=1/y=1 mywt, mywt/secperday
+ TIME: 01-JAN 00:00 to 31-DEC 05:49
+ LONGITUDE: 1E (interpolated)
+ LATITUDE: 1N
+ Column 1: MYWT is VAR[T=@WGT]
+ Column 2: EX#2 is MYWT/SECPERDAY
+ MYWT EX#2
+16-JAN 12 / 1: 2678400. 31.00
+15-FEB 02 / 2: 2440152. 28.24
+15-MAR 17 / 3: 2678400. 31.00
+15-APR 05 / 4: 2592000. 30.00
+15-MAY 17 / 5: 2678400. 31.00
+15-JUN 05 / 6: 2592000. 30.00
+15-JUL 17 / 7: 2678400. 31.00
+15-AUG 17 / 8: 2678400. 31.00
+15-SEP 05 / 9: 2592000. 30.00
+15-OCT 17 / 10: 2678400. 31.00
+15-NOV 05 / 11: 2592000. 30.00
+15-DEC 17 / 12: 2678400. 31.00
+
+! Test reusing results. (ticket 2183)
+use gt4d011.cdf
+! The last value is a partial grid cell
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130W (interpolated)
+ LATITUDE : 1.5N (interpolated)
+ TIME : 01-SEP-1982 00:00 (interpolated)
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+
+! Now load the result over a larger region
+list/y=1.5/x=130w/z=0:82/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 9 points (DEPTH (m))
+ LONGITUDE: 130W (interpolated)
+ LATITUDE : 1.5N (interpolated)
+ TIME : 01-SEP-1982 00:00 (interpolated)
+ 5 / 1: 10.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 10.00
+ 55 / 6: 10.00
+ 65 / 7: 10.00
+ 75 / 8: 10.00
+ 85 / 9: 2.00
+
+! This finds the previous result in memory - needs to
+! reuse the correct one.
+
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130W (interpolated)
+ LATITUDE : 1.5N (interpolated)
+ TIME : 01-SEP-1982 00:00 (interpolated)
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+
+GO bn_reset
+cancel mode verify
+GO bn_show_outfile
+! bn_show_outfile
+! Adding tests for SHOW/OUTFILE=
+! Previously only tests when SHOW/XML/OUTFILE=
+! Bugs in SHOW/OUTFILE reported in ticket 2194
+! 8/18/2014
+
+! test various combinations of /append and /clobber
+
+!can mode verify
+
+! show axis/outfile
+
+
+sho ax/clobber/outfile=a.txt month_irreg
+sho ax/clobber/outfile=a.txt month_irreg
+
+SAY ---------------- Just axis month_irreg
+---------------- Just axis month_irreg
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+
+show axis/append/outfile=a.txt PS*
+
+SAY ---------------- appending all axes starting with PS
+---------------- appending all axes starting with PS
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ name axis # pts start end
+ PSXT LONGITUDE 160mr 130.5E 70.5W
+ Axis span (to cell edges) = 160 (modulo length = axis span)
+ PSXU LONGITUDE 160mr 131E 70W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYT Y (seconds) 100 i -28.836 48.568
+ Axis span (to cell edges) = 80.00004
+ PSYU LATITUDE 100 i 27.672S 50N
+ Axis span (to cell edges) = 80.2682
+ PSZT Z (zorro) 27 i- 5 3824
+ Axis span (to cell edges) = 4149
+ PSZW DEPTH (m) 27 i- 10 4149
+ Axis span (to cell edges) = 4144
+ PSYT5_89 LATITUDE 85 i 20.151S 21.613N
+ Axis span (to cell edges) = 43.60417
+ PSZT1_2 DEPTH (m) 2 r- 5 15
+ Axis span (to cell edges) = 20
+ PSZT2 DEPTH (m) 27 i- 5 3824
+ Axis span (to cell edges) = 4149
+ PSXT1 LONGITUDE 160mr 130.5E 70.5W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYT1 LATITUDE 100 i 28.836S 48.568N
+ Axis span (to cell edges) = 80.00004
+ PSZT1 Z (METERS) 27 i 5 3824
+ Axis span (to cell edges) = 4149
+
+! show grid/outfile
+
+use coads_climatology
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just the grid of sst
+---------------- Just the grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+! show var/outfile
+
+use coads_climatology
+let two = 2
+let myvar = sst*2
+show var/clobber/outfile=a.txt myvar, two
+
+SAY ---------------- show var output from two user vars
+---------------- show var output from two user vars
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+cancel var/all
+
+! show data/outfile
+
+show data/append/outfile=a.txt
+
+SAY ---------------- appending show data
+---------------- appending show data
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+! combinations of /append and /clobber
+
+show data/clobber/outfile=a.txt
+show data/clobber/outfile=a.txt
+
+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)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just grid of sst
+---------------- Just grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+use coads_climatology
+use levitus_climatology
+
+show data/clobber/outfile=a.txt 1
+
+SAY ---------------- Just dataset 1
+---------------- Just dataset 1
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show data/append/outfile=a.txt levitus_climatology
+
+SAY ---------------- appending datset 2 by name
+---------------- appending datset 2 by name
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+ currently SET data sets:
+ 2> ./levitus_climatology.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 1:160 1:90 1:1 ... ... ...
+
+show grid/clobber/outfile=a.txt PS3*
+
+SAY ---------------- only showing all grids starting with PS3
+---------------- only showing all grids starting with PS3
+sp cat a.txt
+ PS3DT
+ PS3DU
+ PS3DW
+ PS3DT2
+
+SAY ---------------- tests sending output of vtree to a file
+---------------- tests sending output of vtree to a file
+GO bn_vtree_outfile
+! bn_tree_outfile.jnl
+
+! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+
+CANCEL DATA/ALL
+! pure abstract variable -- no dataset
+let a = 1
+
+!
+show var/tree/outfile=a.txt/clobber a
+show var/tree/outfile=a.txt/clobber a
+sp cat a.txt
+ A = 1
+
+let b = 1
+let c = SIN(b)
+show var/tree/outfile=a.txt/clobber c
+sp cat a.txt
+ C = SIN(B)
+ B = 1
+
+! create dummy datasets so we'll have named file variables to play with
+let fv1 = 1
+let fvx = x[i=1:3]
+let fvz = Z[k=1:3]
+SAVE/CLOBBER/QUIET/FILE=my_file_vars.nc fv1, fvx, fvz
+SAVE/CLOBBER/QUIET/FILE=other_file_vars.nc fv1
+SAVE/CLOBBER/QUIET/FILE=another_file_vars.nc fv1
+CAN VAR/ALL
+use my_file_vars, other_file_vars, another_file_vars
+set data 1
+
+! ================
+
+! more pure abstract variables
+let a = 1
+let b = 1
+let c = SIN(b)
+go bn_vtree_outfile.sub c
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1
+ FV1[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+a is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1
+ FVX
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset other_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1
+********************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: V[D=NOEXIST]
+************************
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
+************************
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+RESHAPE(fvx,fvz) is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FVX
+ FVZ
+ FVX[d=my_file_vars]
+ FVZ[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ NOEXIST (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ FV1[d=another_file_var]
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fvx is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=my_file_var]
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_var]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_var]
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+
+ FVX[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ILLEGAL RECURSIVE VARIABLES: P1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S3 (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: S1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S1 (unknown variable)
+ S3 (unknown variable)
+ in default dataset my_file_vars
+ FV = FV1 + FV1 + FV1
+ in default dataset MY_UVAR_AGG
+ FV = FV1 + FV1 + FV1
+ FV1 (aggregate variable)
+ in default dataset other_file_vars
+ UV = FVX + FVX + FVX
+ FVX = FV1 + X[GX=FVX[D=1],I=1:3]
+ in default dataset MY_UVAR_AGG
+ UV = FVX + FVX + FVX
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+***************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v2 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v3 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: F
+************************
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ FV1[d=my_file_var]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ FVX[d=my_file_var]
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ F (unknown variable)
+ FV1[d=my_file_vars]
+ NOEXIST (unknown variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN GRID: A[G=NOEXIST]
+************************
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ A[G=NOEXIST] (unknown grid)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[X=45S]
+************************
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ A[X=45S] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
+************************
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[P=1]
+************************
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ A[P=1] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+f is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ A = FVZ.LONG_NAME[D=1]
+ in default dataset MY_UVAR_AGG
+ A = ..HISTORY[D=1]
+
+
+
+GO bn_reset
+cancel mode verify
+GO bn_date1900_array
+! bn_date1900_array.jnl
+! Let date1900 accept an array of date strings, returning a list
+! of coordinate values, days since 1-jan-1900.
+
+
+sh func/details date1900
+DATE1900(formatted date)
+ Convert date strings into Julian days since 1-Jan-1900
+ Axes of result:
+ X: inherited from argument(s)
+ Y: NORMAL (no axis)
+ Z: NORMAL (no axis)
+ T: NORMAL (no axis)
+ E: NORMAL (no axis)
+ F: NORMAL (no axis)
+ formatted date: dd-MMM-yy or dd-MMM-yyyy (e.g. "20-Dec-00") (none) (STRING)
+ Influence on output axes:
+ X: passed to result grid
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+! Function always worked just on one date string.
+list date1900("01-jan-2001")
+ VARIABLE : DATE1900("01-jan-2001")
+ 36890.
+
+
+! Now the argument can be an array
+let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
+list date1900(datestrings)
+ VARIABLE : DATE1900(DATESTRINGS)
+ SUBSET : 3 points (X)
+ 1 / 1: 36890.
+ 2 / 2: 36891.
+ 3 / 3: 37465.
+
+def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
+list t[gt=taxis]
+ VARIABLE : T
+ axis TAXIS
+ SUBSET : 3 points (TIME)
+ 01-JAN-2001 00 / 1: 36890.
+ 02-JAN-2001 00 / 2: 36891.
+ 30-JUL-2002 00 / 3: 37465.
+
+
+GO bn_reset
+cancel mode verify
+GO bn_spawn_size
+! bn_spawn_size.jnl
+! Return the size of the result of a spawn, not
+! the nominalabstract axis length.
+
+! ticket 981
+
+let files = {spawn:"ls *cdf*.jnl"}
+list files
+ VARIABLE : {SPAWN:"ls *cdf*.jnl"}
+ SUBSET : 8 points (X)
+ 1 / 1:"bn_cdf_errmsg.jnl"
+ 2 / 2:"bn_cdf.jnl"
+ 3 / 3:"bn_cdf_keepax.jnl"
+ 4 / 4:"bn_netcdf4.jnl"
+ 5 / 5:"err490_cdf_childax.jnl"
+ 6 / 6:"err491_cdf_childax.jnl"
+ 7 / 7:"err65_read_epic_cdf.jnl"
+ 8 / 8:"err667_5d_netcdf.jnl"
+say `files,return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+
+! Evaluate size without loading the variable first
+let datfiles = {spawn:"ls *.dat"}
+say `datfiles,return=isize`
+ !-> MESSAGE/CONTINUE 36
+36
+
+! expression syntax
+say `{spawn:"ls xml*.jnl"},return=isize`
+ !-> MESSAGE/CONTINUE 3
+3
+list {spawn:"ls xml*.jnl"}
+ VARIABLE : {SPAWN:"ls xml*.jnl"}
+ SUBSET : 3 points (X)
+ 1 / 1:"xml_header_script.jnl"
+ 2 / 2:"xml_use_coads.jnl"
+ 3 / 3:"xml_use_numstring.jnl"
+
+! Test variables based on output of a spawn.
+! These already worked correctly, has a grid-changing function.
+
+LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+say `filesets, return=isize`
+ !-> MESSAGE/CONTINUE 835
+835
+
+let files = {spawn:"ls *cdf*.jnl"}
+let name_len = strindex(files, ".sub")
+say `name_len, return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+
+GO bn_reset
+cancel mode verify
+GO bn_polygon_log
+! bn_polygon_log.jnl
+! polygon plots on a log axis need tests
+
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let xpts = cos(x/10) + 2
+let ypts = x/10+1
+
+! Polygon plot
+
+set view ul
+polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+
+! Poly/vlog and /hlog
+! (known bug: Whats up with the colorbar labels?)
+set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
+set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
+set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
+
+! These are errors - log of negative values on axis
+
+set mode ignore
+
+let ybad = x/10 - 1
+let xbad = cos(x/10) + 0.8
+
+can view
+polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+
+set mode/last ignore
+
+! *********** Always do a bn_reset ***********
+! *********** make sure things clean up well **
+GO bn_reset
+cancel mode verify
+
+! version 2.3 requires exit/command *sh* 3/92
+exit/command
+yes? ! bn_all_ef_shell.jnl
+yes? ! 5/05 *acm*
+yes? ! run bn_all_ef tests
+yes?
+yes? GO bn_all_ef
+ NOAA/PMEL TMAP
+ FERRET v6.93 (beta)
+ Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
+ 29-Oct-14 16:04
+
+SET MODE VERIFY
+! bn_all_ef.jnl
+! - run all the benchmark tests for externally-linked external functions.
+
+
+GO bn_reset
+cancel mode verify
+GO bn_ef_external_functions.jnl
+! Tests of external functions that are distributed as shared object files.
+
+! Jon's benchmarks
+go bench_examples
+set mode ignore_error
+show func/ext add_9
+ADD_9(A,B,C,D,E,F,G,H,I)
+ (demonstration function) adds 9 arguments
+show func/ext ave*
+AVE_SCAT2GRID_T(TPTS,VPTS,TAXIS)
+ Compute average of a variable in each cell of output time axis
+ TPTS: T coordinates of scattered input time coordinates
+ VPTS: Variable at times in TPTS
+ TAXIS: Output time axis
+AVET(A)
+ (demonstration function) returns the time average
+ A: data to be averaged over the time axis
+show func pass_thru
+PASS_THRU(A)
+ (demonstration function) sets result equal to input
+ A: this arg is passed through
+show func sto*
+STORAGE(A)
+ sets result equal to input/10
+ A: input
+
+go bench_add_9
+! Bench_add_9.jnl
+! ACM 8/99
+! benchmark script for testing external function add_9.
+! Note: bench_add_9_visual contains plots of similar computations
+
+set mode ignore_errors
+
+
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+
+let a1 = sst[d=1,l=1]
+let a2 = sst[d=1,l=2]
+let a3 = sst[d=1,l=3]
+
+let a = add_9(a1,a2,a3,a1,a2,a3,a1,a2,a3)
+
+list a
+ VARIABLE : ADD_9(A1,A2,A3,A1,A2,A3,A1,A2,A3)
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 16-JAN 06:00
+ 1S
+ 45
+ 151E / 66: 263.6
+ 153E / 67: 264.5
+ 155E / 68: 264.2
+ 157E / 69: 261.3
+ 159E / 70: 260.9
+ 161E / 71: 262.4
+ 163E / 72: 264.0
+ 165E / 73: 261.1
+ 167E / 74: 260.9
+ 169E / 75: 261.0
+ 171E / 76: 259.3
+ 173E / 77: 257.9
+ 175E / 78: 257.0
+ 177E / 79: 259.1
+ 179E / 80: 254.8
+list a - 3 * sst[d=1,l=1:3 at sum]
+ VARIABLE : A - 3 * SST[D=coads_climatology,L=1:3 at SUM]
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 16-JAN 06:00
+ 1S
+ 45
+ 151E / 66: 0.0000
+ 153E / 67: 0.0000
+ 155E / 68: 0.0000
+ 157E / 69: 0.0000
+ 159E / 70: 0.0000
+ 161E / 71: 0.0000
+ 163E / 72: 0.0000
+ 165E / 73: 0.0000
+ 167E / 74: 0.0000
+ 169E / 75: 0.0000
+ 171E / 76: 0.0000
+ 173E / 77: 0.0000
+ 175E / 78: 0.0000
+ 177E / 79: 0.0000
+ 179E / 80: 0.0000
+set mode/last ignore_errors
+go bench_avet
+! Bench_avet.jnl
+! ACM 8/99
+! benchmark script for testing external function avet.
+! Note: bench_avet_visual.jnl contains plots of similar computations
+
+set mode ignore_errors
+
+can region
+use coads_climatology
+set region/x=151E:179E/y=0
+
+let a = avet(sst)
+list a
+ VARIABLE : AVET(SST)
+ FILENAME : coads_climatology.cdf
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ 1S
+ 45
+ 151E / 66: 29.28
+ 153E / 67: 29.39
+ 155E / 68: 29.35
+ 157E / 69: 29.03
+ 159E / 70: 28.99
+ 161E / 71: 29.15
+ 163E / 72: 29.33
+ 165E / 73: 29.01
+ 167E / 74: 28.99
+ 169E / 75: 29.00
+ 171E / 76: 28.81
+ 173E / 77: 28.66
+ 175E / 78: 28.56
+ 177E / 79: 28.79
+ 179E / 80: 28.31
+list a - sst[l=@ave]
+ VARIABLE : A - SST[L=@AVE]
+ FILENAME : coads_climatology.cdf
+ SUBSET : 15 points (LONGITUDE)
+ LATITUDE : 1S
+ TIME : 01-JAN 00:45 to 01-APR 08:12
+ 1S
+ 45
+ 151E / 66: 0.000E+00
+ 153E / 67: -3.553E-15
+ 155E / 68: 0.000E+00
+ 157E / 69: 0.000E+00
+ 159E / 70: 3.553E-15
+ 161E / 71: 7.105E-15
+ 163E / 72: 3.553E-15
+ 165E / 73: 0.000E+00
+ 167E / 74: 0.000E+00
+ 169E / 75: 3.553E-15
+ 171E / 76: 0.000E+00
+ 173E / 77: 3.553E-15
+ 175E / 78: 0.000E+00
+ 177E / 79: 3.553E-15
+ 179E / 80: 3.553E-15
+
+can region
+let a = x[i=1:9,k=1:5] + t[l=1:5]
+let b = x[i=1:9,k=1:5]
+let c = avet(a)
+list b, c
+ X: 0.5 to 9.5
+ Column 1: B is X[I=1:9,K=1:5]
+ Column 2: C is AVET(A)
+ B C
+1 / 1: 1.000 4.00
+2 / 2: 2.000 5.00
+3 / 3: 3.000 6.00
+4 / 4: 4.000 7.00
+5 / 5: 5.000 8.00
+6 / 6: 6.000 9.00
+7 / 7: 7.000 10.00
+8 / 8: 8.000 11.00
+9 / 9: 9.000 12.00
+
+set mode/last ignore_errors
+go bench_pass_thru
+! Bench_pass_thru.jnl
+! ACM 8/99
+! benchmark script for testing external function pass_thru.
+! Note: bench_pass_thru_visual.jnl contains plots of similar computations
+
+set mode ignore_errors
+
+can region
+let a = pass_thru(x)
+list a[i=1:20]
+ VARIABLE : PASS_THRU(X)
+ SUBSET : 20 points (X)
+ 1 / 1: 1.00
+ 2 / 2: 2.00
+ 3 / 3: 3.00
+ 4 / 4: 4.00
+ 5 / 5: 5.00
+ 6 / 6: 6.00
+ 7 / 7: 7.00
+ 8 / 8: 8.00
+ 9 / 9: 9.00
+ 10 / 10: 10.00
+ 11 / 11: 11.00
+ 12 / 12: 12.00
+ 13 / 13: 13.00
+ 14 / 14: 14.00
+ 15 / 15: 15.00
+ 16 / 16: 16.00
+ 17 / 17: 17.00
+ 18 / 18: 18.00
+ 19 / 19: 19.00
+ 20 / 20: 20.00
+set region/i=1:20
+list sin(a)
+ VARIABLE : SIN(A)
+ SUBSET : 20 points (X)
+ 1 / 1: 0.8415
+ 2 / 2: 0.9093
+ 3 / 3: 0.1411
+ 4 / 4: -0.7568
+ 5 / 5: -0.9589
+ 6 / 6: -0.2794
+ 7 / 7: 0.6570
+ 8 / 8: 0.9894
+ 9 / 9: 0.4121
+ 10 / 10: -0.5440
+ 11 / 11: -1.0000
+ 12 / 12: -0.5366
+ 13 / 13: 0.4202
+ 14 / 14: 0.9906
+ 15 / 15: 0.6503
+ 16 / 16: -0.2879
+ 17 / 17: -0.9614
+ 18 / 18: -0.7510
+ 19 / 19: 0.1499
+ 20 / 20: 0.9129
+can var/all
+can region
+
+use coads_climatology
+let a = pass_thru(sst[l=@ave,y=@sbx:11])
+list/x=50 a
+ VARIABLE : PASS_THRU(SST[L=@AVE,Y=@SBX:11])
+ FILENAME : coads_climatology.cdf
+ SUBSET : 90 points (LATITUDE)
+ LONGITUDE: 49E
+ TIME : 01-JAN 00:45 to 01-APR 08:12
+ 49E
+ 15
+ 89N / 90: ....
+ 87N / 89: ....
+ 85N / 88: ....
+ 83N / 87: ....
81N / 86: ....
79N / 85: ....
77N / 84: ....
@@ -77342,8 +79504,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969 ;
@@ -77367,8 +79529,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969, 50757974 ;
@@ -77391,8 +79553,8 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -77430,8 +79592,8 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
GFP3 = "" ;
@@ -77465,8 +79627,8 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_4 = 1, 2, 3, 4 ;
@@ -77506,8 +79668,8 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425,
@@ -77563,8 +79725,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -77620,8 +79782,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -77675,8 +79837,8 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
ZIRR = 0, 10, 40, 70 ;
@@ -77723,8 +79885,8 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_83 = 181, 183, 185 ;
@@ -77817,8 +79979,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -77887,8 +80049,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -77938,8 +80100,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -78013,8 +80175,8 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 0.5, 2 ;
@@ -78040,8 +80202,8 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -78064,8 +80226,8 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -78091,11 +80253,11 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.862 28-Mar-14" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
bn_bounds_defineax.jnl --- N+1 def of bounds.
netcdf irrxzt {
dimensions:
@@ -78126,8 +80288,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -78198,8 +80360,8 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -78242,8 +80404,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX105_105 = 229 ;
@@ -78284,8 +80446,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -78392,8 +80554,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
netcdf a {
@@ -78433,8 +80595,8 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
netcdf a {
@@ -78456,8 +80618,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78482,8 +80644,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78502,8 +80664,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78523,8 +80685,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78566,8 +80728,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
netcdf a {
@@ -78606,8 +80768,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
netcdf a {
@@ -78644,40 +80806,40 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX042 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float A1(XAX1_5) ;
+ double AX042(AX042) ;
+ AX042:point_spacing = "even" ;
+ AX042:axis = "X" ;
+ float A1(AX042) ;
A1:missing_value = -1.e+34f ;
A1:_FillValue = -1.e+34f ;
A1:long_name = "A1" ;
A1:three = 1.f, 2.f, 3.f ;
A1:history = "From EZ.DAT" ;
- float A2(XAX1_5) ;
+ float A2(AX042) ;
A2:missing_value = -1.e+34f ;
A2:_FillValue = -1.e+34f ;
A2:long_name = "A2" ;
A2:history = "From EZ.DAT" ;
- float A3(XAX1_5) ;
+ float A3(AX042) ;
A3:missing_value = -1.e+34f ;
A3:_FillValue = -1.e+34f ;
A3:long_name = "A3" ;
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX042 = 1, 2, 3, 4, 5 ;
A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -78688,29 +80850,29 @@ data:
bn_attributes.jnl --- 15 attributes of data from delimited data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX009 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float V1(XAX1_5) ;
+ double AX009(AX009) ;
+ AX009:point_spacing = "even" ;
+ AX009:axis = "X" ;
+ float V1(AX009) ;
V1:missing_value = -1.e+34f ;
V1:_FillValue = -1.e+34f ;
V1:long_name = "V1" ;
V1:strval = "2" ;
V1:history = "From EZ.DAT" ;
- float V4(XAX1_5) ;
+ float V4(AX009) ;
V4:missing_value = -1.e+34f ;
V4:_FillValue = -1.e+34f ;
V4:long_name = "V4" ;
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX009 = 1, 2, 3, 4, 5 ;
V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -78732,8 +80894,8 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -78778,8 +80940,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
:option = 0 ;
@@ -78885,8 +81047,8 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
bn_attributes.jnl --- 19 scale and offset attr.
@@ -78927,8 +81089,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XC = -135.50957036625, -135.496120344706, -135.482670323162,
@@ -79010,8 +81172,8 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
J = 2, 4, 6 ;
@@ -79047,8 +81209,8 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
B = 1 ;
@@ -79087,8 +81249,8 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -79138,8 +81300,8 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -79197,8 +81359,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79242,8 +81404,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79285,8 +81447,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79320,8 +81482,8 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79354,8 +81516,8 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
netcdf string4d {
@@ -79384,8 +81546,8 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
@@ -79413,8 +81575,8 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
data:
@@ -79474,8 +81636,8 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79519,8 +81681,8 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79538,8 +81700,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -79568,8 +81730,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -79598,8 +81760,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -79651,8 +81813,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79693,8 +81855,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79711,18 +81873,18 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
err611_set_var_ez.jnl ---
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX138 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_ASC(XAX1_3) ;
+ double AX138(AX138) ;
+ AX138:point_spacing = "even" ;
+ AX138:axis = "X" ;
+ float MY_ASC(AX138) ;
MY_ASC:missing_value = 3.f ;
MY_ASC:_FillValue = 3.f ;
MY_ASC:long_name = "chlorophyll" ;
@@ -79730,17 +81892,17 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX138 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_UNF(XAX1_3) ;
+ double AX138(AX138) ;
+ AX138:point_spacing = "even" ;
+ AX138:axis = "X" ;
+ float MY_UNF(AX138) ;
MY_UNF:missing_value = 5.f ;
MY_UNF:_FillValue = 5.f ;
MY_UNF:long_name = "Some Unformatted input" ;
@@ -79748,8 +81910,8 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
netcdf a {
@@ -79765,8 +81927,8 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -79786,8 +81948,8 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
@@ -79797,50 +81959,51 @@ data:
netcdf a {
dimensions:
XAX1_10 = 10 ;
- TDAY = UNLIMITED ; // (31 currently)
- LON1_5 = 5 ;
- LAT1_5 = 5 ;
+ tday = UNLIMITED ; // (31 currently)
+ lon1_5 = 5 ;
+ lat1_5 = 5 ;
bnds = 2 ;
- ZT = 10 ;
- TIME1478 = 3 ;
+ zt = 10 ;
+ time1478 = 3 ;
variables:
double XAX1_10(XAX1_10) ;
XAX1_10:point_spacing = "even" ;
XAX1_10:axis = "X" ;
- double TDAY(TDAY) ;
- TDAY:units = "days since 1998-12-31 00:00:00" ;
- TDAY:axis = "T" ;
- TDAY:calendar = "GREGORIAN" ;
- TDAY:time_origin = "31-DEC-1998" ;
- TDAY:standard_name = "time" ;
- double MyUpperLowerCaseVar(TDAY, XAX1_10) ;
+ double tday(tday) ;
+ tday:units = "days since 1998-12-31 00:00:00" ;
+ tday:axis = "T" ;
+ tday:calendar = "GREGORIAN" ;
+ tday:time_origin = "31-DEC-1998" ;
+ tday:standard_name = "time" ;
+ double MyUpperLowerCaseVar(tday, XAX1_10) ;
MyUpperLowerCaseVar:missing_value = -1.e+34 ;
MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
- double LON1_5(LON1_5) ;
- LON1_5:point_spacing = "even" ;
- LON1_5:axis = "X" ;
- LON1_5:standard_name = "longitude" ;
- double LAT1_5(LAT1_5) ;
- LAT1_5:point_spacing = "uneven" ;
- LAT1_5:axis = "Y" ;
- LAT1_5:standard_name = "latitude" ;
- LAT1_5:bounds = "LAT1_5_bnds" ;
- double LAT1_5_bnds(LAT1_5, bnds) ;
- float ZT(ZT) ;
- ZT:units = "meters" ;
- ZT:positive = "down" ;
- ZT:point_spacing = "uneven" ;
- ZT:axis = "Z" ;
- ZT:standard_name = "depth" ;
- ZT:bounds = "ZT_bnds" ;
- float ZT_bnds(ZT, bnds) ;
- double TIME1478(TIME1478) ;
- TIME1478:calendar = "NOLEAP" ;
- TIME1478:point_spacing = "even" ;
- TIME1478:axis = "T" ;
- TIME1478:standard_name = "time" ;
- double newvar(TIME1478, ZT, LAT1_5, LON1_5) ;
+ double lon1_5(lon1_5) ;
+ lon1_5:point_spacing = "even" ;
+ lon1_5:axis = "X" ;
+ lon1_5:standard_name = "longitude" ;
+ double lat1_5(lat1_5) ;
+ lat1_5:point_spacing = "uneven" ;
+ lat1_5:axis = "Y" ;
+ lat1_5:standard_name = "latitude" ;
+ lat1_5:bounds = "lat1_5_bnds" ;
+ double lat1_5_bnds(lat1_5, bnds) ;
+ float zt(zt) ;
+ zt:long_name = "zt" ;
+ zt:units = "meters" ;
+ zt:positive = "down" ;
+ zt:point_spacing = "uneven" ;
+ zt:axis = "Z" ;
+ zt:standard_name = "depth" ;
+ zt:bounds = "zt_bnds" ;
+ float zt_bnds(zt, bnds) ;
+ double time1478(time1478) ;
+ time1478:calendar = "NOLEAP" ;
+ time1478:axis = "T" ;
+ time1478:point_spacing = "even" ;
+ time1478:standard_name = "time" ;
+ double newvar(time1478, zt, lat1_5, lon1_5) ;
newvar:missing_value = -999. ;
newvar:_FillValue = -999. ;
newvar:long_name = "outgoing longwave radiation" ;
@@ -79848,8 +82011,8 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
netcdf a {
@@ -79875,8 +82038,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
netcdf a {
@@ -79902,8 +82065,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
netcdf a {
@@ -79968,8 +82131,8 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
netcdf a {
@@ -80000,8 +82163,8 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
netcdf a {
@@ -80033,8 +82196,8 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V6.862 28-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (beta) 29-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
-----
end of ncdump output
@@ -80047,27 +82210,27 @@ yes?
yes?
yes? GO bn_startupfile
NOAA/PMEL TMAP
- FERRET v6.862
- Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 03/28/14
- 28-Mar-14 11:42
+ FERRET v6.93 (beta)
+ Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
+ 29-Oct-14 16:04
CAN MODE VERIFY
- Current size of FERRET memory cache: 31 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
PPL$XPIXEL = "656"
PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.862"
-FERRET_PLATFORM = "Linux 2.6.32-431.5.1.el6.x86_64 64-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
FERRET_MEMORY = "31"
-SESSION_DATE = "28-Mar-14"
-SESSION_TIME = "11:42"
-SESSION_PID = "31005"
-DELTA_CPU = "0.040993"
-CLOCK_SECS = "0.304"
-CURRENT_DATE = "28-Mar-14"
-CURRENT_TIME = "11:42:09"
+SESSION_DATE = "29-Oct-14"
+SESSION_TIME = "16:04"
+SESSION_PID = "2382"
+DELTA_CPU = "0.070989"
+CLOCK_SECS = "0.418"
+CURRENT_DATE = "29-Oct-14"
+CURRENT_TIME = "16:04:39"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
LAST_GO_FILE = "./bn_startupfile.jnl"
@@ -80089,7 +82252,7 @@ PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "28-Mar-14:11:42"
+WIN_TITLE = "29-Oct-14:16:04"
VP_WIDTH = "10.2"
VP_HEIGHT = "8.8"
VP_SCALE = "1"
@@ -80151,9 +82314,9 @@ yes?
yes?
yes? GO bn_gif
NOAA/PMEL TMAP
- FERRET v6.862
- Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 03/28/14
- 28-Mar-14 11:42
+ FERRET v6.93 (beta)
+ Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
+ 29-Oct-14 16:04
! bn450_gif.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of gif file in batch mode using
@@ -80214,7 +82377,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= .gif [...]
@@ -80370,9 +82533,9 @@ yes?
yes?
yes? GO bn_ps
NOAA/PMEL TMAP
- FERRET v6.862
- Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 03/28/14
- 28-Mar-14 11:42
+ FERRET v6.93 (beta)
+ Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
+ 29-Oct-14 16:04
! bn450_ps.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of ps files in batch mode using
@@ -80433,7 +82596,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= bnplot.ps [...]
@@ -80484,9 +82647,9 @@ yes?
yes?
yes? GO bn_batch_metafile
NOAA/PMEL TMAP
- FERRET v6.862
- Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 03/28/14
- 28-Mar-14 11:42
+ FERRET v6.93 (beta)
+ Linux 2.6.32-504.el6.x86_64 64-bit - 10/29/14
+ 29-Oct-14 16:04
! bn_batch_metafile.jnl
! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -80570,4 +82733,4 @@ set window/location=0.1,0.1/title="another title"
set mode/last logo
exit/command
-Ended at Fri Mar 28 11:42:11 PDT 2014
+Ended at Wed Oct 29 16:04:41 PDT 2014
diff --git a/bench/ansley_official.x86_64-linux_err b/bench/ansley_official.x86_64-linux_err
index 5a4e9e5..be314a6 100644
--- a/bench/ansley_official.x86_64-linux_err
+++ b/bench/ansley_official.x86_64-linux_err
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
Running FERRET version /home/users/ansley/build/x86/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53303709 Mar 26 15:36 /home/users/ansley/build/x86/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 53365065 Oct 7 10:08 /home/users/ansley/build/x86/FERRET/fer/ferret_c
Using external functions from /home/users/ansley/build/x86/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: fixing ticket 2161: redefine long_name or units for ascii-file var
+Note: ticket 2203
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -20,11 +20,10 @@ FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
FER_LINK_DIR=/home/users/tmap/ferret_link/linux
FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
PWD=/home/users/ansley/build/x86/FERRET/bench
-Beginning at Wed Mar 26 15:37:53 PDT 2014
+Beginning at Tue Oct 7 10:41:47 PDT 2014
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
SET EXPRESSION has not been given or implied
- SET EXPRESSION has not been given or implied
**ERROR: unknown command qualifier: help
MESSAGE/CONTINUE /help
**ERROR: unknown command: that
@@ -304,7 +303,7 @@ list temp[i=2:5,gx=130e:80w:10]
list temp[gx=130e:80w]
**ERROR: variable unknown or not in data set: NOEXIST
list temp[gx=u] + noexist
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G004) does not exist at K=30
Axis extremes are K=1:27
list temp[gx=u,k=30]
**ERROR: illegal limits: TEMP does not contain K=20
@@ -320,7 +319,7 @@ list tu
list tu
**ERROR: variable unknown or not in data set: NOEXIST
list tu
- **ERROR: illegal limits: TEMP on grid (G003) does not exist at K=30
+ **ERROR: illegal limits: TEMP on grid (G004) does not exist at K=30
Axis extremes are K=1:27
list tu
**ERROR: illegal limits: TEMP does not contain K=20
@@ -580,9 +579,10 @@ Replacing definition of axis XAX
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
- **ERROR: request exceeds memory setting: A negative number of words were requested.
+ **ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: The current grid is most likely too large
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
@@ -845,6 +845,7 @@ Replacing definition of axis X10
*** NOTE: Not deleted: X10
*** NOTE: Axis is in use by grid G10X5
PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
Bailing out of external function "eof_space":
Function EOF_SPACE not available in this version of Ferret. Use EOFSVD_SPACE
@@ -854,7 +855,6 @@ Bailing out of external function "eof_stat":
Bailing out of external function "eof_tfunc":
Function EOF_TFUNC not available in this version of Ferret. Use EOFSVD_TFUNC
- TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -1083,7 +1083,7 @@ Replacing definition of axis TAX2
*** NOTE: regarding ./test_axes.nc ...
*** NOTE: Climatological axes test_irreg, test_seas defined
*** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
+ *** NOTE: Axis is in use by grid (G023)
*** NOTE: Not deleted: XEVEN
*** NOTE: Axis is in use by grid EVEN
*** NOTE: Not deleted: XODD
@@ -1188,18 +1188,18 @@ Replacing definition of axis TAX2
*** NOTE: Axis is in use by grid GFORMAT
*** NOTE: Not deleted: XAXLEVITR1_160
*** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: TIME5
*** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: COADSX
*** NOTE: Axis is in use by grid GG
*** NOTE: Not deleted: COADSY
*** NOTE: Axis is in use by grid GG1
+ *** NOTE: Not deleted: TEST_IRREG
+ *** NOTE: Axis is in use by grid (G023)
*** NOTE: Not deleted: YAXLEVITR1_90
*** NOTE: Axis is in use by grid GG2
- *** NOTE: Not deleted: TEST_IRREG
- *** NOTE: Axis is in use by grid (G022)
*** NOTE: Not deleted: ZAXLEVITR1_1
*** NOTE: Axis is in use by grid GG2
*** NOTE: Not deleted: (AX020)
@@ -1308,10 +1308,10 @@ Replacing definition of axis TAX2
*** NOTE: Axis is in use by grid GFORMAT
*** NOTE: Not deleted: XAXLEVITR1_160
*** NOTE: Axis is in use by grid GG1
- *** NOTE: Not deleted: TIME4
- *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: TIME5
*** NOTE: Axis is in use by grid GLB1
+ *** NOTE: Not deleted: TIME4
+ *** NOTE: Axis is in use by grid GXYT
*** NOTE: Not deleted: COADSX
*** NOTE: Axis is in use by grid GG
*** NOTE: Not deleted: COADSY
@@ -1679,15 +1679,15 @@ Replacing definition of grid TGRID
def axis/t/cal=nogood/t=1-jan-2000:1-jan-2010:1/units=months tax
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
- *** NOTE: Units not recognized: SOMETHING
+ *** NOTE: Units not recognized: something
*** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: SOMETHING
+ *** NOTE: Units not recognized: something
*** NOTE: They will not be convertible:
- *** NOTE: Units not recognized: ZORRO
+ *** NOTE: Units not recognized: zorro
*** NOTE: They will not be convertible:
- *** NOTE: Units not recognized for T axis: METERS
+ *** NOTE: Units not recognized for T axis: meters
*** NOTE: They will not be convertible
- *** NOTE: Units not recognized for Y axis: SECONDS
+ *** NOTE: Units not recognized for Y axis: seconds
*** NOTE: They will not be convertible
Replacing definition of axis TAX
Replacing definition of axis XAX
@@ -3519,11 +3519,19 @@ Replacing definition of axis ZAX
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
*** NOTE: Not deleted: ENSEMBLE
- *** NOTE: Axis is in use by grid (G103)
+ *** NOTE: Axis is in use by grid (G089)
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3600,6 +3608,23 @@ shade b
*** NOTE: Changing the value of attribute v1.units
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ **ERROR: attribute undefined or invalid attribute name: temp.noexist[d=levitus_climatology]
+ attribute noexist not found for variable TEMP
+show att temp.noexist[d=levitus_climatology]
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: illegal new name. Variable b already defined
+set var/name=b a
+ **ERROR: invalid command: illegal new name. Variable b already defined
+set var/name=b a
+ **ERROR: invalid command: illegal new name. Variable temp exists in dataset
+set var/name=temp salt
+ **ERROR: invalid command: illegal new name. Variable psi exists in dataset
+set var/name=psi myvar
+ **ERROR: invalid command: illegal new name. Variable diff already defined
+set var/name=diff w
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
*** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
*** NOTE: Error in bounds "MONTH_IRREG_bnds" or bounds do not enclose point on axis MONTH_IRREG
*** NOTE: Substituting coordinate midpoints
@@ -3610,6 +3635,154 @@ Replacing definition of axis TAX
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file b.nc
+ LISTing to file c.nc
+ **ERROR: invalid command: illegal new name. Axis days2000 is already defined
+set axis/name=days2000 x_in_meters
+ **ERROR: invalid command: illegal new name given for axis
+set axis/name x_in_meters
+ **ERROR: invalid command: illegal new name given for axis 45
+set axis/name=45 x_in_meters
+ **ERROR: invalid command: illegal new name given for axis .fr
+set axis/name=.fr x_in_meters
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
+list tax_datestring (tt[L=3], tt, 5)
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: must be a constant COS(1)
+list {cos(1), sin(0)}
+ **ERROR: command syntax: must be a constant 0-180
+list {0-180, 180}
+ **ERROR: command syntax: must be a constant 1./5.
+list {0.1, 0.2, 1./5.}
+ **ERROR: command syntax: must be a constant 5*3+1
+list {5*3+1, 2+3}
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis TAX
+ LISTing to file tval.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file out.xml
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAXIS
+ **ERROR: request exceeds memory setting: 2369 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+Replacing definition of axis LONGTIME
+ **ERROR: request exceeds memory setting: 4735 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ LISTing to file aa.nc
+ LISTing to file bb.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file anew_global.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file conventions_history.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis X2
+Replacing definition of axis Y2
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
+ **ERROR: illegal limits: X axis limits don't match variable def'n: A
+ Are you giving explicit limits when SET REGION would suffice ?
+list f
+ *** NOTE: Not deleted: ENSEMBLE
+ *** NOTE: Axis is in use by grid (G091)
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
**ERROR: command syntax: unknown region name: @w
set region/@w
PERMANENT data cleared from memory
@@ -3697,4 +3870,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 Mar 26 15:39:36 PDT 2014
+Ended at Tue Oct 7 10:44:14 PDT 2014
diff --git a/bench/ansley_official.x86_64-linux_log b/bench/ansley_official.x86_64-linux_log
index 984b35c..72dec23 100644
--- a/bench/ansley_official.x86_64-linux_log
+++ b/bench/ansley_official.x86_64-linux_log
@@ -1,10 +1,10 @@
Procedure run_all to run all FERRET benchmarks
Running FERRET version /home/users/ansley/build/x86/FERRET/fer/ferret_c
--rwxr-xr-x 1 ansley tmap 53303709 Mar 26 15:36 /home/users/ansley/build/x86/FERRET/fer/ferret_c
+-rwxr-xr-x 1 ansley tmap 53365065 Oct 7 10:08 /home/users/ansley/build/x86/FERRET/fer/ferret_c
Using external functions from /home/users/ansley/build/x86/FERRET/external_functions/ext_func
Running the tests of external functions y
Benchmark run by ansley
-Note: fixing ticket 2161: redefine long_name or units for ascii-file var
+Note: ticket 2203
ncdump output will be in all_ncdump.out, and appended to this log file
***** Restricting Ferret paths to bench directory *****
FER_DAT=.
@@ -20,7 +20,7 @@ FER_LIBS=/home/users/tmap/ferret/x86_64-linux/lib
FER_LINK_DIR=/home/users/tmap/ferret_link/linux
FER_PALETTE=. /home/users/tmap/ferret/x86_64-linux/ppl
PWD=/home/users/ansley/build/x86/FERRET/bench
-Beginning at Wed Mar 26 15:37:53 PDT 2014
+Beginning at Tue Oct 7 10:41:47 PDT 2014
! BN500_ALL.JNL
! - run all the benchmark tests
! - ordered (more or less) from least to most complex
@@ -273,9 +273,9 @@ SHOW DATA/FULL
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ V1 V1 1:2 ... ... ... ... ...
+ on grid (G008) with -1.E+34 for missing data
+ X=-0.5:1.5
/FORMAT = FREE
/SKIP = 0
@@ -285,7 +285,7 @@ SHOW DATA
currently SET data sets:
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:2 ... ... ... ... ...
SET MODE IGNORE_ERROR
SET DATA/EZ/VAR="P,Q" 1
@@ -527,7 +527,7 @@ show mode journal
JOURNAL SET newjournal.jnl
set mode journal ferret.jnl
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= metafile.plt [...]
@@ -539,7 +539,7 @@ ppl list plot
ppl listsym
cancel mode ppllist
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= metafile.plt [...]
@@ -596,6 +596,8 @@ set mode metafile metafile.plt
! SET - SHOW - CANCEL EXPRESSION
SHOW EXPRESSION
+ current output expression(s):
+ X[GX=1:0:1]
CANCEL EXPRESSION
SHOW EXPRESSION
SET EXPRESSION i+5,i-j
@@ -794,19 +796,19 @@ SHOW VARIABLES
! SHOW MEMORY , LOAD
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded without /PERMANENT:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
105 /125W 50 /1.7N 1 /10 5 /13-SEP-1982 ... / ... ... / ...
SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded with /PERMANENT:
SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
all data in memory:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
@@ -816,9 +818,9 @@ all data in memory:
LET A=i
LOAD/PERM/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -832,9 +834,9 @@ SHOW MEMORY/FREE
number of blocks used /PERM: 1
LOAD/TEMPORARY/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -1404,8 +1406,8 @@ let x1 = 0.012954
let x2 = 7.5E-09
let x3 = .1
say >>`x1`<< --- >>`x2`<< --- >>`x3`<<
- !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09 << --- >>0.1<<
->>0.012954<< --- >>7.5E-09 << --- >>0.1<<
+ !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09<< --- >>0.1<<
+>>0.012954<< --- >>7.5E-09<< --- >>0.1<<
! must recognize "/" inside immediate mode exprn
list/I=`6/2` i
@@ -1746,8 +1748,8 @@ show data
2> ./snoopy.dat (default)
name title I J K L M N
- T4 test4 1:20480 ... ... ... ... ...
- T3 test3 1:20480 ... ... ... ... ...
+ T4 test4 1:2 ... ... ... ... ...
+ T3 test3 1:2 ... ... ... ... ...
show data/full 1
currently SET data sets:
@@ -9617,9 +9619,9 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ V1 V1 1:5 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9647,12 +9649,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:5 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:5.5
+ X2 X2 1:5 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9683,12 +9685,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 0
@@ -9727,12 +9729,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9765,12 +9767,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9800,12 +9802,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0))
/SKIP = 2
@@ -9838,12 +9840,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G007) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0)/)
/SKIP = 1
@@ -10087,7 +10089,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= bnplot.plt [...]
@@ -10266,6 +10268,7 @@ fill/nolabel/title="Orthographic View" masked_sst, x_page, y_page
!
!go mp_fland
go mp_land
+pause
go mp_label 237.7 47.6 -1 0 .1 @IISeattle
go mp_label 204.4 19.5 -1 0 .1 @IIHawaii
go mp_graticule
@@ -10446,18 +10449,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.861"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5 64-bit"
+FERRET_VERSION = "6.925"
+FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "26-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "24985"
-DELTA_CPU = "5.61515"
-CLOCK_SECS = "7.285"
-CURRENT_DATE = "26-Mar-14"
-CURRENT_TIME = "15:38:00"
+SESSION_DATE = " 7-Oct-14"
+SESSION_TIME = "10:41"
+SESSION_PID = "14259"
+DELTA_CPU = "6.08308"
+CLOCK_SECS = "12.483"
+CURRENT_DATE = " 7-Oct-14"
+CURRENT_TIME = "10:41:59"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -10475,18 +10478,18 @@ show symbol/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.861"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5 64-bit"
+FERRET_VERSION = "6.925"
+FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "26-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "24985"
-DELTA_CPU = "0.001"
-CLOCK_SECS = "7.286"
-CURRENT_DATE = "26-Mar-14"
-CURRENT_TIME = "15:38:00"
+SESSION_DATE = " 7-Oct-14"
+SESSION_TIME = "10:41"
+SESSION_PID = "14259"
+DELTA_CPU = "9.99E-04"
+CLOCK_SECS = "12.483"
+CURRENT_DATE = " 7-Oct-14"
+CURRENT_TIME = "10:41:59"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
S1 = "hello"
@@ -10496,9 +10499,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = "26-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "24985"
+SESSION_DATE = " 7-Oct-14"
+SESSION_TIME = "10:41"
+SESSION_PID = "14259"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10508,15 +10511,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = "26-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "24985"
+SESSION_DATE = " 7-Oct-14"
+SESSION_TIME = "10:41"
+SESSION_PID = "14259"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = "26-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "24985"
+SESSION_DATE = " 7-Oct-14"
+SESSION_TIME = "10:41"
+SESSION_PID = "14259"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10550,9 +10553,9 @@ Q23456789012345678901234567XXXAAAAA = "6"
! show the upper left coordinate limits labels as symbols
plot/i=1:100/y=10/z=5/set_up SIN(I/6)+Y+Z
show symbol lab*
-LAB1 = "FERRET Ver. 6.861"
+LAB1 = "FERRET Ver. 6.925"
LAB2 = "NOAA/PMEL TMAP"
-LAB3 = "26-MAR-2014 15:38:00"
+LAB3 = "07-OCT-2014 10:41:59"
LABX = "X"
LAB4 = "Y : 10"
LABNUM_Y = "4"
@@ -10647,18 +10650,18 @@ show symbols/all
PPL$XPIXEL = "406"
PPL$YPIXEL = "406"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.861"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5 64-bit"
+FERRET_VERSION = "6.925"
+FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "26-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "24985"
-DELTA_CPU = "0.012998"
-CLOCK_SECS = "7.299"
-CURRENT_DATE = "26-Mar-14"
-CURRENT_TIME = "15:38:00"
+SESSION_DATE = " 7-Oct-14"
+SESSION_TIME = "10:41"
+SESSION_PID = "14259"
+DELTA_CPU = "0.010999"
+CLOCK_SECS = "12.495"
+CURRENT_DATE = " 7-Oct-14"
+CURRENT_TIME = "10:41:59"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -12353,7 +12356,7 @@ set region/l=1/k=1/i=101:105/j=46:50
load temp[gx=u]
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12404,7 +12407,7 @@ Dynamic axes:
list temp[gx=u,k=20] ! err during read
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12448,7 +12451,7 @@ list temp[gx=a] ! uvar for grid name
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12495,7 +12498,7 @@ let tu = temp[gx=u,k=20]
list tu ! err during read
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12526,7 +12529,7 @@ set mem/siz = 10
list temp[gz=z999999,z=5:15] ! err during regrid
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12542,7 +12545,7 @@ set mem/siz=`save_mem`
shade 1/0 * temp[gx=u] ! err during plot
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12574,7 +12577,7 @@ list temp[gx=psxu]
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12616,7 +12619,7 @@ list temp[gx=u]
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12656,7 +12659,7 @@ list temp[gx=psxu] + 5
0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12682,7 +12685,7 @@ list 5 + temp[gx=psxu]
0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12709,7 +12712,7 @@ list tu
0.17N / 46: 23.9009 23.7946 23.7029 23.6527 23.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12720,7 +12723,7 @@ Dynamic grids:
Dynamic axes:
no implicit axes
show grid tu
- GRID (G003)
+ GRID (G004)
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12745,7 +12748,7 @@ list tu
0.17N / 46: 28.9009 28.7946 28.7029 28.6527 28.6934
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12824,7 +12827,7 @@ list temp[gx=taux] ! X only
0.17S / 45: 27.8727 27.7878 27.7232 27.6494 27.5563 27.4494
show grid/dynamic
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
PSXU LONGITUDE 160mr 131E 70W
PSYT LATITUDE 100 i 28.836S 48.568N
@@ -12935,7 +12938,7 @@ Dynamic axes:
! * * * dynamic generation of pseudo-variables * * *
list x[x=.1:1:.1] ! dynamic abstract
VARIABLE : X
- axis (AX003)
+ axis (AX005)
SUBSET : 10 points (X)
0.1 / 1: 0.10000
0.2 / 2: 0.20000
@@ -12949,7 +12952,7 @@ list x[x=.1:1:.1] ! dynamic abstract
1 / 10: 1.00000
list x[gx=psxu,x=130:150:2.5] ! dynamic based on named axis
VARIABLE : X
- axis (AX004)
+ axis (AX003)
SUBSET : 9 points (LONGITUDE)
130E / 1: 130.000
132.5E / 2: 132.500
@@ -13036,24 +13039,24 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX002) X 7 r 0.1 9.1
- (AX004) Y 3 r 95 109
+ (AX004) X 7 r 0.1 9.1
+ (AX003) Y 3 r 95 109
normal Z
normal T
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 7 r 0.1 9.1
- (AX003) Y 10 r 101 110
+ (AX004) X 7 r 0.1 9.1
+ (AX005) Y 10 r 101 110
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX004) use count: 1
- AXIS (AX002) use count: 2
AXIS (AX003) use count: 1
+ AXIS (AX004) use count: 2
+ AXIS (AX005) use count: 1
! ambiguous coordinate tests
list/order=x x[x=0.1:10:1.5] + x[x=1.1:11:1.5]
@@ -13071,16 +13074,16 @@ list/order=x a
1.2000 4.2000 7.2000 10.2000 13.2000 16.2000 19.2000
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 2
+ GRID (G004) use count: 2
name axis # pts start end
- (AX004) X 7 r 0.1 9.1
+ (AX003) X 7 r 0.1 9.1
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX004) use count: 1
+ AXIS (AX003) use count: 1
! box size on dynamic axes
cancel region
@@ -13104,10 +13107,10 @@ let/quiet b = a[i=1:10:2]
load b ! "child" irregular axis
show grid/x
Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G003)
- GRID (G003)
+ Last successful data access was on grid (G004)
+ GRID (G004)
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
@@ -13139,7 +13142,7 @@ list/i=1:10 x[gx=temp] ! from named variable
139.5E / 10: 139.500
list x[g=temp,x=150w:130w:2.5] ! dynamic based on named variable
VARIABLE : X
- axis (AX005)
+ axis (AX001)
FILENAME : gtsa056_1.cdf
SUBSET : 9 points (LONGITUDE)
150W / 1: 210.000
@@ -13153,7 +13156,7 @@ list x[g=temp,x=150w:130w:2.5] ! dynamic based on named variable
130W / 9: 230.000
list x[gx=temp,x=150w:130w:2.5] ! dynamic based on named variable
VARIABLE : X
- axis (AX003)
+ axis (AX005)
FILENAME : gtsa056_1.cdf
SUBSET : 9 points (LONGITUDE)
150W / 1: 210.000
@@ -13181,16 +13184,16 @@ list/i=101:105/j=46:50/l=1/k=1 temp+x ! grid inherited from expression
0.17N / 46: 254.456 255.346 256.243 257.163 258.142
show grid/dyn
Dynamic grids:
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX002) use count: 1
+ AXIS (AX004) use count: 1
! this expression does NOT inherit the X axis -- the result is
! i) ambiguous X axis coordinates
@@ -13212,23 +13215,23 @@ show grid/dynamic
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX004) LONGITUDE 5 r 129.5W 113.5W
+ (AX003) LONGITUDE 5 r 129.5W 113.5W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
list/j=46:50/l=1/k=1 temp[i=101:120:4]+x[g=temp,i=101:120:4]
VARIABLE : TEMP[I=101:120:4]+X[G=TEMP,I=101:120:4]
@@ -13251,7 +13254,7 @@ SET REGION/I=101:105/J=46:50/l=1/k=1
! deliberate errors: ****
list x[i=5:1:1] ! not an error: inverted order
VARIABLE : X
- axis (AX004)
+ axis (AX003)
SUBSET : 5 points (X)
1 / 1: 1.00000
2 / 2: 2.00000
@@ -13296,23 +13299,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX004) LONGITUDE 6 i 108.5W(-468.5) 98.5W(-458.5)
+ (AX003) LONGITUDE 6 i 108.5W(-468.5) 98.5W(-458.5)
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
! regular dynamic axis
! ... by subscript
@@ -13380,22 +13383,22 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX004) LATITUDE 4 r 0.5S 4N
+ (AX003) LATITUDE 4 r 0.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
+ AXIS (AX003) use count: 1
AXIS (AX004) use count: 1
- AXIS (AX002) use count: 1
! ========
! 2/96: repeat the very same commands using GX=lo:hi:delta notation
@@ -13557,24 +13560,24 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 4 r 130W 121W
- (AX003) LATITUDE 4 r 0.5S 4N
+ (AX001) LONGITUDE 4 r 130W 121W
+ (AX005) LATITUDE 4 r 0.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX002) X 5 i 1 6561
+ (AX004) X 5 i 1 6561
normal Y
normal Z
normal T
normal E
normal F
Dynamic axes:
- AXIS (AX003) use count: 1
AXIS (AX005) use count: 1
- AXIS (AX002) use count: 1
+ AXIS (AX001) use count: 1
+ AXIS (AX004) use count: 1
! the same tests but now on a nested definition
! regular dynamic axis
@@ -13742,23 +13745,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX003) LONGITUDE 6 r 138W 113W
+ (AX005) LONGITUDE 6 r 138W 113W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 4 r 130W 121W
+ (AX001) LONGITUDE 4 r 130W 121W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
- AXIS (AX003) use count: 1
AXIS (AX005) use count: 1
+ AXIS (AX001) use count: 1
! irregular dynamic axis
! ... by subscript
@@ -13896,23 +13899,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX005) LONGITUDE 8 r 90W 62W
+ (AX001) LONGITUDE 8 r 90W 62W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
PSXT LONGITUDE 160mr 130.5E 70.5W
- (AX002) LATITUDE 6 r 3.5S 4N
+ (AX004) LATITUDE 6 r 3.5S 4N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 1
- AXIS (AX002) use count: 1
+ AXIS (AX001) use count: 1
+ AXIS (AX004) use count: 1
! nested modulo (the dynamic axis is **NOT** modulo)
! ... by subscript
@@ -14094,23 +14097,23 @@ show grid/dyn
Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
- (AX002) LONGITUDE 9 r 101W 53W
+ (AX004) LONGITUDE 9 r 101W 53W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
- GRID (G003) use count: 1
+ GRID (G004) use count: 1
name axis # pts start end
- (AX003) LONGITUDE 8 r 90W 62W
+ (AX005) LONGITUDE 8 r 90W 62W
PSYT LATITUDE 100 i 28.836S 48.568N
PSZT DEPTH (m) 27 i- 5 3824
TIME2 TIME 5mr 15-JAN-1982 14:00 27-JAN-1982 18:00
normal E
normal F
Dynamic axes:
- AXIS (AX002) use count: 1
- AXIS (AX003) use count: 1
+ AXIS (AX004) use count: 1
+ AXIS (AX005) use count: 1
! calendar axes
list/k=1/y=0/x=180 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave] ! 6-day ave
@@ -14142,7 +14145,7 @@ list/k=1/y=0/x=180/l=1 temp[t=15-JAN-1982:11-FEB-1982:`24*6`@ave]
list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:`24*2`] ! pseudo-var
!-> list/l=1:3 T[t=15-JAN-1982:11-FEB-1982:48] ! pseudo-var
VARIABLE : T
- axis (AX004)
+ axis (AX003)
SUBSET : 3 points (TIME)
15-JAN-1982 00 / 1: 723925.
17-JAN-1982 00 / 2: 723927.
@@ -14754,7 +14757,7 @@ show data/full
on grid G016_NYZ with -1.E+34 for missing data
X=130E:140E
JK J1+K1 ... 5:10 5:15 ... ... ...
- on grid G007_NXT with -1.E+34 for missing data
+ on grid G008_NXT with -1.E+34 for missing data
Y=21.11S:12.52S Z=40:190
IJK TEMP[L=@AVE] 70:72 1:100 1:27 ... ... ...
(T=15-MAR-1983 09:30:15-MAR-1983 11:30)
@@ -17826,10 +17829,10 @@ list a2[gx=xoffset at ave, gy=yoffset at ave]
eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
pseudo Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
-DELETE X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A2 M:297 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -17862,10 +17865,10 @@ list a2[gx=xoffset at sum, gy=yoffset at sum] ! should sum to 10+11+11+12=44
eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:298 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
pseudo Y M:297 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE Y M:297 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
-DELETE X M:298 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A2 M:298 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -17899,10 +17902,10 @@ list a2[gx=xoffset at var, gy=yoffset at var]
eval A2 C: 8 dset: 0 I: 1 2 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
pseudo Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE Y M:298 dset: 0 I: -999 -999 J: 1 2 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) NORMAL Y2PT NORMAL NORMAL NORMAL NORMAL
-DELETE X M:297 dset: 0 I: 1 2 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X2PT NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A2 M:297 dset: 0 I: 1 2 J: 1 7 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -18100,18 +18103,18 @@ list a5[gx=x5 at max] ! note: top dest axis point, only, looks at point above
allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 2 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
- strip regrid on X: A5 --> (G008) @MAX
+ allocate dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ strip regrid on X: A5 --> (G002) @MAX
eval A5 C: 7 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
allocate dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
pseudo X M:298 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
regrid A5 M:297 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
VARIABLE : X[GX=X5_EDGES]
regrid: 1 delta on X at MAX
SUBSET : 5 points (X)
@@ -18121,7 +18124,7 @@ list a5[gx=x5 at max] ! note: top dest axis point, only, looks at point above
4 / 4: 3.50000
5 / 5: 5.50000
let a5 = x[gx=x5_edges, i=3]
- dealloc dynamic grid (G008) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) X5 NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE A5 M:297 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE A5 M:299 dset: 0 I: 1 6 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid (G010) X5_EDGES NORMAL NORMAL NORMAL NORMAL NORMAL
@@ -25628,7 +25631,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Wed Mar 26 15:38:06 PDT 2014
+Tue Oct 7 10:42:09 PDT 2014
GO bn_reset
cancel mode verify
@@ -25755,7 +25758,7 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
1N / 46: 29.1373 28.9243 28.3264
1S / 45: 28.8965 28.8240 28.5357
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -26252,7 +26255,7 @@ Dynamic grids:
GRID (G017) use count: 2
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX001) LATITUDE 5 r 1S 1N
+ (AX002) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -26260,13 +26263,13 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX001) LATITUDE 5 r 1S 1N
+ (AX002) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
normal F
Dynamic axes:
- AXIS (AX001) use count: 2
+ AXIS (AX002) use count: 2
cancel memory/all
let/quiet a = sst[l=1,y=1s:1n:.5]
list SAMPLEI(a,{30,40,50})
@@ -26286,7 +26289,7 @@ Dynamic grids:
GRID (G006) use count: 1
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX005) LATITUDE 5 r 1S 1N
+ (AX001) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -26294,13 +26297,13 @@ Dynamic grids:
GRID (G017) use count: 1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 5 r 1S 1N
+ (AX001) LATITUDE 5 r 1S 1N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 2
+ AXIS (AX001) use count: 2
! sampling a pseudo-variable
list SAMPLEI(X[x=1:12],{3,4,7,15})
@@ -26457,9 +26460,9 @@ list SAMPLEI(Y[y=110:200:10],{3,4,7})
cancel memory/all
set mode diagnostic
list SAMPLEI(sst[l=1,y=5N],{31,33,35,37,44,46,48})
- dealloc dynamic grid (G017) NORMAL (AX001) NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT (AX001) NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G006) ABSTRACT (AX001) NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G017) NORMAL (AX002) NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G006) ABSTRACT (AX002) NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G006) ABSTRACT (AX002) NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C01,V02 C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid (C09,V02 C: 10 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -26562,7 +26565,7 @@ list a ! <-- CACHE HIT FAILS!!!
set mode/last diagnostic
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -29157,15 +29160,15 @@ stat $1[gx=xtrop]
!-> stat sst[gx=xtrop]
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 52 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29184,7 +29187,7 @@ stat $1[gx=xtrop]
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 49 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29197,15 +29200,15 @@ stat $1[gx=xtrop]
-DELETE I M: 49 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 49 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29228,21 +29231,21 @@ let $1x = $1[gx=xtrop]
!-> DEFINE VARIABLE sstx = sst[gx=xtrop]
stat $1x
!-> stat sstx
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 27 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SSTX C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTX C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 27 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -29260,7 +29263,7 @@ stat $1x
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -29272,14 +29275,14 @@ stat $1x
-DELETE I M: 44 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SSTX C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 44 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -29298,24 +29301,24 @@ stat $1x
Standard deviation: 9.8848
define grid/x=xtrop gx
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SSTX M: 40 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SSTX M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST M: 47 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
stat $1[g=gx]
!-> stat sst[g=gx]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 47 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29334,7 +29337,7 @@ stat $1[g=gx]
Mean value: 17.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 43 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29347,15 +29350,15 @@ stat $1[g=gx]
-DELETE I M: 43 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 43 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X
@@ -29377,19 +29380,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 (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 46 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 46 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
regrid SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X, 1 deg on Y
@@ -29408,7 +29411,7 @@ stat $1[gx=xtrop,gy=ytrop]
Mean value: 26.908 (unweighted average)
Standard deviation: 1.778
CONFUSE
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 40 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -29421,16 +29424,16 @@ stat $1[gx=xtrop,gy=ytrop]
-DELETE I M: 40 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST --> (G002) @LIN
reading SST M: 40 dset: 1 I: 55 131 J: 35 56 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid XY
regrid SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
SEA SURFACE TEMPERATURE
regrid: 1 deg on X, 1 deg on Y
@@ -29451,7 +29454,7 @@ stat $1[gx=xtrop,gy=ytrop]
define grid/like=$1/x=xtrop/y=ytrop gxyt
!-> define grid/like=sst/x=xtrop/y=ytrop gxyt
- dealloc dynamic grid (G008) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-DELETE SST M: 39 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
@@ -29989,18 +29992,18 @@ stat $1[gx=xtrop]
!-> stat sst5[gx=xtrop]
dealloc dynamic grid GSQ1 COADSX COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 50 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 42 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 42 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 42 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30019,7 +30022,7 @@ stat $1[gx=xtrop]
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST5 M: 42 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
@@ -30032,18 +30035,18 @@ stat $1[gx=xtrop]
-DELETE I M: 42 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 42 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 45 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 45 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 45 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30066,24 +30069,24 @@ let $1x = $1[gx=xtrop]
!-> DEFINE VARIABLE sst5x = sst5[gx=xtrop]
stat $1x
!-> stat sst5x
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST5 M: 45 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid SST5X C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SST5X C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 9 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 45 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 58 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 58 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST5[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -30101,7 +30104,7 @@ stat $1x
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30113,17 +30116,17 @@ stat $1x
-DELETE I M: 61 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
eval SST5X C: 6 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 9 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 61 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 62 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 62 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST5[GX=XTROP]
LONGITUDE: 129.5E to 79.5W
@@ -30144,20 +30147,20 @@ stat $1x
define grid/x=xtrop gx
stat $1[g=gx]
!-> stat sst5[g=gx]
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 65 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 66 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 66 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30176,7 +30179,7 @@ stat $1[g=gx]
Mean value: 22.605 (unweighted average)
Standard deviation: 9.8848
CONFUSE
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -30188,18 +30191,18 @@ stat $1[g=gx]
-DELETE I M: 68 dset: 0 I: 1 5 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
- strip regrid on X: SST5 --> (G008) @LIN
+ allocate dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ strip regrid on X: SST5 --> (G002) @LIN
eval SST5 C: 7 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
reading SST M: 68 dset: 1 I: 55 131 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
constan cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE cnst M: 69 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
regrid SST5 M: 69 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
SST+5
regrid: 1 deg on X
@@ -30221,7 +30224,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 (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: 1 151 J: 1 41 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
strip regrid on X: SST5 --> GXYT @LIN
@@ -30439,7 +30442,7 @@ let $1xyt = $1[g=gxyt]
dealloc dynamic grid GXYT XTROP YTROP NORMAL TIME4 NORMAL NORMAL
-DELETE SST5X M: 60 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5X M: 64 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
+ dealloc dynamic grid (G002) XTROP COADSY NORMAL TIME4 NORMAL NORMAL
-DELETE SST5 M: 58 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 62 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
-DELETE SST5 M: 66 dset: 1 I: 1 151 J: 1 90 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -31040,7 +31043,7 @@ say `a,return=isize`
getgrid (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
dealloc dynamic grid ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT ABSTRACT
pass #2 (C09,V11 C: 12 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G002) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
@@ -31164,7 +31167,7 @@ cancel mode verify
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
-DELETE (C09,V11 M: 79 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE (C09,V11 M: 90 dset: 0 I: 1 3 J: 1 3 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G002) ABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL
-DELETE (C01,V11 M: 84 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE (C01,V11 M: 93 dset: 0 I: 1 9 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
dealloc dynamic grid XABSTRACT ABSTRACT NORMAL NORMAL NORMAL NORMAL NORMAL
@@ -31388,7 +31391,7 @@ show grid
GRID (G012)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 201 r 10S 10N
+ (AX001) LATITUDE 201 r 10S 10N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -31398,7 +31401,7 @@ Dynamic grids:
GRID (G012) use count: 1
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 201 r 10S 10N
+ (AX001) LATITUDE 201 r 10S 10N
normal Z
TIME4 TIME 3mr 16-JAN 06:00 17-MAR 02:58
normal E
@@ -31412,7 +31415,7 @@ Dynamic grids:
normal E
normal F
Dynamic axes:
- AXIS (AX005) use count: 1
+ AXIS (AX001) use count: 1
AXIS (AX012) use count: 1
AXIS (AX020) use count: 1
@@ -31532,7 +31535,7 @@ SHOW GRID temp[d=2,gx=sst[d=1],y=10s:2s:.2] ! implicit Y axis
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31541,7 +31544,7 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5"
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 41 r 10S 2S
+ (AX001) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31550,7 +31553,7 @@ SHOW GRID FFTA(sst[d=1,gx=temp[d=2],y=10s:2s:.2,l=1:5]) ! imposed T axis
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
@@ -31559,7 +31562,7 @@ SHOW GRID SORTI(temp[d=2,gx=sst[d=1],y=10s:2s:.2]) ! abstract X axis
GRID (G018)
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31576,15 +31579,15 @@ SHOW GRID "temp[d=2,gx=sst[d=1],y=10s:2s:.2] + 5",FFTA(sst[d=1,gx=temp[d=2],y=10
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
- (AX005) T (CYC/hour) 2 r 0.00034224 0.00068448
+ (AX001) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
GRID (G018)
name axis # pts start end
ABSTRACT X 99999999 r 1 1.E+08
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31597,7 +31600,7 @@ SHOW GRID
GRID (G018)
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX005) LATITUDE 41 r 10S 2S
+ (AX001) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31609,14 +31612,14 @@ SHOW GRID
GRID (G011)
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
list/j=1:5 j
VARIABLE : J
- axis (AX002)
+ axis (AX004)
SUBSET : 5 points (LATITUDE)
9.2S / 5: 5.00000
9.4S / 4: 4.00000
@@ -31628,7 +31631,7 @@ SHOW GRID MYGRID
GRID MYGRID
name axis # pts start end
COADSX LONGITUDE 180mr 21E 19E(379)
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
ZAXLEVITR1_1 DEPTH (m) 1 r- 0 0
normal T
normal E
@@ -31638,14 +31641,14 @@ Dynamic grids:
GRID (G011) use count: 1
name axis # pts start end
XAXLEVITR1_160 LONGITUDE 160mr 20.5E 179.5E
- (AX002) LATITUDE 41 r 10S 2S
+ (AX004) LATITUDE 41 r 10S 2S
normal Z
(AX011) T (CYC/hour) 2 r 0.00034224 0.00068448
normal E
normal F
Dynamic axes:
AXIS (AX011) use count: 1
- AXIS (AX002) use count: 2
+ AXIS (AX004) use count: 2
AXIS (AX020) use count: 1
@@ -34068,9 +34071,6 @@ SORTN(DAT)
SORTN_STR(STR)
Returns indices of string data, sorted on the N axis in increasing order, null strings at the end
STR: String variable to sort in N (STRING)
-SORTI_STR(DAT)
- Returns indices of string data, sorted on the I axis in increasing order
- DAT: String variable to sort in I (STRING)
sh func/ext sample*
SAMPLEI(TO_BE_SAMPLED,X_INDICES)
sample a field at a list of X indices
@@ -34179,28 +34179,10 @@ SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
XPTS: X values of sample points
YPTS: Y values of sample points
TPTS: T values of sample points
-SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to I indices which may vary in JKL
- I_INDICES: indices upon which to sample
- DAT_TO_SAMPLE: data to sample using I indices
-SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to J indices which may vary in IKL
- J_INDICES: ordered indices
- DAT_TO_SAMPLE: data to sample using J indices
-SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to K indices which may vary in IJL
- K_INDICES: ordered indices
- DAT_TO_SAMPLE: data to sample using K indices
-SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
- Returns data sampled according to L indices which may vary in IJK
- L_INDICES: ordered indices
- DAT_TO_SAMPLE: data to sample using L indices
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
- Returns data sampled at a set of (X,Y,T) points, using nearest grid intersection
- DAT_TO_SAMPLE: variable (x,y,z,t,e,f) to sample
- XPTS: X values of sample points
- YPTS: Y values of sample points
- TPTS: T values of sample points
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -36890,56 +36872,56 @@ show data/var
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V2 V2 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V3 V3 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V4 V4 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V5 V5 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V5 V5 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V6 V6 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V7 V7 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V8 V8 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V9 V9 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
+ V10 V10 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ on grid (G023) with -1.E+34 for missing data
+ X=0.5:7.5
/DELIMITERS="\t,\,"
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
@@ -37038,11 +37020,11 @@ show data
currently SET data sets:
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- A1 A1 1:20480 ... ... ... ... ...
- A2 A2 1:20480 ... ... ... ... ...
- A3 A3 1:20480 ... ... ... ... ...
- A4 A4 1:20480 ... ... ... ... ...
- A5 A5 1:20480 ... ... ... ... ...
+ A1 A1 1:7 ... ... ... ... ...
+ A2 A2 1:7 ... ... ... ... ...
+ A3 A3 1:7 ... ... ... ... ...
+ A4 A4 1:7 ... ... ... ... ...
+ A5 A5 1:7 ... ... ... ... ...
list a1,a2,a3,a4,a5
DATA SET: ./bn_delimited_read_1.dat
@@ -37150,18 +37132,18 @@ show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
file/form=delimited/delimiter=" " bn_delimited_read_2.dat
show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
(Julian days since 1-Jan-1900)
- V2 V2 1:20480 ... ... ... ... ...
+ V2 V2 1:3 ... ... ... ... ...
(Time of day)
- V3 V3 1:20480 ... ... ... ... ...
+ V3 V3 1:3 ... ... ... ... ...
(all values missing)
list v1,v2
@@ -37462,367 +37444,367 @@ show data/full
1> ./bn_delimited_read_CO2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V2 V2 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V3 V3 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V4 V4 1:20 ... ... ... ... ...
(Julian days since 1-Jan-1900)
Data type = NUMERIC
Conversion /TYPE=DATE
- days on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V5 V5 1:20480 ... ... ... ... ...
+ days on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V5 V5 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V6 V6 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V7 V7 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V8 V8 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V9 V9 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V10 V10 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V11 V11 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V11 V11 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V12 V12 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V12 V12 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V13 V13 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V13 V13 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V14 V14 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V14 V14 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V15 V15 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V15 V15 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V16 V16 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V16 V16 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V17 V17 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V17 V17 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V18 V18 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V18 V18 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V19 V19 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V19 V19 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V20 V20 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V20 V20 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V21 V21 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V21 V21 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V22 V22 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V22 V22 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V23 V23 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V23 V23 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V24 V24 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V24 V24 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V25 V25 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V25 V25 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V26 V26 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V26 V26 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V27 V27 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V27 V27 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V28 V28 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V28 V28 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V29 V29 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V29 V29 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V30 V30 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V30 V30 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V31 V31 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V31 V31 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V32 V32 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V32 V32 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V33 V33 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V33 V33 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V34 V34 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V34 V34 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V35 V35 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V35 V35 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V36 V36 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V36 V36 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V37 V37 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V37 V37 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V38 V38 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V38 V38 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V39 V39 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V39 V39 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V40 V40 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V40 V40 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V41 V41 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V41 V41 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V42 V42 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V42 V42 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V43 V43 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V43 V43 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V44 V44 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V44 V44 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V45 V45 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V45 V45 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V46 V46 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V46 V46 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V47 V47 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V47 V47 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V48 V48 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V48 V48 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V49 V49 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V49 V49 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V50 V50 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V50 V50 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V51 V51 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V51 V51 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V52 V52 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V52 V52 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V53 V53 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V53 V53 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V54 V54 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V54 V54 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V55 V55 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V55 V55 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V56 V56 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V56 V56 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V57 V57 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V57 V57 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V58 V58 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V58 V58 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V59 V59 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V59 V59 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V60 V60 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V60 V60 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V61 V61 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V61 V61 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V62 V62 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V62 V62 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V63 V63 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V63 V63 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V64 V64 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V64 V64 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V65 V65 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V65 V65 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V66 V66 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V66 V66 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V67 V67 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V67 V67 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V68 V68 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V68 V68 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V69 V69 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V69 V69 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V70 V70 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V70 V70 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V71 V71 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V71 V71 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
- V72 V72 1:20480 ... ... ... ... ...
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
+ V72 V72 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20481
+ on grid (G022) with -1.E+34 for missing data
+ X=0.5:20.5
/DELIMITERS="\t,\,"
/FORMAT = DELIMITED
@@ -38366,7 +38348,7 @@ set mode stupid
set mode diag
set mem/size=0.05
show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 0.2 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 100
@@ -38380,11 +38362,11 @@ show mem/free
use/ord=x-y test_100x100.nc
list/prec=1 a[i=1:100:10] ! this looks just right!!
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 100 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
strip regrid on X: A --> (G005) @XACT
strip reversing A on Y axis: 1 100 dset: 1
rdstride A C: 8 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -38392,7 +38374,7 @@ list/prec=1 a[i=1:100:10] ! this looks just right!!
-DELETE A M: 1 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
nulrgd A M: 1 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE A M: 2 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
VARIABLE : IF I EQ J THEN 1 ELSE A0
regrid: 10 delta on X
FILENAME : test_100x100.nc
@@ -38504,7 +38486,7 @@ show grid
Last successful data access was on grid (G005)
GRID (G005)
name axis # pts start end
- (AX010) X 10 r 1 91
+ (AX017) X 10 r 1 91
YAX1_100 Y 100 r 1 100
normal Z
normal T
@@ -38514,7 +38496,7 @@ show grid
! should be a diagonal path of steps all the way across the plot
shade a[i=1:100:10]
eval EX#1 C: 4 dset: 1 I: 1 100 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ allocate dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
strip regrid on X: A --> (G005) @XACT
strip reversing A on Y axis: 1 100 dset: 1
rdstride A C: 8 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
@@ -38522,7 +38504,7 @@ shade a[i=1:100:10]
-DELETE A M: 2 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
nulrgd A M: 2 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
-DELETE A M: 3 dset: 1 I: 1 91 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G005) (AX010) YAX1_100 NORMAL NORMAL NORMAL NORMAL
+ dealloc dynamic grid (G005) (AX017) YAX1_100 NORMAL NORMAL NORMAL NORMAL
setting up 2D plot
-DELETE A M: 3 dset: 1 I: 1 10 J: 1 100 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
PPL plot 279 complete
@@ -39961,37 +39943,37 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
!-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:2]
dealloc dynamic grid GFJ3 XAX_SUBSPANORMAL NORMAL TAX_SUBSPANORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- dealloc dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
- strip regrid on X: V2D_REG --> (G008) @XACT
+ allocate dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ strip regrid on X: V2D_REG --> (G002) @XACT
found V2D_REG M: 69 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid V2D_REG M: 70 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G002) (AX004) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
.... 12.0000 14.0000 16.0000 11.0000 13.0000 15.0000 ....
l200n/order=x $2[l=1,i=0:14:7]
!-> list/width=200/nohead/order=x v2d_reg[l=1,i=0:14:7]
............
set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
!-> list/width=200/nohead v2d_reg[i=1,l=1:15:2]
- dealloc dynamic grid (G008) (AX017) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
+ dealloc dynamic grid (G002) (AX014) NORMAL NORMAL TAX_SUBSPANORMAL NORMAL
-DELETE V2D_REG M: 71 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- dealloc dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
+ allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ dealloc dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
- strip regrid on T: V2D_REG --> (G008) @XACT
+ allocate dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
+ strip regrid on T: V2D_REG --> (G002) @XACT
strip moduloing V2D_REG on T axis: 1 15 dset: 1
rdstride V2D_REG C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
doing moduloing V2D_REG on T axis: 1 5 dset: 1
-DELETE V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
nulrgd V2D_REG M: 71 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
-DELETE V2D_REG M: 72 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G008) XAX_SUBSPANORMAL NORMAL (AX014) NORMAL NORMAL
+ dealloc dynamic grid (G002) XAX_SUBSPANORMAL NORMAL (AX004) NORMAL NORMAL
16-JAN-0000 / 1: 11.000
16-MAR-0000 / 2: 71.000
15-MAY-0000 / 3: 131.000
@@ -40490,29 +40472,29 @@ set mode diag; l200n/order=x $2[l=1,i=0:14:2]; set mode/last diag
!-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:2]
dealloc dynamic grid GFJ4 XIRREG_SUBNORMAL NORMAL TIRREG_SUBNORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ allocate dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
strip regrid on X: V2D_IRR --> (G018) @XACT
found V2D_IRR M:146 dset: 1 I: 0 14 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
regrid V2D_IRR M:147 dset: 1 I: 1 8 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G018) (AX014) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
.... 12.0000 14.0000 16.0000 11.0000 12.1000 15.0000 ....
l200n/order=x $2[l=1,i=0:14:7]
!-> list/width=200/nohead/order=x v2d_irr[l=1,i=0:14:7]
............
set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
!-> list/width=200/nohead v2d_irr[i=1,l=1:15:2]
- dealloc dynamic grid (G018) (AX010) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
+ dealloc dynamic grid (G018) (AX017) NORMAL NORMAL TIRREG_SUBNORMAL NORMAL
-DELETE V2D_IRR M:148 dset: 1 I: 1 3 J: -999 -999 K: -999 -999 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
+ allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
+ allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
- allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
+ allocate dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
strip regrid on T: V2D_IRR --> (G018) @XACT
strip moduloing V2D_IRR on T axis: 1 15 dset: 1
rdstride V2D_IRR C: 9 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
@@ -40520,7 +40502,7 @@ set mode diag; l200n $2[i=1,l=1:15:2]; set mode/last diag
-DELETE V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 5 M: -999 -999 N: -999 -999
nulrgd V2D_IRR M:148 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 8 M: -999 -999 N: -999 -999
-DELETE V2D_IRR M:149 dset: 1 I: 1 1 J: -999 -999 K: -999 -999 L: 1 15 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX017) NORMAL NORMAL
+ dealloc dynamic grid (G018) XIRREG_SUBNORMAL NORMAL (AX014) NORMAL NORMAL
16-JAN-0000 / 1: 11.000
15-MAR-0000 / 2: 70.249
15-MAY-0000 / 3: 131.249
@@ -44858,52 +44840,52 @@ let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
load a
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
eval A C: 6 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
- strip regrid on X: TAUX --> (G023) @XACT
+ allocate dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
+ strip regrid on X: TAUX --> (G022) @XACT
rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
nulrgd TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE TAUX M:146 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
can mem/all
-DELETE A M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE TAUX M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
def grid/like=taux agrid
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
getgrid EX#1 C: 6 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6 NORMAL NORMAL
set mode diag
let a = taux[i=50:55:2,j=44:50:3,l=1:168:8]
dealloc dynamic grid PS2DU1 PSXU PSYU NORMAL TIME6 NORMAL NORMAL
- dealloc dynamic grid (G023) (AX023) (AX022) NORMAL (AX025) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX001) (AX023) NORMAL (AX025) NORMAL NORMAL
load a
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
getgrid A C: 7 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
eval A C: 6 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
- allocate dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- strip regrid on X: TAUX --> (G023) @XACT
+ allocate dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ strip regrid on X: TAUX --> (G022) @XACT
rdstride TAUX C: 9 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
nulrgd TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE TAUX M:151 dset: 1 I: 50 54 J: 44 50 K: -999 -999 L: 1 161 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
can mem/all
-DELETE TAUX M:146 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
-DELETE A M:151 dset: 1 I: 1 3 J: 1 3 K: -999 -999 L: 1 21 M: -999 -999 N: -999 -999
can data/all
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
- dealloc dynamic grid (G023) (AX022) (AX023) NORMAL (AX009) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
+ dealloc dynamic grid (G022) (AX023) (AX001) NORMAL (AX016) NORMAL NORMAL
! Some tests taken from bn_strides_revs_perms.jnl but with
! DEFINE GRID/LIKE= testing permuting and reversing axes
@@ -44971,16 +44953,16 @@ LIST VAR[i=2:4:2,j=1:3:2]
dealloc dynamic grid (G014) (AX040) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
-DELETE VAR M:147 dset: 1 I: 1 2 J: 2 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G014) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
nulrgd VAR M:146 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
FILENAME : bn_strides.cdf
@@ -45001,19 +44983,19 @@ CANC MEM/ALL
! modulo requests cannot use strides (as this example shows)
set axis/modulo XAX1_4
LIST VAR[I=1:10:3,j=1,k=1,l=1] ! 1, 4, 7(3), 10(2)
- dealloc dynamic grid (G014) (AX005) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) (AX041) ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G014) @XACT
strip moduloing VAR on X axis: 1 10 dset: 1
reading VAR M:151 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
doing moduloing VAR on X axis: 1 4 dset: 1
regrid VAR M:147 dset: 1 I: 1 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 3 delta on X
FILENAME : bn_strides.cdf
@@ -45034,7 +45016,7 @@ cancel axis/modulo XAX1_4
! strides applied to more than one axis need special attention in IS_REGRID
LIST VAR[i=2:4:2,j=1:3:2]
- dealloc dynamic grid (G014) (AX005) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX009) YAX1_3 ZAX1_2 TAX1_1 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
@@ -45063,16 +45045,16 @@ LIST VAR[i=2:6:2,j=1:5:2]
dealloc dynamic grid (G014) (AX041) (AX040) ZAX1_2 TAX1_1 NORMAL NORMAL
-DELETE VAR M:147 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
eval EX#1 C: 4 dset: 1 I: 3 6 J: 2 4 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ allocate dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
strip regrid on X: VAR --> (G014) @XACT
rdstride VAR C: 7 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
nulrgd VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
-DELETE VAR M:147 dset: 1 I: 2 4 J: 1 3 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J*10 + I
regrid: 2 delta on X, 2 delta on Y
FILENAME : bn_strides.cdf
@@ -45089,7 +45071,7 @@ LIST VAR[i=2:6:2,j=1:5:2]
! test sub-region selection on strides axis
let a = bigvar[i=1:40:5]
- dealloc dynamic grid (G014) (AX041) (AX005) ZAX1_2 TAX1_1 NORMAL NORMAL
+ dealloc dynamic grid (G014) (AX041) (AX009) ZAX1_2 TAX1_1 NORMAL NORMAL
-DELETE VAR M:151 dset: 1 I: 1 2 J: 1 2 K: 1 2 L: 1 1 M: -999 -999 N: -999 -999
list/j=1/k=1/l=1 a[i=3:5]
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
@@ -45164,17 +45146,17 @@ cancel mem/all
LIST/order=x/j=1/k=1/l=1 UNEVENVAR[i=2:4:2]
dealloc dynamic grid (G001) (AX041) (AX040) ZAX1_20 TAX1_10 NORMAL NORMAL
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 1 I: 3 6 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- allocate dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ allocate dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
strip regrid on X: UNEVENVAR --> (G001) @XACT
rdstride UNE-NVAR C: 8 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
nulrgd UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
-DELETE UNE-NVAR M:151 dset: 1 I: 2 4 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
VARIABLE : L*1000 + K*100 + J[GY=YUNEVEN]*10 + I[GX=XUNEVEN]
regrid: on X
FILENAME : bn_strides.cdf
@@ -45192,7 +45174,7 @@ set region/i=3:6/j=2:4/k=1:2/l=1
use/order=yx bn_strides
list bigvar[i=3:9:2, j=2:6:2, k=1:3:2]
- dealloc dynamic grid (G001) (AX005) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
+ dealloc dynamic grid (G001) (AX009) YUNEVEN ZAX1_6 TAX1_4 NORMAL NORMAL
-DELETE UNE-NVAR M:147 dset: 1 I: 1 2 J: 1 1 K: 1 1 L: 1 1 M: -999 -999 N: -999 -999
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid (G001) (AX040) (AX042) (AX043) TAX1_10 NORMAL NORMAL
@@ -46556,7 +46538,7 @@ set axis/units=feet `temp,return=zaxis`
show axis `temp,return=zaxis`
!-> show axis PSZT
name axis # pts start end
- PSZT Z (FEET) 27 i- 5 3824
+ PSZT Z (feet) 27 i- 5 3824
Axis span (to cell edges) = 4149
! unrecognized units
@@ -46565,7 +46547,7 @@ set axis/units="something" `temp,return=xaxis`
show axis `temp,return=xaxis`
!-> show axis PSXT1
name axis # pts start end
- PSXT1 X (SOMETHING) 160mr 130.5 289.5
+ PSXT1 X (something) 160mr 130.5 289.5
Axis span (to cell edges) = 160 (modulo length = 360)
! restore lon
@@ -46582,7 +46564,7 @@ set axis/units=something `temp,return=xaxis`
show axis `temp,return=xaxis`
!-> show axis PSXT1
name axis # pts start end
- PSXT1 X (SOMETHING) 160mr 130.5 289.5
+ PSXT1 X (something) 160mr 130.5 289.5
Axis span (to cell edges) = 160 (modulo length = 360)
! restore lon using word DEG
@@ -46602,7 +46584,7 @@ list/x=130w/y=1/k=1/L=1:5 temp
SUBSET : 5 points (TIME)
LONGITUDE: 130.5W
LATITUDE : 0.833N
- Z (ZORRO): 5
+ Z (zorro): 5
130.5W
100
17-AUG-1982 12 / 1: 25.9777
@@ -46617,9 +46599,9 @@ set axis/units=meters `temp,return=yaxis`
list/x=222/k=1/l=1/y=-0.5:0.5 temp
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- SUBSET : 4 points (Y (METERS))
+ SUBSET : 4 points (Y (meters))
LONGITUDE: 138.5W
- Z (ZORRO): 5
+ Z (zorro): 5
TIME : AUG-1982
138.5W
92
@@ -46640,7 +46622,7 @@ list/x=222/k=1/l=1/y=-0.5:0.5 temp
FILENAME : gt4d011.cdf
SUBSET : 4 points (LATITUDE)
LONGITUDE: 138.5W
- Z (ZORRO): 5
+ Z (zorro): 5
TIME : AUG-1982
138.5W
92
@@ -46655,10 +46637,10 @@ set axis/units=meters `temp,return=taxis`
list/x=130w/y=1/k=1/l=1:5 temp
VARIABLE : TEMPERATURE (deg. C)
FILENAME : gt4d011.cdf
- SUBSET : 5 points (T (METERS))
+ SUBSET : 5 points (T (meters))
LONGITUDE: 130.5W
LATITUDE : 0.833N
- Z (ZORRO): 5
+ Z (zorro): 5
130.5W
100
22702 / 1: 25.9777
@@ -46673,9 +46655,9 @@ show grid temp
GRID PS3DT2
name axis # pts start end
PSXT1 LONGITUDE 160mr 130.5E 70.5W
- PSYT Y (SECONDS) 100 i -28.836 48.568
- PSZT Z (ZORRO) 27 i- 5 3824
- TIME11 T (METERS) 25 r 22702 26206
+ PSYT Y (seconds) 100 i -28.836 48.568
+ PSZT Z (zorro) 27 i- 5 3824
+ TIME11 T (meters) 25 r 22702 26206
normal E
normal F
@@ -48324,11 +48306,11 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver. 6.861
+ LAB 1 8.000E+00 7.200E+00 0.060 0 SYSTEM @ASFERRET Ver. 6.925
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 2 8.000E+00 7.100E+00 0.060 0 SYSTEM @ASNOAA/PMEL TMAP
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS26-MAR-2014 15:38:39
+ LAB 3 8.000E+00 7.000E+00 0.060 0 SYSTEM @AS07-OCT-2014 10:42:50
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 4 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLONGITUDE : 179E
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
@@ -49444,11 +49426,11 @@ let the_data_var = {4,5,4}
list/format=comma country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY,ID,AA,BB,NEWCOUNTRY,THE_DATA_VAR
1 / 1:"JP",1,4000,1000500,"w",4
@@ -49457,11 +49439,11 @@ list/format=comma country, id, aa, bb, newcountry, the_data_var
list/format=tab/norow country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY ID AA BB NEWCOUNTRY THE_DATA_VAR
"JP" 1 4000 1000500 "w" 4
@@ -49605,7 +49587,7 @@ GO bn_long_revision_num.jnl
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.861"
+FERRET_VERSION = "6.925"
! history attribute
let a = 12
@@ -49623,7 +49605,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET version6.861:
+ Commands in Program FERRET version6.925:
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
@@ -49638,7 +49620,7 @@ sho command
SET VARIABLE/TITLE/UNIT/GRID/BAD/DATASET/NAME/SCALEFAC/OFFSET/OUTTYPE/SIGMA
/CURVILIN
SET GRID/SAVE/RESTORE
- SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE
+ SET AXIS/MODULO/DEPTH/CALENDAR/T0/UNITS/STRIDE/OFFSET/REGULAR/OUTTYPE/NAME
SET MEMORY/SIZE
SET ATTRIBUT/TYPE/DATASET/OUTPUT/LIKE/QUIET
SET NCCACHE/SIZE/NELEMS/PREEMPT
@@ -49759,7 +49741,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "26-Mar-14:15:37"
+WIN_TITLE = "7-Oct-14:10:41"
set win/title="set the title"
sho sym win_title
@@ -49777,7 +49759,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title="26-Mar-14:15:37"
+ !-> set win/title=" 7-Oct-14:10:41"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -49786,16 +49768,16 @@ set win/title="($session_date):($session_time)"
! If so substitute another string.
DEFINE SYMBOL the_date = ($session_date"SESSION_DATE")
- !-> DEFINE SYMBOL the_date = 26-Mar-14
+ !-> DEFINE SYMBOL the_date = 7-Oct-14
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:37
+ !-> DEFINE SYMBOL the_time = 10:41
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="26-Mar-14:15:37"
+ !-> SET WIN/TITLE="7-Oct-14:10:41"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "26-Mar-14:15:37"
+WIN_TITLE = "7-Oct-14:10:41"
GO bn_reset
cancel mode verify
@@ -52864,10 +52846,6 @@ IS_ELEMENT_OF_STR_N(VAR,VALUES)
Returns 1 if 1st arg contains any of the values in 2nd arg, 2 if case-insensitve match, else 0
VAR: string (STRING)
VALUES: strings to search (STRING)
-IS_ELEMENT_OF_STR(VAR,VALUES)
- Returns 1 if first argument contains any of the values in argument 2, else 0
- VAR: data to test (STRING)
- VALUES: strings to search for (STRING)
! FILL on data with subspan modulo axis, got wrong data
GO bn_reset
@@ -53472,8 +53450,6 @@ yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
XBOXLO XBOXHI X
I / *: -2.000 2.000 0.0000
-Unable to allocate 200.0 Mwords of memory.
-Restoring previous memory of 25.6 Mwords.
yes? def ax/x/bounds xax = {0,3,5},{-2,2,2,4,4,6}
yes? list xboxlo[gx=xax],xboxhi[gx=xax],x[gx=xax]
X: -2 to 6
@@ -54103,8 +54079,8 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -54148,8 +54124,8 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(PSXT191_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -54540,12 +54516,12 @@ use coads_climatology
set axis/stride=6/offset=5 `sst,return=xaxis`
!-> set axis/stride=6/offset=5 COADSX
show axis `sst,return=xaxis`
- !-> show axis (AX005)
+ !-> show axis (AX009)
name axis # pts start end
- (AX005) LONGITUDE 30mr 31E 19E(379)
+ (AX009) LONGITUDE 30mr 31E 19E(379)
Axis span (to cell edges) = 360 (modulo length = axis span)
cancel axis/stride `sst,return=xaxis`
- !-> cancel axis/stride (AX005)
+ !-> cancel axis/stride (AX009)
!--- 8.2 stride value is not an integer factor of the axis length
! warning: it may lose modulo property
@@ -54769,9 +54745,9 @@ show axis `sst,return=xaxis`
(AX051) LONGITUDE 90mr 21E 17E(377)
Axis span (to cell edges) = 360 (modulo length = axis span)
show axis `sst,return=yaxis`
- !-> show axis (AX005)
+ !-> show axis (AX009)
name axis # pts start end
- (AX005) LATITUDE 45 r 89S 87N
+ (AX009) LATITUDE 45 r 89S 87N
Axis span (to cell edges) = 180
show axis `sst,return=taxis`
!-> show axis (AX048)
@@ -55349,8 +55325,6 @@ LEV_MIN = "-0.3"
LEV_MAX = "1.1"
LEV_NUM = "28"
LEV_DEL = "0.05"
-Unable to allocate 500000.0 Mwords of memory.
-Restoring previous memory of 0.2 Mwords.
set view lr; shade/lev a; sh sym lev*
LEV_TEXT = ""
LEV_MIN = "-0.3"
@@ -55401,6 +55375,8 @@ LIST/NOHEAD/I=91:94/J=37/K=1/L=1 temp,salt
! Previously this did not have the effect of changing the precision.
LIST/NOHEAD/I=91:94/J=37/K=1/L=1/PREC=3 temp,salt
139.5W / 91: 27.3 2.37E-04
+Unable to allocate 500000.0 Mwords of memory.
+Restoring previous memory of 0.2 Mwords.
138.5W / 92: 27.3 2.38E-04
137.5W / 93: 27.2 2.38E-04
136.5W / 94: 27.2 2.38E-04
@@ -55499,7 +55475,7 @@ set mem/siz=90
sh sym ferret_memory
FERRET_MEMORY = "90"
show memory
- Current size of FERRET memory cache: 90 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 90 MegaWords (1 word = 8 bytes)
set mem/size=0.05
sh sym ferret_memory
@@ -55511,7 +55487,7 @@ FERRET_MEMORY = "0.2"
set mem/siz=25.6 ! return to the default setting
show memory
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
GO bn_reset
cancel mode verify
@@ -55773,31 +55749,38 @@ EXPND_BY_LEN_STR(var,len,nx)
FC_ISUBSET(index_list,lengths,nx,FullData)
EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+SEPARATE(A,Rowsize,FixLongitudes)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
-BIN_INDEX_WT(INDEX,WT,INDXMAX)
DATES(Offsets)
-EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EFSTRINGS(--)
FACTORIAL(A)
FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
-IS_ELEMENT_OF_STR(VAR,VALUES)
+LENGTH_OF_STRINGS(--)
+MAXSTRLEN(A)
PASS_THRU(A)
+PASS_THRU_STRING(A)
PERCENT_GOOD_T(A)
-SAMPLEI_MULTI(I_INDICES,DAT_TO_SAMPLE)
-SAMPLEJ_MULTI(J_INDICES,DAT_TO_SAMPLE)
-SAMPLEK_MULTI(K_INDICES,DAT_TO_SAMPLE)
-SAMPLEL_MULTI(L_INDICES,DAT_TO_SAMPLE)
-SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
-SORTI_STR(DAT)
+PICK_A_STRING(A,N)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SEPARATE(A,Rowsize,FixLongitudes)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
STORAGE(A)
STRING_ARG(Flags,NString)
+STRING_CAT3(A,B,C)
+STRING_LEN_SUM(S1,S2)
+STRINGS_AS_ARGS(S1,S2,NCHAR)
+STR_MISSING(MASK,STR,REPL)
STUDENT_T_CUTOFF(P,nf)
SUBTRACT(A,B)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
GO bn_reset
@@ -58350,7 +58333,7 @@ SORTI(DAT)
T: inherited from argument(s)
E: inherited from argument(s)
F: inherited from argument(s)
- DAT: variable to sort in I
+ DAT: variable to sort in I (FLOAT)
Influence on output axes:
X: no influence (indicate argument limits with "[]")
Y: passed to result grid
@@ -60007,10 +59990,10 @@ SH GRID am
GO bn_clock_syms
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "45.3061"
-CLOCK_SECS = "69.102"
-CURRENT_DATE = "26-Mar-14"
-CURRENT_TIME = "15:39:02"
+DELTA_CPU = "47.1998"
+CLOCK_SECS = "93.535"
+CURRENT_DATE = " 7-Oct-14"
+CURRENT_TIME = "10:43:20"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -60019,8 +60002,8 @@ CURRENT_TIME = "15:39:02"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.043993"
-CLOCK_SECS = "69.221"
+DELTA_CPU = "0.040994"
+CLOCK_SECS = "93.638"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -60034,60 +60017,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.33195
+ !-> DEFINE VARIABLE ten_plots = 0.322951
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.001"
-CLOCK_SECS = "69.995"
+DELTA_CPU = "0"
+CLOCK_SECS = "94.678"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "69.996"
+CLOCK_SECS = "94.679"
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.036994
- !-> DEFINE VARIABLE sumcpu =0.036994
+ !-> DEFINE VARIABLE dt = 0.034995
+ !-> DEFINE VARIABLE sumcpu =0.034995
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.036994
- !-> DEFINE VARIABLE sumcpu =0.073988
+ !-> DEFINE VARIABLE dt = 0.038994
+ !-> DEFINE VARIABLE sumcpu =0.073989
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.035994
- !-> DEFINE VARIABLE sumcpu =0.109982
+ !-> DEFINE VARIABLE dt = 0.032995
+ !-> DEFINE VARIABLE sumcpu =0.106984
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.144977
+ !-> DEFINE VARIABLE dt = 0.035995
+ !-> DEFINE VARIABLE sumcpu =0.142979
!-> REPEAT: K=5
!-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.177972
+ !-> DEFINE VARIABLE sumcpu =0.175974
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.034995
- !-> DEFINE VARIABLE sumcpu =0.212967
+ !-> DEFINE VARIABLE dt = 0.033994
+ !-> DEFINE VARIABLE sumcpu =0.209968
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.246962
+ !-> DEFINE VARIABLE dt = 0.037995
+ !-> DEFINE VARIABLE sumcpu =0.247963
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.034994
- !-> DEFINE VARIABLE sumcpu =0.281956
+ !-> DEFINE VARIABLE dt = 0.037994
+ !-> DEFINE VARIABLE sumcpu =0.285957
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.036994
- !-> DEFINE VARIABLE sumcpu =0.31895
+ !-> DEFINE VARIABLE dt = 0.035994
+ !-> DEFINE VARIABLE sumcpu =0.321951
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.036995
- !-> DEFINE VARIABLE sumcpu =0.355945
+ !-> DEFINE VARIABLE dt = 0.032996
+ !-> DEFINE VARIABLE sumcpu =0.354947
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.355945
-0.355945
+ !-> MESSAGE/CONTINUE 0.354947
+0.354947
sh sym CLOCK_SECS
-CLOCK_SECS = "71.231"
+CLOCK_SECS = "96.227"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "26-Mar-14"
-SESSION_TIME = "15:37"
-CURRENT_DATE = "26-Mar-14"
-CURRENT_TIME = "15:39:04"
+SESSION_DATE = " 7-Oct-14"
+SESSION_TIME = "10:41"
+CURRENT_DATE = " 7-Oct-14"
+CURRENT_TIME = "10:43:23"
! ******** V6.3 Additions below ***********
@@ -61319,11 +61302,11 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890 at ave]
strip regrid on T: TEMP --> ZNTERMED @AVE
reading TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
regrid TEMP M: 42 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
-DELETE TEMP M: 42 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 42 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
regrid: G5_10G00ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 on X at AAV, on Y at AAV*
FILENAME : gtsa056_1.cdf
@@ -61343,13 +61326,13 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gx=g5_10g00abcdefghijkl
strip regrid on Z: TEMP --> YNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @LIN
found TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid TEMP M: 32 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
-DELETE TEMP M: 32 dset: 1 I: 95 106 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
regrid TEMP M: 32 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 95 106 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
regrid: G5_10 on X at AVE, on Y at LIN, on Z at LIN, on T at LIN
FILENAME : gtsa056_1.cdf
@@ -61369,11 +61352,11 @@ LIST temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890,gt=g5_10g00abcdefghijkl
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @ASN
found TEMP M: 43 dset: 1 I: 95 106 J: 45 50 K: 1 2 L: 2 5 M: -999 -999 N: -999 -999
- regrid TEMP M: 34 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid TEMP M: 29 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
- -DELETE TEMP M: 34 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
+ -DELETE TEMP M: 36 dset: 1 I: 100 101 J: 45 50 K: 1 2 L: 2 3 M: -999 -999 N: -999 -999
regrid XY
- regrid TEMP M: 34 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
+ regrid TEMP M: 36 dset: 1 I: 12 12 J: 45 49 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
-DELETE TEMP M: 29 dset: 1 I: 100 101 J: 45 50 K: 1 1 L: 2 3 M: -999 -999 N: -999 -999
VARIABLE : TEMPERATURE (deg. C)
regrid: G5_10 on X at LIN, on Y at LIN, on Z at LIN, on T at ASN
@@ -61402,7 +61385,7 @@ plot temp
getgrid EX#1 C: 5 dset: 2 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
allocate dynamic grid PS3DT1 PSXT1 PSYT1 PSZT2 TIME14 NORMAL NORMAL
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
setting up plot
PPL plot 753 complete
plot/over temp[g=u]
@@ -61412,12 +61395,12 @@ plot/over temp[g=u]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 28 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 27 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
@@ -61429,7 +61412,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @LIN
strip regrid on T: TEMP --> XNTERMED @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 23 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
@@ -61444,7 +61427,7 @@ plot/over temp[g=g5_10g00abcdefghijklmnopqrstuvwxyz1234567890]
strip regrid on X: TEMP --> G5_10G00ABCDEFGH @LIN
strip regrid on Z: TEMP --> XNTERMED @LIN
strip regrid on T: TEMP --> ZNTERMED @LIN
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
regrid TEMP M: 26 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
-DELETE TEMP M: 23 dset: 2 I: 50 51 J: 45 46 K: 1 2 L: 2 104 M: -999 -999 N: -999 -999
@@ -61460,12 +61443,12 @@ plot/over temp[g=u at ave]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 170 M: -999 -999 N: -999 -999
strip moduloing TEMP on T axis: 3 170 dset: 2
strip regrid on X: TEMP --> PS3DU1 @AAV
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 26 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 3 168 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 3 168 dset: 2
strip regrid on X: TEMP --> PS3DU1 @AAV
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 19 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 1 2 M: -999 -999 N: -999 -999
doing moduloing TEMP on T axis: 1 2 dset: 2
@@ -61477,7 +61460,7 @@ plot/over temp[g=g5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5dayg5day at ave]
eval EX#1 C: 4 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
strip regrid on X: TEMP --> G5DAYG5DAYG5DAYG @AAV
strip regrid on T: TEMP --> XNTERMED @AVE
- found TEMP M: 36 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
+ found TEMP M: 34 dset: 2 I: 50 51 J: 45 50 K: 1 2 L: 1 172 M: -999 -999 N: -999 -999
regrid TEMP M: 18 dset: 2 I: 50 51 J: 45 46 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
regrid XY
regrid TEMP M: 17 dset: 2 I: 50 50 J: 45 45 K: 1 1 L: 2 104 M: -999 -999 N: -999 -999
@@ -62607,65 +62590,65 @@ sp cat the_xml_file.xml
<value>8765.82</value>
</attribute>
</axis>
-<axis name="ZAXLEVIT191_1">
+<axis name="XAX_LEV9421_380">
<attribute name="direction" type="char">
- <value><![CDATA[K]]></value>
+ <value><![CDATA[I]]></value>
</attribute>
<attribute name="units" type="char">
- <value><![CDATA[METERS]]></value>
+ <value><![CDATA[degrees_east]]></value>
</attribute>
<attribute name="length" type="short">
- <value>1</value>
+ <value>360</value>
</attribute>
<attribute name="start" type="double">
- <value>0</value>
+ <value>20.5</value>
</attribute>
<attribute name="end" type="double">
- <value>0</value>
-</attribute>
-<attribute name="positive" type="char">
- <value><![CDATA[down]]></value>
+ <value>379.5</value>
</attribute>
<attribute name="point_spacing" type="char">
<value><![CDATA[even]]></value>
</attribute>
<attribute name="modulo" type="char">
- <value>no</value>
+ <value><![CDATA[yes]]></value>
</attribute>
<attribute name="infile_datatype" type="char">
<value><![CDATA[DOUBLE]]></value>
</attribute>
<attribute name="orig_file_axname" type="char">
- <value><![CDATA[ZAXLEVIT191_1]]></value>
+ <value><![CDATA[XAX_LEV9421_380]]></value>
</attribute>
</axis>
-<axis name="XAX_LEV9421_380">
+<axis name="ZAXLEVIT191_1">
<attribute name="direction" type="char">
- <value><![CDATA[I]]></value>
+ <value><![CDATA[K]]></value>
</attribute>
<attribute name="units" type="char">
- <value><![CDATA[degrees_east]]></value>
+ <value><![CDATA[METERS]]></value>
</attribute>
<attribute name="length" type="short">
- <value>360</value>
+ <value>1</value>
</attribute>
<attribute name="start" type="double">
- <value>20.5</value>
+ <value>0</value>
</attribute>
<attribute name="end" type="double">
- <value>379.5</value>
+ <value>0</value>
+</attribute>
+<attribute name="positive" type="char">
+ <value><![CDATA[down]]></value>
</attribute>
<attribute name="point_spacing" type="char">
<value><![CDATA[even]]></value>
</attribute>
<attribute name="modulo" type="char">
- <value><![CDATA[yes]]></value>
+ <value>no</value>
</attribute>
<attribute name="infile_datatype" type="char">
<value><![CDATA[DOUBLE]]></value>
</attribute>
<attribute name="orig_file_axname" type="char">
- <value><![CDATA[XAX_LEV9421_380]]></value>
+ <value><![CDATA[ZAXLEVIT191_1]]></value>
</attribute>
</axis>
<axis name="YAX_LEV94">
@@ -62936,7 +62919,7 @@ define axis/t=1-jan-2010:30-mar-2010:1/units=days tin
define axis/t=1-jan-2010:30-mar-2010:10/units=days tout
let tt = t[gt=tout,L=1:10]
sh grid tt
- GRID (G089)
+ GRID (G091)
name axis # pts start end
normal X
normal Y
@@ -63143,7 +63126,7 @@ list/x=2:3 sgrid
let tpts = 39798 + 87*RANDU(I)
show grid tt
- GRID (G103)
+ GRID (G089)
name axis # pts start end
X10 X 201 r 0 10
Y10 Y 201 r 0 10
@@ -64063,9 +64046,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.861 "
- 3 / 3:" ! Linux 2.6.18-371.4.1.el5 64-bit - 03/26/14"
- 4 / 4:" ! 26-Mar-14 15:37 "
+ 2 / 2:" ! FERRET v6.925 "
+ 3 / 3:" ! Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14"
+ 4 / 4:" ! 7-Oct-14 10:41 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -64127,23 +64110,24 @@ sh trans
variable transforms e.g.SST[T=1-jan:15-mar at DDC]
code description code description
---- ----------- ---- -----------
- @ITP interpolated @SPZ Parzen smoothed
- @AVE averaged @FAV ave-filled
- @VAR variance @FLN linear-filled
- @SUM summed @FNR nearest-filled
- @RSU running sum @NGD number of valid
- @SHF shifted @NBD number flagged bad
- @MIN minimum @LOC location
- @MAX maximum @WEQ weighted equal
- @DDC centered derivative @CDA closest dist above
- @DDF forward derivative @CDB closest dist below
- @DDB backwards derivative @CIA closest index above
- @DIN integrated @CIB closest index below
- @IIN indef. integ. @EVN event mask
- @SBX box smoothed @MED median smoothed
- @SBN binomial smoothed @SMX maximum smoothed
- @SWL Welch smoothed @SMN minimum smoothed
- @SHN Hanning smoothed
+ @ITP interpolated @FAV ave-filled
+ @AVE averaged @FLN linear-filled
+ @VAR variance @FNR nearest-filled
+ @SUM summed @NGD number of valid
+ @RSU running sum @NBD number flagged bad
+ @SHF shifted @LOC location
+ @MIN minimum @WEQ weighted equal
+ @MAX maximum @CDA closest dist above
+ @DDC centered derivative @CDB closest dist below
+ @DDF forward derivative @CIA closest index above
+ @DDB backwards derivative @CIB closest index below
+ @DIN integrated @EVN event mask
+ @IIN indef. integ. @MED median smoothed
+ @SBX box smoothed @SMX maximum smoothed
+ @SBN binomial smoothed @SMN minimum smoothed
+ @SWL Welch smoothed @STD standard deviation
+ @SHN Hanning smoothed @WGT weights for avg,int
+ @SPZ Parzen smoothed
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
@@ -66286,7 +66270,7 @@ let a = x[gx=0:2:1]; save/clob/file=a1.nc a
sho grid/x a
GRID (G101)
name axis # pts start end
- (AX128) X 3 r 0 2
+ (AX129) X 3 r 0 2
normal Y
normal Z
normal T
@@ -66302,7 +66286,7 @@ let a = x[gx=1:3:1]; save/clob/file=a2.nc a
sho grid/x a
GRID (G101)
name axis # pts start end
- (AX120) X 3 r 1 3
+ (AX116) X 3 r 1 3
normal Y
normal Z
normal T
@@ -66323,14 +66307,14 @@ can var/all; can dat/all
use a1
list x[gx=a[d=1]]
VARIABLE : X
- axis AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
2 / 3: 2.000
list x[gx=a[d=1,i=1:3]]
VARIABLE : X
- axis AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66345,7 +66329,7 @@ use a2
list x[gx=a[d=1]]
VARIABLE : X
- axis AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66354,7 +66338,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 AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66370,7 +66354,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 AX128
+ axis AX129
SUBSET : 3 points (X)
0 / 1: 0.000
1 / 2: 1.000
@@ -66533,40 +66517,40 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.784
-randu2_randn2 0.043
-randu2_randn2 0.635
-randu2_randn2 0.230
-randu2_randn2 0.359
+randu2_randn2 0.712
+randu2_randn2 0.201
+randu2_randn2 0.650
+randu2_randn2 0.382
+randu2_randn2 0.609
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.333
-randu2_randn2 0.964
-randu2_randn2 0.686
-randu2_randn2 0.545
-randu2_randn2 0.931
+randu2_randn2 0.262
+randu2_randn2 0.997
+randu2_randn2 0.638
+randu2_randn2 0.693
+randu2_randn2 0.167
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.227
-randu2_randn2 0.189
-randu2_randn2 0.115
-randu2_randn2 0.929
-randu2_randn2 0.823
-randu2_randn2 0.246
+randu2_randn2 0.833
+randu2_randn2 0.409
+randu2_randn2 0.953
+randu2_randn2 0.533
+randu2_randn2 0.222
+randu2_randn2 0.745
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.055
-randu2_randn2 0.504
-randu2_randn2 0.065
-randu2_randn2 0.168
-randu2_randn2 0.230
-randu2_randn2 0.900
+randu2_randn2 0.917
+randu2_randn2 0.701
+randu2_randn2 0.236
+randu2_randn2 0.034
+randu2_randn2 0.841
+randu2_randn2 0.972
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66591,40 +66575,40 @@ randu2_randn2 0.900
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 1.084
-randu2_randn2 0.088
-randu2_randn2 -1.807
-randu2_randn2 -1.326
-randu2_randn2 0.638
+randu2_randn2 0.240
+randu2_randn2 -1.279
+randu2_randn2 -0.155
+randu2_randn2 -0.377
+randu2_randn2 2.940
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.364
-randu2_randn2 0.101
-randu2_randn2 1.394
-randu2_randn2 1.247
-randu2_randn2 -0.634
+randu2_randn2 -0.961
+randu2_randn2 -0.963
+randu2_randn2 1.489
+randu2_randn2 0.470
+randu2_randn2 1.017
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -2.085
-randu2_randn2 0.109
-randu2_randn2 0.078
-randu2_randn2 -1.286
-randu2_randn2 -0.903
-randu2_randn2 -0.031
+randu2_randn2 -0.310
+randu2_randn2 0.844
+randu2_randn2 0.924
+randu2_randn2 -0.357
+randu2_randn2 0.229
+randu2_randn2 1.450
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 1.979
-randu2_randn2 -0.937
-randu2_randn2 -0.895
-randu2_randn2 0.456
-randu2_randn2 0.406
-randu2_randn2 0.199
+randu2_randn2 0.010
+randu2_randn2 -1.172
+randu2_randn2 1.298
+randu2_randn2 1.144
+randu2_randn2 0.021
+randu2_randn2 0.230
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -66649,14 +66633,14 @@ randu2_randn2 -0.124
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.276 1.276 0.849
-randu2_randn2 1.264 1.264 0.849
-randu2_randn2 0.849 0.849 0.214
-randu2_randn2 0.214 0.214 0.292
-randu2_randn2 -0.219 -0.219 0.292
-randu2_randn2 -0.456 -0.219 0.292
-randu2_randn2 -0.028 -0.028 0.292
-randu2_randn2 0.292 0.292 0.292
+randu2_randn2 1.199 1.199 0.549
+randu2_randn2 1.055 1.055 0.549
+randu2_randn2 0.549 0.549 -0.127
+randu2_randn2 -0.208 -0.127 0.549
+randu2_randn2 -0.127 -0.208 0.549
+randu2_randn2 -0.857 -0.262 0.549
+randu2_randn2 -0.262 -0.262 0.549
+randu2_randn2 0.759 0.759 0.759
GO bn_reset
cancel mode verify
@@ -71109,10 +71093,10 @@ list a2[ge=eoffset at ave, gf=fax4day at ave]
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
-DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
-DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
@@ -71154,10 +71138,10 @@ list a2[ge=eoffset at sum, gf=fax4day at sum]
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
pseudo _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
pseudo _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
-DELETE _F M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
-DELETE _E M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
regrid A2 M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
@@ -71199,10 +71183,10 @@ list a2[ge=eoffset at var, gf=fax4day at var]
eval A2 C: 8 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 48
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
pseudo _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
-DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 48
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL F2PT
-DELETE _E M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: -999 -999
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL E2PT NORMAL
regrid A2 M: 70 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: 1 2 N: 1 16
@@ -71408,18 +71392,18 @@ list afcst[gf=ehour at max]
-DELETE _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
getgrid EX#1 C: 5 dset: 1 I: 1 1 J: 1 1 K: 1 1 L: 1 1 M: 1 1 N: 1 1
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
eval EX#1 C: 4 dset: 1 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- allocate dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
- strip regrid on F: AFCST --> (G106) @MAX
+ allocate dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ strip regrid on F: AFCST --> (G103) @MAX
eval AFCST C: 7 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
allocate dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
pseudo _F M: 74 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
dealloc dynamic grid (G096) NORMAL NORMAL NORMAL NORMAL NORMAL EDAY
regrid AFCST M: 46 dset: 0 I: -999 -999 J: -999 -999 K: -999 -999 L: -999 -999 M: -999 -999 N: 1 5
- dealloc dynamic grid (G106) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
+ dealloc dynamic grid (G103) NORMAL NORMAL NORMAL NORMAL NORMAL EHOUR
VARIABLE : _F[GF=EDAY]
regrid: 24 hour on F at MAX
SUBSET : 5 points (FORECAST)
@@ -71430,8 +71414,8 @@ list afcst[gf=ehour at max]
05-JAN-1990 00 / 5: 32497.0
show grid
Default grid for DEFINE VARIABLE is ABSTRACT
- Last successful data access was on grid (G106)
- GRID (G106)
+ Last successful data access was on grid (G103)
+ GRID (G103)
name axis # pts start end
normal X
normal Y
@@ -71464,7 +71448,7 @@ 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 (G106) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ allocate dynamic grid (G103) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
strip limits reconciliation : EX#1
eval EX#1 C: 5 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
strip --> SST[T=01-JAN00:45:31-DEC06:34 at AVE,D=5]
@@ -71492,7 +71476,7 @@ list/i=3 sst[T=@ave]
cancel data fourfiles
-DELETE SST M: 66 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: 1 12 M: 1 4 N: -999 -999
-DELETE SST M: 74 dset: 5 I: 3 3 J: 1 9 K: -999 -999 L: -999 -999 M: 1 4 N: -999 -999
- dealloc dynamic grid (G106) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
+ dealloc dynamic grid (G103) COADSX116_COADSY52_6NORMAL TIME13 ENSEMBLE NORMAL
! Create airt in the other datasets by LET/D definitions.
let/d=ens2 airt = sst + 1
@@ -72438,8 +72422,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72489,8 +72473,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72528,8 +72512,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72567,8 +72551,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72598,8 +72582,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72630,8 +72614,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72691,8 +72675,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72736,8 +72720,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72791,8 +72775,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72827,8 +72811,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72863,8 +72847,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72899,8 +72883,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -72931,8 +72915,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73161,8 +73145,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73193,8 +73177,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) FLOAT units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73234,8 +73218,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSY46_48) DOUBLE units CHAR 13 T degrees_north
point_spacing CHAR 4 T even
@@ -73272,8 +73256,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -73297,8 +73281,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -73322,8 +73306,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 25 T FERRET V6.861 26-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -73762,8 +73746,8 @@ variables:
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME10 = 366, 1096.485, 1826.97 ;
@@ -73791,8 +73775,8 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME10 = 366, 1096.485, 1826.97 ;
@@ -73842,8 +73826,8 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME10 = 366, 1096.485, 1826.97 ;
@@ -74308,6 +74292,54 @@ sh grid sal
normal E
normal F
+! This file from the datset "West Coast Carbon cruises" in our
+! example erdadp, has the cf_role attribute on a coordinate variable.
+! prof, time, latitude, longitude, and rowsize are on the E axis
+! press_db and pco2 are on the X asis
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+sh dat 2
+ currently SET data sets:
+ 2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+sh att (profile)
+ attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ (profile)._FillValue = -1.E+34
+ (profile).actual_range = 70, 90
+ (profile).cf_role = profile_id
+ (profile).history = From allDataFrom2007-2011-2012WestCoastCarbonCruises-revised3-6-13-1.txt
+ (profile).long_name = profile ID: Cruise and Station
+ (profile).missing_value = -1.E+34
+ (profile).orig_file_axname = profile
+sh grid rowsize
+ GRID GSS1
+ name axis # pts start end
+ normal X
+ normal Y
+ normal Z
+ normal T
+ PROFILE E 21 r 70 90
+ normal F
+sh grid pco2
+ GRID GSS2
+ name axis # pts start end
+ OBS1 X 373 r 1 373
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
+
GO bn_reset
cancel mode verify
GO bn_nco_append
@@ -74359,9 +74391,9 @@ variables:
DDAT_ORIG:long_name = "DDAT[GZ=ZAXIS_ORIG at ASN]" ;
// global attributes:
- :history = "Wed Mar 26 15:39:28 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
- "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "Tue Oct 7 10:43:58 2014: ncks -h -A -h z1.nc append_to_this.nc\n",
+ "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
GO bn_reset
@@ -74393,8 +74425,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -74424,8 +74456,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -74486,8 +74518,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! On a SAVE either with /BOUNDS or no bounds qualifier,
@@ -74514,8 +74546,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
@@ -75694,8 +75726,8 @@ variables:
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! The behavior is unchanged for user-defined variables
@@ -75717,8 +75749,8 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
@@ -75743,12 +75775,12 @@ fill/lev=(20,30,10)/L=1 sst
-! *********** v6.87 Additions ***********
+! *********** v6.9 Additions ***********
GO bn_reset
cancel mode verify
-GO bn687_bug_fixes
-! bn687_bug_fixes
-! test various fixes that went into version 6.87
+GO bn69_bug_fixes
+! bn69_bug_fixes
+! test various fixes that went into version 6.9
! 02/2014 ACM
GO bn_reset
@@ -75945,8 +75977,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! Yet more combinations
@@ -75975,8 +76007,8 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! We can use /KEEP_AXISNAMES, changes XAXIS_TEST1 to XAXIS_TEST
@@ -75996,8 +76028,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! Subsets also use XAXIS_TEST1
@@ -76017,8 +76049,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! Unless we use /KEEP_AXISNAMES - which removes renaming
@@ -76039,8 +76071,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! If we try /KEEP_AXISNAMES but there is a conflict, it's an err
@@ -76111,6 +76143,111 @@ sh att v1
GO bn_reset
cancel mode verify
+GO err686_sho_nonexist_att
+! err686_sho_nonexist_att.jnl
+! See ticket 2133
+
+! Too many error messages were issued on this error
+set mode ignore
+
+use levitus_climatology
+show att temp.noexist[d=levitus_climatology]
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err686_set_var_name
+! err686_set_var_name.jnl
+! ticket 2152
+! rename user var or file var. Err message was
+! wrong if the name already exists.
+
+SET MODE IGNORE
+
+let a = 1
+let b = 2
+! Intentional error, new name is already a defined variable
+set var/name=b a
+! This rename is ok
+set var/name=c a
+sh var
+ Created by DEFINE VARIABLE:
+ >>> Definitions that replace any file variable of same name:
+ B = 2
+ C = 1
+
+use gt4d011.cdf
+! again, with user-variables and an open dataset the message is as above
+
+let a = 1
+let b = 2
+set var/name=b a
+
+! Intentional error, new name already in file
+
+
+! Intentional error, new name already in file
+set var/name=temp salt
+show dat
+ currently SET data sets:
+ 1> ./gt4d011.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 91:108 35:56 1:10 1:25 ... ...
+ SALT (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25 ... ...
+ U ZONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ V MERIDIONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ W VERTICAL VELOCITY 91:108 36:55 1:10 1:25 ... ...
+ TAUX ZONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ PSI STREAM FUNCTION 91:108 35:56 ... 1:25 ... ...
+
+! This rename is ok
+set var/name=salinity salt
+show dat
+ currently SET data sets:
+ 1> ./gt4d011.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 91:108 35:56 1:10 1:25 ... ...
+ SALINITY (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25 ... ...
+ U ZONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ V MERIDIONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ W VERTICAL VELOCITY 91:108 36:55 1:10 1:25 ... ...
+ TAUX ZONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ PSI STREAM FUNCTION 91:108 35:56 ... 1:25 ... ...
+
+
+! Test LET/D variables:
+let/d=1 myvar = taux - tauy
+! This is an error, new name already in file
+set var/name=psi myvar
+! This is ok, new let/d name associated with the file
+set var/name=diff myvar
+show dat
+ currently SET data sets:
+ 1> ./gt4d011.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 91:108 35:56 1:10 1:25 ... ...
+ SALINITY (SALINITY(ppt) - 35) /1000 91:108 35:55 1:10 1:25 ... ...
+ U ZONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ V MERIDIONAL VELOCITY 91:108 35:55 1:10 1:25 ... ...
+ W VERTICAL VELOCITY 91:108 36:55 1:10 1:25 ... ...
+ TAUX ZONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ TAUY MERIDIONAL WIND STRESS 91:108 35:55 ... 1:25 ... ...
+ PSI STREAM FUNCTION 91:108 35:56 ... 1:25 ... ...
+ ------------------------------
+ DIFF[D=gt4d011] = TAUX - TAUY
+
+
+! another error, new name is a user-var
+yes? set var/name=diff w
+
+SET MODE/LAST ignore
+
+GO bn_reset
+cancel mode verify
GO bn_bad_axis_bounds
! bn_bad_axis_bounds
! Ticket 2146 If there are invalid axis bounds
@@ -76197,6 +76334,2129 @@ plot/i=1:15/color=red/thick i
cancel redirect
+GO bn_reset
+cancel mode verify
+GO bn_stddev
+! bn_std.jnl
+! New StdDev transform
+
+use coads_climatology
+list/x=100/y=10 sst[t=@STD]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ LONGITUDE: 100E (interpolated)
+ LATITUDE : 10N (interpolated)
+ TIME : 01-JAN 00:45 to 01-APR 08:12 (standard deviation)
+ 0.4323
+list/x=100/L=1 sst[y=@STD]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ LONGITUDE: 100E (interpolated)
+ LATITUDE : 90S to 90N (standard deviation)
+ TIME : 16-JAN 06:00
+ 10.09
+list/y=10/L=1 sst[x=@STD]
+ VARIABLE : SEA SURFACE TEMPERATURE (Deg C)
+ FILENAME : coads_climatology.cdf
+ LONGITUDE: 20E to 20E(380) (standard deviation)
+ LATITUDE : 10N (interpolated)
+ TIME : 16-JAN 06:00
+ 0.7935
+
+use gt4d011.cdf
+list/y=3/l=1/x=233 u[z=@STD]
+ VARIABLE : ZONAL VELOCITY (cm/sec)
+ FILENAME : gt4d011.cdf
+ LONGITUDE: 127W
+ LATITUDE : 3N (interpolated)
+ DEPTH (m): 0 to 100 (standard deviation)
+ TIME : 17-AUG-1982 12:00
+ 3.366
+list/y=3/l=1 temp[x=@std]
+ VARIABLE : TEMPERATURE (deg. C)
+ FILENAME : gt4d011.cdf
+ SUBSET : 10 points (DEPTH (m))
+ LONGITUDE: 140W to 122W (standard deviation)
+ LATITUDE : 3N (interpolated)
+ TIME : 17-AUG-1982 12:00
+ 5 / 1: 0.2508
+ 15 / 2: 0.2559
+ 25 / 3: 0.2623
+ 35 / 4: 0.2318
+ 45 / 5: 0.1489
+ 55 / 6: 0.1136
+ 65 / 7: 0.2355
+ 75 / 8: 0.4054
+ 85 / 9: 0.5649
+ 95 / 10: 0.7755
+list/y=3/l=1 temp[z=@std,x=@std]
+ VARIABLE : TEMPERATURE (deg. C)
+ FILENAME : gt4d011.cdf
+ LONGITUDE: 140W to 122W (standard deviation)
+ LATITUDE : 3N (interpolated)
+ DEPTH (m): 0 to 100 (standard deviation)
+ TIME : 17-AUG-1982 12:00
+ 0.1946
+
+GO bn_reset
+cancel mode verify
+GO bn_set_axis_name
+! bn_set_axis_name.jnl
+! ticket 2160 Implementing new qualifier SET AXIS/NAME
+! 3/2014
+!
+!
+! Prepare a dataset with a time axis
+
+define axis/t=1-may-2010:5-may-2010:1/units=days daysaxis
+let a = t[gt=daysaxis]
+save/clobber/file=a.nc a
+
+cancel variable a
+cancel axis daysaxis
+
+! We define some axis, then open a dataset with an axis of that name.
+
+define axis/t=1-jan-2000:31-jan-2000:1/units=days daysaxis
+
+use a.nc
+
+! The axis in the dataset has been renamed.
+say `a,return=taxis`
+ !-> MESSAGE/CONTINUE DAYSAXIS1
+DAYSAXIS1
+
+! So, rename our user-defined axis
+set axis/name=days2000 daysaxis
+
+! and now rename the one from the dataset back to its original name
+set axis/name=daysaxis `a,return=taxis`
+ !-> set axis/name=daysaxis DAYSAXIS1
+sh grid a
+ GRID GSI1
+ name axis # pts start end
+ normal X
+ normal Y
+ normal Z
+ daysaxis TIME 5 r 01-MAY-2010 00:00 05-MAY-2010 00:00
+ normal E
+ normal F
+
+cancel data/all
+
+! If an axis is used in several datsets, renaming it of course
+! changes the name for all grids.
+! The attribute structure gets updated as well.
+
+! Make several datasets with the same x axis.
+define axis/x=1:13:1/units=meters x13axis
+let a = x[gx=x13axis]
+let b = 3*x[gx=x13axis]
+let c = 5*x[gx=x13axis]
+save/clobber/file=a.nc a
+save/clobber/file=b.nc b
+save/clobber/file=c.nc c
+
+can var/all
+can axis x13axis
+
+! Open them in Ferret; all grids are the same.
+use a.nc, b.nc, c.nc
+say `a[d=1],return=xaxis`
+ !-> MESSAGE/CONTINUE X13AXIS
+X13AXIS
+say `b[d=2],return=xaxis`
+ !-> MESSAGE/CONTINUE X13AXIS
+X13AXIS
+say `c[d=3],return=xaxis`
+ !-> MESSAGE/CONTINUE X13AXIS
+X13AXIS
+
+! Rename the axis
+set axis/name=x_in_meters x13axis
+say `a[d=1],return=xaxis`
+ !-> MESSAGE/CONTINUE x_in_meters
+x_in_meters
+say `b[d=2],return=xaxis`
+ !-> MESSAGE/CONTINUE x_in_meters
+x_in_meters
+say `c[d=3],return=xaxis`
+ !-> MESSAGE/CONTINUE x_in_meters
+x_in_meters
+
+! For SHOW DAT/ATT we get info from the attribute structure.
+! It has the udated name.
+sh dat/att
+ currently SET data sets:
+ 1> ./a.nc
+ Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
+
+(x_in_meters) DOUBLE units CHAR 6 T meters
+ point_spacing CHAR 4 T even
+ axis CHAR 1 T X
+ orig_file_axnameCHAR 7 F X13AXIS
+
+ A DOUBLE missing_value DOUBLE 1 T -1.E+34
+ _FillValue DOUBLE 1 T -1.E+34
+ long_name CHAR 13 T X[GX=X13AXIS]
+
+ 2> ./b.nc
+ Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
+
+(x_in_meters) DOUBLE units CHAR 6 T meters
+ point_spacing CHAR 4 T even
+ axis CHAR 1 T X
+ orig_file_axnameCHAR 7 F X13AXIS
+
+ B DOUBLE missing_value DOUBLE 1 T -1.E+34
+ _FillValue DOUBLE 1 T -1.E+34
+ long_name CHAR 15 T 3*X[GX=X13AXIS]
+
+ 3> ./c.nc (default)
+ Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
+------------------------------------------------------------------------------------------
+
+ . history CHAR 25 T FERRET V6.925 7-Oct-14
+ Conventions CHAR 6 F CF-1.6
+
+(x_in_meters) DOUBLE units CHAR 6 T meters
+ point_spacing CHAR 4 T even
+ axis CHAR 1 T X
+ orig_file_axnameCHAR 7 F X13AXIS
+
+ C DOUBLE missing_value DOUBLE 1 T -1.E+34
+ _FillValue DOUBLE 1 T -1.E+34
+ long_name CHAR 15 T 5*X[GX=X13AXIS]
+
+
+! Intentional errors
+set mode ignore
+
+! Name already in use
+set axis/name=days2000 x_in_meters
+
+! Missing or illegal name
+set axis/name x_in_meters
+set axis/name=45 x_in_meters
+set axis/name=.fr x_in_meters
+
+set mode/last ignore
+
+! *********** v6.9+ Additions ***********
+GO bn_reset
+cancel mode verify
+GO bn691_bug_fixes
+! bn691_bug_fixes
+! test various fixes that went into version 6.91
+! 04/2014 ACM
+
+GO bn_reset
+cancel mode verify
+GO err69_arg_type_error
+! err69_arg_type_error
+! See ticket 2169
+!
+set mode ignore
+sh func tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ A: time steps to convert
+ B: variable with reference time axis
+ C: output precision (STRING)
+sh func /detail tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ Axes of result:
+ X: inherited from argument(s)
+ Y: inherited from argument(s)
+ Z: inherited from argument(s)
+ T: inherited from argument(s)
+ E: inherited from argument(s)
+ F: inherited from argument(s)
+ A: time steps to convert (FLOAT)
+ Influence on output axes:
+ X: passed to result grid
+ Y: passed to result grid
+ Z: passed to result grid
+ T: passed to result grid
+ E: passed to result grid
+ F: passed to result grid
+ B: variable with reference time axis (FLOAT)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+ C: output precision (STRING)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+define axis/t=1-jan-2000:31-jan-2000:1/units=days my_tax
+let tt = t[gt=my_tax]
+
+! Intentional errors
+list tax_datestring (tt[L=3], tt, 5)
+list tax_datestring (tt[L=3], tt, "minutes")
+ VARIABLE : TAX_DATESTRING (TT[L=3], TT, "minutes")
+ TIME : 03-JAN-2000 00:00
+ "03-JAN-2000 00:00"
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+
+set mode /last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_bad_bounds
+! err69_bad_bounds.jnl
+! See ticket 2170
+
+set mode ignore
+
+! time axis has a point_spacing=even attribute
+! and an invalid set of bounds.
+! caused Ferret to mis-read the time axis
+use badbounds_even.nc
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same time axis but with a different error in the bounds
+! also has a point-spacing=even attribute
+! caused Ferret to mis-read the time axis
+use badbounds_non_enclose
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same definition except that the coordinates are irregularly
+! spaced, no point-spacing attribute.
+use badbounds_uneven
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 7.000
+13-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 4.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+sh axis TAX_BB*
+ name axis # pts start end
+ TAX_BB_IRR TIME 6 i 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 31
+ TAX_BB_EVEN_NOENC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
+ TAX_BB_PTSPAC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_const_array
+! err69_const_array.jnl
+! 5/8/2014 ACM
+! See ticket 2174
+! expressions are not allowed in constant-array definitions.
+
+set mode ignore
+
+! The code to read constant-array definitions into memory was simply doing
+! a read on each comma-separated portion of the command-line defining it.
+! Need to first determine if the buffer represents a simple constant.
+
+! These already returned an error as cos(1) can't be read with a Fortran read.
+list {cos(1), sin(0)}
+
+! Previously the first was read as {0,180} and the second as {0.1,0.2,1}, and
+! the third as {30,2000} !
+! They should be reported as syntax errors
+
+list {0-180, 180}
+list {0.1, 0.2, 1./5.}
+list {5*3+1, 2+3}
+
+! These are ok, and always have been
+list/prec=8 {-0.001, 1.23e-2, -45.e3}
+ VARIABLE : {-0.001, 1.23E-2, -45.E3}
+ SUBSET : 3 points (X)
+ 1 / 1: -0.001
+ 2 / 2: 0.012
+ 3 / 3: -45000.000
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_multi_label_ascii
+! err69_multi_label_ascii.jnl
+! 5/2014 ACM
+! ticket 2176
+! Multi-line labels and ascii fonts.
+
+plot/vs/nolab {0,1},{0,1}
+
+
+label .05 .96 0 0 .12 "@CR at P4Single Line examples. Ascii font with and without escape for new color:"
+label .05 .9 0 0 .16 "@ASNo_escapes at c002good_1@c003friend_2"
+label .05 .83 0 0 .16 "@ASEscape_new_colors@c002red_1@c003green_2"
+
+
+label .05 .65 0 0 .12 "@CR at P4Multi Line ascii examples:"
+
+label .05 .56 0 0 .12 "@CR at P4without escape"
+label .05 .5 0 0 .16 "@ASNo_escapes<NL>@c002good_1<NL>@c003friend_2"
+
+label .55 .56 0 0 .12 "@CR at P4with escape:"
+label .55 .5 0 0 .16 "@ASEscape_new_colors<NL>@c002red_1<NL>@c003green_2"
+
+! escape just the special characters.
+label .05 .26 0 0 .12 "@CR at P4Settings around underscores:"
+label .05 .2 0 0 .16 "hello at AS_@SRthere<NL>@c002good at AS_@SR1<NL>@c003friend at AS_@SR2"
+
+! escape new pen setting, not the font
+label .55 .26 0 0 .12 "@CR at P4Escape just the color changes:"
+label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ens_badvalue
+! err69_ens_badvalue.jnl
+!
+! Datasets have _FillValue but not missing_value attributes.
+! In this case the missing data info was not correctly handled
+! when defining an ensemble.
+
+use maize_1.nc, maize_2.nc, maize_3.nc
+
+! Note the _FillValue, flag
+sho att maize_yield
+ attributes for dataset: ./maize_3.nc
+ MAIZE_YIELD._FillValue = 9.96921E+36
+ MAIZE_YIELD.long_name = Maize harvest
+ MAIZE_YIELD.units = kgC.m-2.yr-1
+ MAIZE_YIELD.history = From new_ORCH_CORD_MIR_B1_maize
+ensemble ens = 1,2,3
+
+! MAIZE_YIELD[M=@NGD] should have values of 0, 2, and 3.
+list/y=29.25 MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3], MAIZE_YIELD[m=@ngd]
+ LONGITUDE: 8W(-8) to 6W(-6)
+ LATITUDE: 29.25N
+ E: 0.5 to 3.5 (number of valid)
+ Column 1: MAIZE_YIELD[D=maize_1] is Maize harvest (kgC.m-2.yr-1)
+ Column 2: MAIZE_YIELD[D=maize_2] is Maize harvest (kgC.m-2.yr-1)
+ Column 3: MAIZE_YIELD[D=maize_3] is Maize harvest (kgC.m-2.yr-1)
+ Column 4: MAIZE_YIELD[D=ENS,E=@NGD] is Maize harvest (# of points)
+ MAIZE_YIELD MAIZE_YI MAIZE_Y MAIZE_YIELD
+7.75W / 1: .... 0.05247 0.1022 2.000
+7.25W / 2: 0.01818 0.03588 0.0049 3.000
+6.75W / 3: -0.00002 0.02030 -0.0139 3.000
+6.25W / 4: .... .... .... 0.000
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_by_levels
+! err69_ribbon_by_levels.jnl
+! ACM 5/19/2014
+! See ticket 2179
+! colors were not repeating after the first 10.
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_histogram
+! err69_ribbon_histogram.jnl
+! ACM 5/24/2014
+! Histogram levels with ribbon line plots
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,1.9,1.1,1.3,1.1,1.2,2.3,\
+2.4,2.4,2.2,2.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+! linear levels, then histogram levels
+can view; set v left
+ribbon/vs/line/thick/lev=10 xpts,ypts,var
+set v right
+ribbon/vs/line/thick/lev=10h xpts,ypts,var
+
+GO bn_reset
+cancel mode verify
+GO err69_repl_scinot
+! err69_repl_scinot.jnl
+! ticket 2175
+! The returned number had a bunch of trailing spaces
+
+let a = 1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (1.E-10)
+(1.E-10)
+
+let a = -1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.E-10)
+(-1.E-10)
+
+let a = -1.23e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.23E-10)
+(-1.23E-10)
+
+let a = -1.23e-2
+say (`a`)
+ !-> MESSAGE/CONTINUE (-0.0123)
+(-0.0123)
+
+GO bn_reset
+cancel mode verify
+GO err691_bnds_case
+! err691_bnds_case
+! 6/30/14
+! Ticket 2182 bounds variable incorrectly created with upper-cased axis name
+
+def ax/t tax = {1,2,4,8}
+let tval = t[gt=tax]
+can mode upcase_output
+save/clob/file=tval.nc tval
+
+set mode/last upcase_output
+
+GO bn_reset
+cancel mode verify
+GO err69_plot_vs_labs
+! err69_plot_vs_labs.jnl
+! ticket 2187: the axis labels on the dependent axis
+! for PLOT/VS is wrong. LABX and LABY contain the labels used.
+
+use coads_climatology
+
+let a = sst[L=1]
+let b = a[x=180e:100w at ave]
+let c = a[x=150w:90w at ave]
+let d = a[x=150w:90w at ave]
+set v left; plot/vs b,c; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+set v right; plot/vs c,b; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+
+can view
+plot/vs/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+
+set v left; plot/trans/vs b,c; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+set v right; plot/trans/vs c,b; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+
+can view
+plot/vs/trans/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+
+GO bn_reset
+cancel mode verify
+GO err69_levels_v
+! err69_levels_v.jnl
+! Ferret ticket 2186, and LAS ticket 1598
+! the data has values in the range 300 to 500,
+! and several values over 100000. The variance-
+! based levels returned useless levels. Changes
+! made to throw out data outside 3 std when
+! computing the mean and std dev for color levels.
+
+use "lev_v_bug.nc"
+shade/lev=v var2d
+
+! previously the computed levels spanned -8000 to 16000.
+sh sym *lev*
+LEV_TEXT = "V"
+LEV_HISTO_LEVELS = "1.1,1.2,1.6,1.9,2.4,2.5,3.8,5.4,10.2,13.6,14.9"
+LEV_MIN = "-1.E+34"
+LEV_NUM = "52"
+LEV_DEL = "2.0000E+32"
+LEV_MAX = "4.0000E+32"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_letd_dsetnum
+! err69_letd_dsetnum.jnl
+! Ticket 2189. Previously the grave-accent expression didn't get
+! translated, and the let command failed.
+
+use coads_climatology
+let/d=`sst,r=dsetnum` a = 1
+ !-> DEFINE VARIABLE/d=1 a = 1
+sh dat
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+ ------------------------------
+ A[D=coads_climatology] = 1
+
+
+GO bn_reset
+cancel mode verify
+GO err69_long_string_to_xml
+! err69_long_string_to_xml.jnl
+! ticket 2190 8-8-2014
+! previously the string was cut off at 512 characters. For this example
+! it was in the middle of the code AAAAAAAAAAAA
+!
+
+list/clobber/file="out.xml"/nohead/norow 1
+LET longstring = "Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC2004 [...]
+LET status = list_value_xml ("mytag", longstring, 1, "out.xml")
+LOAD status
+
+sp cat out.xml
+ 1.000
+<mytag><![CDATA[Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC200406 [...]
+
+GO bn_reset
+cancel mode verify
+GO err69_fill_trans
+! err69_fill_trans.jnl
+! ticket 2196. Visible only if bounds-checking is turned on.
+! 9/22/2014
+
+DEFINE AXIS/x=1:15:1 xaxis
+let var = {1,2,3,,,,,,,4,,5,6,7,8}
+LET myvar = var[gx=xaxis at asn]
+
+list myvar
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ SUBSET : 15 points (X)
+ 1 / 1: 1.000
+ 2 / 2: 2.000
+ 3 / 3: 3.000
+ 4 / 4: ....
+ 5 / 5: ....
+ 6 / 6: ....
+ 7 / 7: ....
+ 8 / 8: ....
+ 9 / 9: ....
+ 10 / 10: 4.000
+ 11 / 11: ....
+ 12 / 12: 5.000
+ 13 / 13: 6.000
+ 14 / 14: 7.000
+ 15 / 15: 8.000
+list myvar[x=6 at fnr:2]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 2 pts)
+ ....
+
+! This caused attempt to load variable at index i = -4
+list myvar[x=6 at fnr:10]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 10 pts)
+ 3.000
+
+! Likewise the way @FAV is computed, this caused Ferret
+! to try to get data at i=-3
+list myvar[x=6 at fav:18]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (ave-filled by 18 pts)
+ 4.500
+
+
+GO bn_reset
+cancel mode verify
+GO err69_load_big_grid
+! err69_load_big_grid
+! ticket 1758
+! error about "a negative number of words requested... grid too large"
+! in fact all large grids misreports size. Now computations are done
+! in real numbers and in block not word sizes.
+
+set mode ignore
+
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+
+! this gave the error about "a negative number of words requested... grid too large"
+define axis/t=1-jan-2000:1-jan-2005:1/units=days longtime
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+ GRID (G087)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 1828 r 01-JAN-2000 00:00 01-JAN-2005 00:00
+ normal E
+ normal F
+load bigvar
+
+! also was an incorrect size.
+define axis/t=1-jan-2000:1-jan-2010:1/units=days longtime
+sh grid bigvar
+ GRID (G087)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 3654 r 01-JAN-2000 00:00 01-JAN-2010 00:00
+ normal E
+ normal F
+load bigvar
+
+cancel mode ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_write_attribute
+! err69_write_attribute.jnl
+! Bug 1863
+
+use gt4d011.cdf
+sh grid temp
+ GRID PS3DT21
+ name axis # pts start end
+ PSXT1 LONGITUDE 160mr 130.5E 70.5W
+ PSYT1 LATITUDE 100 i 28.836S 48.568N
+ PSZT2 DEPTH (m) 27 i- 5 3824
+ TIME16 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
+ normal E
+ normal F
+let a = temp[x=@ave,y=@ave,L=1]
+
+! The attribute we ask not to write is not written for this variable
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (PSZT2).point_spacing
+save/q/clob/file="a.nc"/bounds a
+sp ncdump -h a.nc | grep -i "`a,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT2"
+ PSZT21_10 = 10 ;
+ double PSZT21_10(PSZT21_10) ;
+ PSZT21_10:units = "meters" ;
+ PSZT21_10:positive = "down" ;
+ PSZT21_10:standard_name = "depth" ;
+ PSZT21_10:bounds = "PSZT21_10_bnds" ;
+ double PSZT21_10_bnds(PSZT21_10, bnds) ;
+ double A(TIME16, PSZT21_10) ;
+
+! But it was being written for this one. It should not.
+let b = temp[x=@ave,y=@ave,L=1,d=1]
+save/q/clob/file="a.nc"/bounds b
+sp ncdump -h a.nc | grep -i "`b,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT2"
+ PSZT21_10 = 10 ;
+ double PSZT21_10(PSZT21_10) ;
+ PSZT21_10:units = "meters" ;
+ PSZT21_10:positive = "down" ;
+ PSZT21_10:standard_name = "depth" ;
+ PSZT21_10:bounds = "PSZT21_10_bnds" ;
+ double PSZT21_10_bnds(PSZT21_10, bnds) ;
+ double B(TIME16, PSZT21_10) ;
+
+! A variable that depends on more than one dataset.
+use coads_climatology
+let c = temp[x=@ave,y=@ave,L=1,d=1] + sst[x=@ave,y=@ave,t=@ave,d=2]
+save/q/clob/file="a.nc"/bounds c
+sp ncdump -h a.nc | grep -i "`c,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT2"
+ PSZT21_10 = 10 ;
+ double PSZT21_10(PSZT21_10) ;
+ PSZT21_10:units = "meters" ;
+ PSZT21_10:positive = "down" ;
+ PSZT21_10:standard_name = "depth" ;
+ PSZT21_10:bounds = "PSZT21_10_bnds" ;
+ double PSZT21_10_bnds(PSZT21_10, bnds) ;
+ double C(PSZT21_10) ;
+
+can data/all
+can var/all
+
+! When there are two datasets with the same axis name but different depths,
+! the second axis name is changed internally.
+
+DEFINE AXIS/z/depth zzdep = {0,10,20,30,50,75,100,150,200,300,400,600,800,1000,1200,1500,2000,3000,4000,5000}
+
+LET temp = z[gz=zzdep]
+save/clobber/file=aa.nc temp
+save/clobber/keep/file=bb.nc temp[k=1:15]
+can var/all
+can axis zzdep
+
+use aa
+use bb
+set data 1
+
+show att (`temp,r=zaxis`)
+ !-> show att (ZZDEP)
+ attributes for dataset: ./aa.nc
+ (ZZDEP).point_spacing = uneven
+ (ZZDEP).axis = Z
+ (ZZDEP).bounds = ZZDEP_bnds
+ (ZZDEP).positive = down
+ (ZZDEP).standard_name = depth
+ (ZZDEP).orig_file_axname = ZZDEP
+
+let a = temp[d=1,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+set data 2
+let a = temp[d=2,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP1).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP1
+ ZZDEP1 = 15 ;
+ double ZZDEP1(ZZDEP1) ;
+ ZZDEP1:axis = "Z" ;
+ ZZDEP1:bounds = "ZZDEP1_bnds" ;
+ ZZDEP1:positive = "down" ;
+ ZZDEP1:standard_name = "depth" ;
+ double ZZDEP1_bnds(ZZDEP1, bnds) ;
+ double A(ZZDEP1) ;
+
+let a = temp[d=2,gz=temp[d=1]]
+
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+sp rm aa.nc bb.nc
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_countervar_context
+! err69_countervar_context.jnl
+! ACM 10/3/2014
+! Ticket 2200. Context from SET REGION should not
+! apply in named-repeat loop. The loop would run,
+! but returned values of 0.
+
+let a = b
+set region/i=20:30
+repeat/name=b/range=1:3 (say `a`)
+!-> REPEAT: B:1
+ !-> MESSAGE/CONTINUE 1
+1
+!-> REPEAT: B:2
+ !-> MESSAGE/CONTINUE 2
+2
+!-> REPEAT: B:3
+ !-> MESSAGE/CONTINUE 3
+3
+
+can region
+
+GO bn_reset
+cancel mode verify
+GO err69_label_backspace
+! err69_label_backspace
+! Ticket 2203: \\ before a character backspaces before
+! making the character. This broke in the 64-bit versions.
+
+plot/vs/nolab {0,1},{0,1}
+label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
+
+
+GO bn_reset
+cancel mode verify
+GO bn_append_dsg
+! bn_append_dsg.jnl
+!From SOCAT 3: appending to a dsg file where the new variable is on the obs
+! dimension. THe file has no coordinate variable, and we want to keep it that way.
+! Ferret needs to detect the dimension-only axis and keep it as-is. Do not upcase,
+! do not write a coordinate variable.
+!
+! Contains the metadata variables, global attributes, and incoming variables.
+! Where we recompute some of the incoming variables and append them to the file,
+! the values in the file are replaced.
+!
+! Argument is a file name; the single-cruise dsg file from the data entry
+!
+! We append more variables to the file, using the same obs dimension.
+
+sp rm test_save_dsg.nc
+sp cp test_save_dsg_in.nc test_save_dsg.nc
+
+use test_save_dsg.nc
+
+! Lon in 0-360
+let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
+define attribute/output lon360.ioos_category = "Location"
+define attribute/output lon360.standard_name = "Longitude"
+define attribute/output lon360.history = "added to test_save_dsg.nc"
+
+save/quiet/append/file=test_save_dsg.nc lon360
+
+! The longitude and lon360 variables should have the same lowercase (obs) dimension.
+
+sp ncdump -h test_save_dsg.nc
+netcdf test_save_dsg {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :History = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "CF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+}
+
+GO bn_reset
+cancel mode verify
+GO bn_global_atts
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.91 (beta)
+ ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
+ ! 7-Apr-14 16:41
+
+sp cp 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
+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
+netcdf global {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventions" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+sp ncdump -h global_copy.nc
+netcdf global_copy {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0FERRET V6.925 7-Oct-14" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventionsCF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+
+! This dataset has global attributes history and Conventions that include
+! a Ferret version and CF version that Ferret will replace.
+
+sp ncgen -o anew_global.nc anew_global.cdl
+use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.71 9-May-14
+ ..Conventions = Existing conventions note, CF-1.0
+let var = 8
+save/append/file=anew_global.nc var
+can dat/all; use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.925 7-Oct-14
+ ..Conventions = Existing conventions note, , CF-1.6
+
+
+
+
+GO bn_reset
+cancel mode verify
+GO bn_conventions_history
+! bn_conventions_history.jnl
+! ticket 2169:
+! Write conventions CF-1.6
+! When appending to the Conventions and history
+! attribute, add the new stuff with a comma and newline.
+
+sp cp conventions_history_in.nc conventions_history.nc
+use conventions_history
+!
+! The existing global attributes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the file
+ ..Conventions = Conventions for variables named V2
+!
+! Write to the file
+let v3 = v1+v2
+save/append/file=conventions_history.nc v3
+can dat/all; use conventions_history
+!
+! The new attibutes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the fileFERRET V6.925 7-Oct-14
+ ..Conventions = Conventions for variables named V2CF-1.6
+
+GO bn_reset
+cancel mode verify
+GO bn_center_key_labels
+! bn_center_key_labels
+! 6/2014
+!
+! Arguments to /KEY qualifier on color plots
+! /CENTERLABEL for label between lines on colorbar
+! /HORIZONTAL for horizontal key
+
+use levitus_climatology.cdf
+shade/lev=10/key=cent,horiz temp
+fill/lev=10v/key=cent temp
+
+! Ribbon plots and all three keywords: centerlab, horizontal, continuous
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key=center,horiz,cont xpts,ypts,var
+
+! Automatically restore non-continuous key, non-center, vertical
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key xpts,ypts,var
+
+! Polygons: the polymark script needs multiple key qualifiers to be in quotes.
+use coads_climatology
+def axis/x=0:360:5 xq
+def axis/y=-90:90:4 yq
+let fsst = sst[l=1,gx=xq,gy=yq]
+
+let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
+let lat = xsequence(0*x[gx=xq] + y[gy=yq])
+shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst ! set up
+
+go polymark poly/key="horiz,center"/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
+
+can data coads_climatology
+
+! Automatically restore regular handling of levels
+shade temp
+
+
+GO bn_reset
+cancel mode verify
+GO bn_wgt_transform
+! bn_wgt_transform.jnl test new @WGT transform,
+! returns weights used in the equiv. average or integral transform
+! ACM 7/2014
+
+! Define an XYT grid
+
+def axis/x=2:360:2/units=degrees_east x2
+def axis/y=-89:89:2/units=degrees_north y2
+let var = x[gx=x2] + y[gy=y2] + t[gt=month_irreg]
+let weights= var[x=@wgt,y=@wgt,t=@wgt]
+
+! Varies in y with latitude correction
+shade/l=1 weights
+
+! Sum of xy transform is the surface area of the earth, meters
+let weights= var[x=@wgt,y=@wgt]
+list/l=1 weights[i=@sum,j=@sum]
+ VARIABLE : VAR[X=@WGT,Y=@WGT]
+ LONGITUDE: 1E to 1E(361) (XY summed)
+ LATITUDE : 90S to 90N (XY summed)
+ TIME : 16-JAN 12:00
+ 5.101E+14
+
+! Varies in T because of irregular t axis
+shade/x=1 weights
+
+
+! The result t=@WGT returned in seconds
+let mywt = var[t=@wgt]
+
+let secperday = 24*3600
+list/x=1/y=1 mywt, mywt/secperday
+ TIME: 01-JAN 00:00 to 31-DEC 05:49
+ LONGITUDE: 1E (interpolated)
+ LATITUDE: 1N
+ Column 1: MYWT is VAR[T=@WGT]
+ Column 2: EX#2 is MYWT/SECPERDAY
+ MYWT EX#2
+16-JAN 12 / 1: 2678400. 31.00
+15-FEB 02 / 2: 2440152. 28.24
+15-MAR 17 / 3: 2678400. 31.00
+15-APR 05 / 4: 2592000. 30.00
+15-MAY 17 / 5: 2678400. 31.00
+15-JUN 05 / 6: 2592000. 30.00
+15-JUL 17 / 7: 2678400. 31.00
+15-AUG 17 / 8: 2678400. 31.00
+15-SEP 05 / 9: 2592000. 30.00
+15-OCT 17 / 10: 2678400. 31.00
+15-NOV 05 / 11: 2592000. 30.00
+15-DEC 17 / 12: 2678400. 31.00
+
+! Test reusing results. (ticket 2183)
+use gt4d011.cdf
+! The last value is a partial grid cell
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130W (interpolated)
+ LATITUDE : 1.5N (interpolated)
+ TIME : 01-SEP-1982 00:00 (interpolated)
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+
+! Now load the result over a larger region
+list/y=1.5/x=130w/z=0:82/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 9 points (DEPTH (m))
+ LONGITUDE: 130W (interpolated)
+ LATITUDE : 1.5N (interpolated)
+ TIME : 01-SEP-1982 00:00 (interpolated)
+ 5 / 1: 10.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 10.00
+ 55 / 6: 10.00
+ 65 / 7: 10.00
+ 75 / 8: 10.00
+ 85 / 9: 2.00
+
+! This finds the previous result in memory - needs to
+! reuse the correct one.
+
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130W (interpolated)
+ LATITUDE : 1.5N (interpolated)
+ TIME : 01-SEP-1982 00:00 (interpolated)
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+
+GO bn_reset
+cancel mode verify
+GO bn_show_outfile
+! bn_show_outfile
+! Adding tests for SHOW/OUTFILE=
+! Previously only tests when SHOW/XML/OUTFILE=
+! Bugs in SHOW/OUTFILE reported in ticket 2194
+! 8/18/2014
+
+! test various combinations of /append and /clobber
+
+!can mode verify
+
+! show axis/outfile
+
+
+sho ax/clobber/outfile=a.txt month_irreg
+sho ax/clobber/outfile=a.txt month_irreg
+
+SAY ---------------- Just axis month_irreg
+---------------- Just axis month_irreg
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+
+show axis/append/outfile=a.txt PS*
+
+SAY ---------------- appending all axes starting with PS
+---------------- appending all axes starting with PS
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ name axis # pts start end
+ PSXT LONGITUDE 160mr 130.5E 70.5W
+ Axis span (to cell edges) = 160 (modulo length = axis span)
+ PSXU LONGITUDE 160mr 131E 70W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYT Y (seconds) 100 i -28.836 48.568
+ Axis span (to cell edges) = 80.00004
+ PSYU LATITUDE 100 i 27.672S 50N
+ Axis span (to cell edges) = 80.2682
+ PSZT Z (zorro) 27 i- 5 3824
+ Axis span (to cell edges) = 4149
+ PSZW DEPTH (m) 27 i- 10 4149
+ Axis span (to cell edges) = 4144
+ PSYT5_89 LATITUDE 85 i 20.151S 21.613N
+ Axis span (to cell edges) = 43.60417
+ PSZT1_2 DEPTH (m) 2 r- 5 15
+ Axis span (to cell edges) = 20
+ PSZT2 DEPTH (m) 27 i- 5 3824
+ Axis span (to cell edges) = 4149
+ PSXT1 LONGITUDE 160mr 130.5E 70.5W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYT1 LATITUDE 100 i 28.836S 48.568N
+ Axis span (to cell edges) = 80.00004
+ PSZT1 Z (METERS) 27 i 5 3824
+ Axis span (to cell edges) = 4149
+
+! show grid/outfile
+
+use coads_climatology
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just the grid of sst
+---------------- Just the grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+! show var/outfile
+
+use coads_climatology
+let two = 2
+let myvar = sst*2
+show var/clobber/outfile=a.txt myvar, two
+
+SAY ---------------- show var output from two user vars
+---------------- show var output from two user vars
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+cancel var/all
+
+! show data/outfile
+
+show data/append/outfile=a.txt
+
+SAY ---------------- appending show data
+---------------- appending show data
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+! combinations of /append and /clobber
+
+show data/clobber/outfile=a.txt
+show data/clobber/outfile=a.txt
+
+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)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just grid of sst
+---------------- Just grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME10 TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+use coads_climatology
+use levitus_climatology
+
+show data/clobber/outfile=a.txt 1
+
+SAY ---------------- Just dataset 1
+---------------- Just dataset 1
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show data/append/outfile=a.txt levitus_climatology
+
+SAY ---------------- appending datset 2 by name
+---------------- appending datset 2 by name
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+ currently SET data sets:
+ 2> ./levitus_climatology.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 1:160 1:90 1:1 ... ... ...
+
+show grid/clobber/outfile=a.txt PS3*
+
+SAY ---------------- only showing all grids starting with PS3
+---------------- only showing all grids starting with PS3
+sp cat a.txt
+ PS3DT
+ PS3DU
+ PS3DW
+ PS3DT2
+
+SAY ---------------- tests sending output of vtree to a file
+---------------- tests sending output of vtree to a file
+GO bn_vtree_outfile
+! bn_tree_outfile.jnl
+
+! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+
+CANCEL DATA/ALL
+! pure abstract variable -- no dataset
+let a = 1
+
+!
+show var/tree/outfile=a.txt/clobber a
+show var/tree/outfile=a.txt/clobber a
+sp cat a.txt
+ A = 1
+
+let b = 1
+let c = SIN(b)
+show var/tree/outfile=a.txt/clobber c
+sp cat a.txt
+ C = SIN(B)
+ B = 1
+
+! create dummy datasets so we'll have named file variables to play with
+let fv1 = 1
+let fvx = x[i=1:3]
+let fvz = Z[k=1:3]
+SAVE/CLOBBER/QUIET/FILE=my_file_vars.nc fv1, fvx, fvz
+SAVE/CLOBBER/QUIET/FILE=other_file_vars.nc fv1
+SAVE/CLOBBER/QUIET/FILE=another_file_vars.nc fv1
+CAN VAR/ALL
+use my_file_vars, other_file_vars, another_file_vars
+set data 1
+
+! ================
+
+! more pure abstract variables
+let a = 1
+let b = 1
+let c = SIN(b)
+go bn_vtree_outfile.sub c
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1
+ FV1[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+a is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1
+ FVX
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset other_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1
+********************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: V[D=NOEXIST]
+************************
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
+************************
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+RESHAPE(fvx,fvz) is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FVX
+ FVZ
+ FVX[d=my_file_vars]
+ FVZ[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ NOEXIST (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ FV1[d=another_file_var]
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fvx is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=my_file_var]
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_var]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_var]
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+
+ FVX[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ILLEGAL RECURSIVE VARIABLES: P1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S3 (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: S1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S1 (unknown variable)
+ S3 (unknown variable)
+ in default dataset my_file_vars
+ FV = FV1 + FV1 + FV1
+ in default dataset MY_UVAR_AGG
+ FV = FV1 + FV1 + FV1
+ FV1 (aggregate variable)
+ in default dataset other_file_vars
+ UV = FVX + FVX + FVX
+ FVX = FV1 + X[GX=FVX[D=1],I=1:3]
+ in default dataset MY_UVAR_AGG
+ UV = FVX + FVX + FVX
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+***************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v2 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v3 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: F
+************************
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ FV1[d=my_file_var]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ FVX[d=my_file_var]
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ F (unknown variable)
+ FV1[d=my_file_vars]
+ NOEXIST (unknown variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN GRID: A[G=NOEXIST]
+************************
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ A[G=NOEXIST] (unknown grid)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[X=45S]
+************************
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ A[X=45S] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
+************************
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[P=1]
+************************
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ A[P=1] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+f is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ A = FVZ.LONG_NAME[D=1]
+ in default dataset MY_UVAR_AGG
+ A = ..HISTORY[D=1]
+
+
+
+GO bn_reset
+cancel mode verify
+GO bn_date1900_array
+! bn_date1900_array.jnl
+! Let date1900 accept an array of date strings, returning a list
+! of coordinate values, days since 1-jan-1900.
+
+
+sh func/details date1900
+DATE1900(formatted date)
+ Convert date strings into Julian days since 1-Jan-1900
+ Axes of result:
+ X: inherited from argument(s)
+ Y: NORMAL (no axis)
+ Z: NORMAL (no axis)
+ T: NORMAL (no axis)
+ E: NORMAL (no axis)
+ F: NORMAL (no axis)
+ formatted date: dd-MMM-yy or dd-MMM-yyyy (e.g. "20-Dec-00") (none) (STRING)
+ Influence on output axes:
+ X: passed to result grid
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+! Function always worked just on one date string.
+list date1900("01-jan-2001")
+ VARIABLE : DATE1900("01-jan-2001")
+ 36890.
+
+
+! Now the argument can be an array
+let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
+list date1900(datestrings)
+ VARIABLE : DATE1900(DATESTRINGS)
+ SUBSET : 3 points (X)
+ 1 / 1: 36890.
+ 2 / 2: 36891.
+ 3 / 3: 37465.
+
+def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
+list t[gt=taxis]
+ VARIABLE : T
+ axis TAXIS
+ SUBSET : 3 points (TIME)
+ 01-JAN-2001 00 / 1: 36890.
+ 02-JAN-2001 00 / 2: 36891.
+ 30-JUL-2002 00 / 3: 37465.
+
+
+GO bn_reset
+cancel mode verify
+GO bn_spawn_size
+! bn_spawn_size.jnl
+! Return the size of the result of a spawn, not
+! the nominalabstract axis length.
+
+! ticket 981
+
+let files = {spawn:"ls *cdf*.jnl"}
+list files
+ VARIABLE : {SPAWN:"ls *cdf*.jnl"}
+ SUBSET : 8 points (X)
+ 1 / 1:"bn_cdf_errmsg.jnl"
+ 2 / 2:"bn_cdf.jnl"
+ 3 / 3:"bn_cdf_keepax.jnl"
+ 4 / 4:"bn_netcdf4.jnl"
+ 5 / 5:"err490_cdf_childax.jnl"
+ 6 / 6:"err491_cdf_childax.jnl"
+ 7 / 7:"err65_read_epic_cdf.jnl"
+ 8 / 8:"err667_5d_netcdf.jnl"
+say `files,return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+
+! Evaluate size without loading the variable first
+let datfiles = {spawn:"ls *.dat"}
+say `datfiles,return=isize`
+ !-> MESSAGE/CONTINUE 36
+36
+
+! expression syntax
+say `{spawn:"ls xml*.jnl"},return=isize`
+ !-> MESSAGE/CONTINUE 3
+3
+list {spawn:"ls xml*.jnl"}
+ VARIABLE : {SPAWN:"ls xml*.jnl"}
+ SUBSET : 3 points (X)
+ 1 / 1:"xml_header_script.jnl"
+ 2 / 2:"xml_use_coads.jnl"
+ 3 / 3:"xml_use_numstring.jnl"
+
+! Test variables based on output of a spawn.
+! These already worked correctly, has a grid-changing function.
+
+LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+say `filesets, return=isize`
+ !-> MESSAGE/CONTINUE 829
+829
+
+let files = {spawn:"ls *cdf*.jnl"}
+let name_len = strindex(files, ".sub")
+say `name_len, return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
! *********** Always do a bn_reset ***********
! *********** make sure things clean up well **
@@ -76211,9 +78471,9 @@ yes? ! run bn_all_ef tests
yes?
yes? GO bn_all_ef
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5 64-bit - 03/26/14
- 26-Mar-14 15:39
+ FERRET v6.925
+ Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
+ 7-Oct-14 10:44
SET MODE VERIFY
! bn_all_ef.jnl
@@ -77067,8 +79327,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969 ;
@@ -77092,8 +79352,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969, 50757974 ;
@@ -77116,8 +79376,8 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -77155,8 +79415,8 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
GFP3 = "" ;
@@ -77190,8 +79450,8 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_4 = 1, 2, 3, 4 ;
@@ -77231,8 +79491,8 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425,
@@ -77288,8 +79548,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -77345,8 +79605,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -77400,8 +79660,8 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
ZIRR = 0, 10, 40, 70 ;
@@ -77448,8 +79708,8 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_83 = 181, 183, 185 ;
@@ -77542,8 +79802,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -77612,8 +79872,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -77663,8 +79923,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -77738,8 +79998,8 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 0.5, 2 ;
@@ -77765,8 +80025,8 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -77789,8 +80049,8 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -77816,11 +80076,11 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.861 26-Mar-14" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
bn_bounds_defineax.jnl --- N+1 def of bounds.
netcdf irrxzt {
dimensions:
@@ -77851,8 +80111,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -77923,8 +80183,8 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -77967,8 +80227,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX105_105 = 229 ;
@@ -78009,8 +80269,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -78117,8 +80377,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
netcdf a {
@@ -78158,8 +80418,8 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
netcdf a {
@@ -78181,8 +80441,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78207,8 +80467,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78227,8 +80487,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78248,8 +80508,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -78291,8 +80551,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
netcdf a {
@@ -78331,8 +80591,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
netcdf a {
@@ -78369,40 +80629,40 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX042 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float A1(XAX1_5) ;
+ double AX042(AX042) ;
+ AX042:point_spacing = "even" ;
+ AX042:axis = "X" ;
+ float A1(AX042) ;
A1:missing_value = -1.e+34f ;
A1:_FillValue = -1.e+34f ;
A1:long_name = "A1" ;
A1:three = 1.f, 2.f, 3.f ;
A1:history = "From EZ.DAT" ;
- float A2(XAX1_5) ;
+ float A2(AX042) ;
A2:missing_value = -1.e+34f ;
A2:_FillValue = -1.e+34f ;
A2:long_name = "A2" ;
A2:history = "From EZ.DAT" ;
- float A3(XAX1_5) ;
+ float A3(AX042) ;
A3:missing_value = -1.e+34f ;
A3:_FillValue = -1.e+34f ;
A3:long_name = "A3" ;
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX042 = 1, 2, 3, 4, 5 ;
A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -78413,29 +80673,29 @@ data:
bn_attributes.jnl --- 15 attributes of data from delimited data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX009 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float V1(XAX1_5) ;
+ double AX009(AX009) ;
+ AX009:point_spacing = "even" ;
+ AX009:axis = "X" ;
+ float V1(AX009) ;
V1:missing_value = -1.e+34f ;
V1:_FillValue = -1.e+34f ;
V1:long_name = "V1" ;
V1:strval = "2" ;
V1:history = "From EZ.DAT" ;
- float V4(XAX1_5) ;
+ float V4(AX009) ;
V4:missing_value = -1.e+34f ;
V4:_FillValue = -1.e+34f ;
V4:long_name = "V4" ;
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX009 = 1, 2, 3, 4, 5 ;
V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -78457,8 +80717,8 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -78503,8 +80763,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
:option = 0 ;
@@ -78610,8 +80870,8 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
bn_attributes.jnl --- 19 scale and offset attr.
@@ -78652,8 +80912,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XC = -135.50957036625, -135.496120344706, -135.482670323162,
@@ -78735,8 +80995,8 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
J = 2, 4, 6 ;
@@ -78772,8 +81032,8 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
B = 1 ;
@@ -78812,8 +81072,8 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -78863,8 +81123,8 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -78922,8 +81182,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -78967,8 +81227,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79010,8 +81270,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79045,8 +81305,8 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79079,8 +81339,8 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
netcdf string4d {
@@ -79109,8 +81369,8 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
@@ -79138,8 +81398,8 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
data:
@@ -79199,8 +81459,8 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79244,8 +81504,8 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79263,8 +81523,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -79293,8 +81553,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -79323,8 +81583,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -79376,8 +81636,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79418,8 +81678,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -79436,18 +81696,18 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
err611_set_var_ez.jnl ---
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX138 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_ASC(XAX1_3) ;
+ double AX138(AX138) ;
+ AX138:point_spacing = "even" ;
+ AX138:axis = "X" ;
+ float MY_ASC(AX138) ;
MY_ASC:missing_value = 3.f ;
MY_ASC:_FillValue = 3.f ;
MY_ASC:long_name = "chlorophyll" ;
@@ -79455,17 +81715,17 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX138 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_UNF(XAX1_3) ;
+ double AX138(AX138) ;
+ AX138:point_spacing = "even" ;
+ AX138:axis = "X" ;
+ float MY_UNF(AX138) ;
MY_UNF:missing_value = 5.f ;
MY_UNF:_FillValue = 5.f ;
MY_UNF:long_name = "Some Unformatted input" ;
@@ -79473,8 +81733,8 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
netcdf a {
@@ -79490,8 +81750,8 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -79511,8 +81771,8 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
@@ -79522,50 +81782,51 @@ data:
netcdf a {
dimensions:
XAX1_10 = 10 ;
- TDAY = UNLIMITED ; // (31 currently)
- LON1_5 = 5 ;
- LAT1_5 = 5 ;
+ tday = UNLIMITED ; // (31 currently)
+ lon1_5 = 5 ;
+ lat1_5 = 5 ;
bnds = 2 ;
- ZT = 10 ;
- TIME1478 = 3 ;
+ zt = 10 ;
+ time1478 = 3 ;
variables:
double XAX1_10(XAX1_10) ;
XAX1_10:point_spacing = "even" ;
XAX1_10:axis = "X" ;
- double TDAY(TDAY) ;
- TDAY:units = "days since 1998-12-31 00:00:00" ;
- TDAY:axis = "T" ;
- TDAY:calendar = "GREGORIAN" ;
- TDAY:time_origin = "31-DEC-1998" ;
- TDAY:standard_name = "time" ;
- double MyUpperLowerCaseVar(TDAY, XAX1_10) ;
+ double tday(tday) ;
+ tday:units = "days since 1998-12-31 00:00:00" ;
+ tday:axis = "T" ;
+ tday:calendar = "GREGORIAN" ;
+ tday:time_origin = "31-DEC-1998" ;
+ tday:standard_name = "time" ;
+ double MyUpperLowerCaseVar(tday, XAX1_10) ;
MyUpperLowerCaseVar:missing_value = -1.e+34 ;
MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
- double LON1_5(LON1_5) ;
- LON1_5:point_spacing = "even" ;
- LON1_5:axis = "X" ;
- LON1_5:standard_name = "longitude" ;
- double LAT1_5(LAT1_5) ;
- LAT1_5:point_spacing = "uneven" ;
- LAT1_5:axis = "Y" ;
- LAT1_5:standard_name = "latitude" ;
- LAT1_5:bounds = "LAT1_5_bnds" ;
- double LAT1_5_bnds(LAT1_5, bnds) ;
- float ZT(ZT) ;
- ZT:units = "meters" ;
- ZT:positive = "down" ;
- ZT:point_spacing = "uneven" ;
- ZT:axis = "Z" ;
- ZT:standard_name = "depth" ;
- ZT:bounds = "ZT_bnds" ;
- float ZT_bnds(ZT, bnds) ;
- double TIME1478(TIME1478) ;
- TIME1478:calendar = "NOLEAP" ;
- TIME1478:point_spacing = "even" ;
- TIME1478:axis = "T" ;
- TIME1478:standard_name = "time" ;
- double newvar(TIME1478, ZT, LAT1_5, LON1_5) ;
+ double lon1_5(lon1_5) ;
+ lon1_5:point_spacing = "even" ;
+ lon1_5:axis = "X" ;
+ lon1_5:standard_name = "longitude" ;
+ double lat1_5(lat1_5) ;
+ lat1_5:point_spacing = "uneven" ;
+ lat1_5:axis = "Y" ;
+ lat1_5:standard_name = "latitude" ;
+ lat1_5:bounds = "lat1_5_bnds" ;
+ double lat1_5_bnds(lat1_5, bnds) ;
+ float zt(zt) ;
+ zt:long_name = "zt" ;
+ zt:units = "meters" ;
+ zt:positive = "down" ;
+ zt:point_spacing = "uneven" ;
+ zt:axis = "Z" ;
+ zt:standard_name = "depth" ;
+ zt:bounds = "zt_bnds" ;
+ float zt_bnds(zt, bnds) ;
+ double time1478(time1478) ;
+ time1478:calendar = "NOLEAP" ;
+ time1478:axis = "T" ;
+ time1478:point_spacing = "even" ;
+ time1478:standard_name = "time" ;
+ double newvar(time1478, zt, lat1_5, lon1_5) ;
newvar:missing_value = -999. ;
newvar:_FillValue = -999. ;
newvar:long_name = "outgoing longwave radiation" ;
@@ -79573,8 +81834,8 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- test SAVE/KEEP_AXISNAMES
netcdf a {
@@ -79600,8 +81861,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
netcdf a {
@@ -79627,8 +81888,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, degrees_east, degrees_north, std names on axes:
netcdf a {
@@ -79693,8 +81954,8 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
netcdf a {
@@ -79725,8 +81986,8 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
netcdf a {
@@ -79758,8 +82019,8 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V6.861 26-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.925 7-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
-----
end of ncdump output
@@ -79772,27 +82033,27 @@ yes?
yes?
yes? GO bn_startupfile
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5 64-bit - 03/26/14
- 26-Mar-14 15:39
+ FERRET v6.925
+ Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
+ 7-Oct-14 10:44
CAN MODE VERIFY
- Current size of FERRET memory cache: 31 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
PPL$XPIXEL = "656"
PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.861"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5 64-bit"
+FERRET_VERSION = "6.925"
+FERRET_PLATFORM = "Linux 2.6.18-371.12.1.el5 64-bit"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
FERRET_MEMORY = "31"
-SESSION_DATE = "26-Mar-14"
-SESSION_TIME = "15:39"
-SESSION_PID = "25407"
-DELTA_CPU = "0.034994"
-CLOCK_SECS = "0.164"
-CURRENT_DATE = "26-Mar-14"
-CURRENT_TIME = "15:39:34"
+SESSION_DATE = " 7-Oct-14"
+SESSION_TIME = "10:44"
+SESSION_PID = "14783"
+DELTA_CPU = "0.031994"
+CLOCK_SECS = "0.316"
+CURRENT_DATE = " 7-Oct-14"
+CURRENT_TIME = "10:44:12"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
LAST_GO_FILE = "./bn_startupfile.jnl"
@@ -79814,7 +82075,7 @@ PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "26-Mar-14:15:39"
+WIN_TITLE = "7-Oct-14:10:44"
VP_WIDTH = "10.2"
VP_HEIGHT = "8.8"
VP_SCALE = "1"
@@ -79876,9 +82137,9 @@ yes?
yes?
yes? GO bn_gif
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5 64-bit - 03/26/14
- 26-Mar-14 15:39
+ FERRET v6.925
+ Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
+ 7-Oct-14 10:44
! bn450_gif.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of gif file in batch mode using
@@ -79939,7 +82200,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= .gif [...]
@@ -80095,9 +82356,9 @@ yes?
yes?
yes? GO bn_ps
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5 64-bit - 03/26/14
- 26-Mar-14 15:39
+ FERRET v6.925
+ Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
+ 7-Oct-14 10:44
! bn450_ps.JNL - copied from bn450_plot.jnl
! this journal file only tests the writing of ps files in batch mode using
@@ -80158,7 +82419,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= bnplot.ps [...]
@@ -80209,9 +82470,9 @@ yes?
yes?
yes? GO bn_batch_metafile
NOAA/PMEL TMAP
- FERRET v6.861
- Linux 2.6.18-371.4.1.el5 64-bit - 03/26/14
- 26-Mar-14 15:39
+ FERRET v6.925
+ Linux 2.6.18-371.12.1.el5 64-bit - 10/07/14
+ 7-Oct-14 10:44
! bn_batch_metafile.jnl
! Run at the end of the benchmark scripts, starting ferret with the flags
@@ -80295,4 +82556,4 @@ set window/location=0.1,0.1/title="another title"
set mode/last logo
exit/command
-Ended at Wed Mar 26 15:39:36 PDT 2014
+Ended at Tue Oct 7 10:44:14 PDT 2014
diff --git a/bench/badbounds_even.nc b/bench/badbounds_even.nc
new file mode 100644
index 0000000..95f811b
Binary files /dev/null and b/bench/badbounds_even.nc differ
diff --git a/bench/badbounds_non_enclose.nc b/bench/badbounds_non_enclose.nc
new file mode 100644
index 0000000..b4f1a14
Binary files /dev/null and b/bench/badbounds_non_enclose.nc differ
diff --git a/bench/badbounds_uneven.nc b/bench/badbounds_uneven.nc
new file mode 100644
index 0000000..6d14352
Binary files /dev/null and b/bench/badbounds_uneven.nc differ
diff --git a/bench/bn691_bug_fixes.jnl b/bench/bn691_bug_fixes.jnl
new file mode 100644
index 0000000..ddeb2e5
--- /dev/null
+++ b/bench/bn691_bug_fixes.jnl
@@ -0,0 +1,75 @@
+! bn691_bug_fixes
+! test various fixes that went into version 6.91
+! 04/2014 ACM
+
+GO bn_reset
+GO err69_arg_type_error
+
+GO bn_reset
+GO err69_bad_bounds
+
+GO bn_reset
+GO err69_const_array
+
+GO bn_reset
+GO err69_multi_label_ascii
+
+GO bn_reset
+GO err69_ens_badvalue
+
+GO bn_reset
+GO err69_ribbon_by_levels
+
+GO bn_reset
+GO err69_ribbon_histogram
+
+GO bn_reset
+GO err69_repl_scinot
+
+GO bn_reset
+GO err691_bnds_case
+
+GO bn_reset
+GO err69_plot_vs_labs
+
+GO bn_reset
+GO err69_levels_v
+
+GO bn_reset
+GO err69_letd_dsetnum
+
+GO bn_reset
+GO err69_long_string_to_xml
+
+GO bn_reset
+GO err69_fill_trans
+
+GO bn_reset
+GO err69_load_big_grid
+
+GO bn_reset
+GO err69_write_attribute
+
+GO bn_reset
+GO err69_isready_status_errmsgs
+
+GO bn_reset
+GO err69_isready_status_errmsgs
+
+GO bn_reset
+GO err69_countervar_context
+
+GO bn_reset
+GO err69_label_backspace
+
+GO bn_reset
+GO err69_isready_and_regridding
+
+GO bn_reset
+GO err69_vtree_and_uvar_regrid
+
+GO bn_reset
+GO err69_vtree_cancel_axis
+
+GO bn_reset
+GO err69_isready_bugs
diff --git a/bench/bn69_bug_fixes.jnl b/bench/bn69_bug_fixes.jnl
index 9a40ca0..aaeccc1 100644
--- a/bench/bn69_bug_fixes.jnl
+++ b/bench/bn69_bug_fixes.jnl
@@ -1,5 +1,5 @@
-! bn687_bug_fixes
-! test various fixes that went into version 6.87
+! bn69_bug_fixes
+! test various fixes that went into version 6.9
! 02/2014 ACM
GO bn_reset
diff --git a/bench/bn_all.jnl b/bench/bn_all.jnl
index 9d2ccc2..0dc4945 100644
--- a/bench/bn_all.jnl
+++ b/bench/bn_all.jnl
@@ -901,6 +901,36 @@ GO bn_stddev
GO bn_reset
GO bn_set_axis_name
+! *********** v6.9+ Additions ***********
+GO bn_reset
+GO bn691_bug_fixes
+
+GO bn_reset
+GO bn_append_dsg
+
+GO bn_reset
+GO bn_global_atts
+
+GO bn_reset
+GO bn_conventions_history
+
+GO bn_reset
+GO bn_center_key_labels
+
+GO bn_reset
+GO bn_wgt_transform
+
+GO bn_reset
+GO bn_show_outfile
+
+GO bn_reset
+GO bn_date1900_array
+
+GO bn_reset
+GO bn_spawn_size
+
+GO bn_reset
+GO bn_polygon_log
! *********** Always do a bn_reset ***********
! *********** make sure things clean up well **
diff --git a/bench/bn_append_dsg.jnl b/bench/bn_append_dsg.jnl
new file mode 100644
index 0000000..42b7264
--- /dev/null
+++ b/bench/bn_append_dsg.jnl
@@ -0,0 +1,30 @@
+! bn_append_dsg.jnl
+!From SOCAT 3: appending to a dsg file where the new variable is on the obs
+! dimension. THe file has no coordinate variable, and we want to keep it that way.
+! Ferret needs to detect the dimension-only axis and keep it as-is. Do not upcase,
+! do not write a coordinate variable.
+!
+! Contains the metadata variables, global attributes, and incoming variables.
+! Where we recompute some of the incoming variables and append them to the file,
+! the values in the file are replaced.
+!
+! Argument is a file name; the single-cruise dsg file from the data entry
+!
+! We append more variables to the file, using the same obs dimension.
+
+sp rm test_save_dsg.nc
+sp cp test_save_dsg_in.nc test_save_dsg.nc
+
+use test_save_dsg.nc
+
+! Lon in 0-360
+let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
+define attribute/output lon360.ioos_category = "Location"
+define attribute/output lon360.standard_name = "Longitude"
+define attribute/output lon360.history = "added to test_save_dsg.nc"
+
+save/quiet/append/file=test_save_dsg.nc lon360
+
+! The longitude and lon360 variables should have the same lowercase (obs) dimension.
+
+sp ncdump -h test_save_dsg.nc
diff --git a/bench/bn_axis_viewports.jnl b/bench/bn_axis_viewports.jnl
index 1fc640a..de6735a 100644
--- a/bench/bn_axis_viewports.jnl
+++ b/bench/bn_axis_viewports.jnl
@@ -28,12 +28,14 @@ set view mid2
ppl origin 0,0
define symbol xaxl `($PPL$WIDTH)/2`
define symbol yaxl `($PPL$HEIGHT)/2`
-ppl axlen `1.375 + ($xaxl) + 1.375`,`1.375 + ($yaxl) + 1.375`
-plot/vs/hlim=-1.375:`($xaxl)+1.375`:0.25/vlim=-1.375:`($yaxl)+1.375`:0.25/nolab/nolab {0,($xaxl)}, {0,($yaxl)}
+ppl axlen `1.2 + ($xaxl) + 1.0`,`1.4 + ($yaxl) + 1.4`
+plot/vs/hlim=-1.2:`($xaxl)+1.0`:0.2/vlim=-1.4:`($yaxl)+1.4`:0.2/nolab/nolab {0,($xaxl)}, {0,($yaxl)}
+
+! pause
+set window/clear
! again with scale determined automatically
! make guide lines
-set window/clear
set view allax
plot/vs/line/hlim=0:1/vlim=0:1/nolab {0.5,0.5,,0,1},{0,1,,0.5,0.5}
plot/vs/line/over/nolab {0.25,0.25,,0,1},{0,1,,0.25,0.25}
@@ -55,9 +57,10 @@ set view mid2
ppl origin 0,0
define symbol xaxl `($PPL$WIDTH)/2`
define symbol yaxl `($PPL$HEIGHT)/2`
-ppl axlen `1.375 + ($xaxl) + 1.375`,`1.375 + ($yaxl) + 1.375`
-plot/vs/hlim=-1.375:`($xaxl)+1.375`:0.25/vlim=-1.375:`($yaxl)+1.375`:0.25/nolab/line {0,($xaxl)}, {0,($yaxl)}
+ppl axlen `1.2 + ($xaxl) + 1.0`,`1.4 + ($yaxl) + 1.4`
+plot/vs/hlim=-1.2:`($xaxl)+1.0`:0.2/vlim=-1.4:`($yaxl)+1.4`:0.2/nolab/line {0,($xaxl)}, {0,($yaxl)}
+! pause
set wind/clear
! a full window plot
@@ -65,6 +68,7 @@ set view allax
plot/vs/hlim=-1:1/vlim=-1:1/line/i=1:200/noyadj cos(i/15),sin(i/15)
show view mid
+! pause
set wind/clear
def view/axes/xlim=0:0.5/ylim=0:0.5/text=1 llax
@@ -91,9 +95,10 @@ PLOT/VS/LINE/I=1:314/noyadj i*cos(i/20),i*sin(i/20)
ppl list xaxis
ppl list yaxis
-! again with viewport scaling determined automatically
+! pause
set wind/clear
+! again with viewport scaling determined automatically
def view/axes/xlim=0:0.5/ylim=0:0.5 llax
show view llax
set view llax
@@ -122,7 +127,9 @@ PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
ppl list xaxis
ppl list yaxis
+! pause
cancel view
+
go ptest
ppl list xaxis
ppl list yaxis
diff --git a/bench/bn_center_key_labels.jnl b/bench/bn_center_key_labels.jnl
new file mode 100644
index 0000000..40150ef
--- /dev/null
+++ b/bench/bn_center_key_labels.jnl
@@ -0,0 +1,43 @@
+! bn_center_key_labels
+! 6/2014
+!
+! Arguments to /KEY qualifier on color plots
+! /CENTERLABEL for label between lines on colorbar
+! /HORIZONTAL for horizontal key
+
+use levitus_climatology.cdf
+shade/lev=10/key=cent,horiz temp
+fill/lev=10v/key=cent temp
+
+! Ribbon plots and all three keywords: centerlab, horizontal, continuous
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key=center,horiz,cont xpts,ypts,var
+
+! Automatically restore non-continuous key, non-center, vertical
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key xpts,ypts,var
+
+! Polygons: the polymark script needs multiple key qualifiers to be in quotes.
+use coads_climatology
+def axis/x=0:360:5 xq
+def axis/y=-90:90:4 yq
+let fsst = sst[l=1,gx=xq,gy=yq]
+
+let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
+let lat = xsequence(0*x[gx=xq] + y[gy=yq])
+shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst ! set up
+
+go polymark poly/key="horiz,center"/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
+can data coads_climatology
+
+! Automatically restore regular handling of levels
+shade temp
+
diff --git a/bench/bn_conventions_history.jnl b/bench/bn_conventions_history.jnl
new file mode 100644
index 0000000..3d6e31c
--- /dev/null
+++ b/bench/bn_conventions_history.jnl
@@ -0,0 +1,19 @@
+! bn_conventions_history.jnl
+! ticket 2169:
+! Write conventions CF-1.6
+! When appending to the Conventions and history
+! attribute, add the new stuff with a comma and newline.
+
+sp cp conventions_history_in.nc conventions_history.nc
+use conventions_history
+!
+! The existing global attributes
+sh att .
+!
+! Write to the file
+let v3 = v1+v2
+save/append/file=conventions_history.nc v3
+can dat/all; use conventions_history
+!
+! The new attibutes
+sh att .
diff --git a/bench/bn_date1900_array.jnl b/bench/bn_date1900_array.jnl
new file mode 100644
index 0000000..20c1c7c
--- /dev/null
+++ b/bench/bn_date1900_array.jnl
@@ -0,0 +1,18 @@
+! bn_date1900_array.jnl
+! Let date1900 accept an array of date strings, returning a list
+! of coordinate values, days since 1-jan-1900.
+
+
+sh func/details date1900
+
+! Function always worked just on one date string.
+list date1900("01-jan-2001")
+
+
+! Now the argument can be an array
+let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
+list date1900(datestrings)
+
+def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
+list t[gt=taxis]
+
diff --git a/bench/bn_dsg_e_x.jnl b/bench/bn_dsg_e_x.jnl
index af0f8e4..64af4b5 100644
--- a/bench/bn_dsg_e_x.jnl
+++ b/bench/bn_dsg_e_x.jnl
@@ -11,3 +11,15 @@ sh dat
sh att profile
sh grid rowsize
sh grid sal
+
+! This file from the datset "West Coast Carbon cruises" in our
+! example erdadp, has the cf_role attribute on a coordinate variable.
+! prof, time, latitude, longitude, and rowsize are on the E axis
+! press_db and pco2 are on the X asis
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+sh dat 2
+sh att (profile)
+sh grid rowsize
+sh grid pco2
diff --git a/bench/bn_global_atts.jnl b/bench/bn_global_atts.jnl
new file mode 100644
index 0000000..df25c5a
--- /dev/null
+++ b/bench/bn_global_atts.jnl
@@ -0,0 +1,29 @@
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.91 (beta)
+ ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
+ ! 7-Apr-14 16:41
+
+sp cp 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
+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 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
+use anew_global.nc
+sh att .
+let var = 8
+save/append/file=anew_global.nc var
+can dat/all; use anew_global.nc
+sh att .
+
+
+
diff --git a/bench/bn_plot.jnl b/bench/bn_plot.jnl
index 61653b0..b60f16e 100644
--- a/bench/bn_plot.jnl
+++ b/bench/bn_plot.jnl
@@ -136,7 +136,7 @@ plot/i=1:10/ylimits=1:40/nolabel i ! note that /nolabel supresses XLAB
plot/i=1:10/over/sym=2 i^1.1
plot/i=1:10/over/sym=2/size=.12 i^1.2
plot/i=1:10/over/sym=2/color=red i^1.3
-plot/i=1:10/over/thick/step i^1.4
+plot/i=1:10/over/thick/step/color=light_blue i^1.4
plot/i=1:10/over/thick/color=blue/step=connected i^1.5
plot/i=1:10/over/thick=3/color=purple/size=.14 i^1.6
diff --git a/bench/bn_polygon_log.jnl b/bench/bn_polygon_log.jnl
new file mode 100644
index 0000000..780399d
--- /dev/null
+++ b/bench/bn_polygon_log.jnl
@@ -0,0 +1,33 @@
+! bn_polygon_log.jnl
+! polygon plots on a log axis need tests
+
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let xpts = cos(x/10) + 2
+let ypts = x/10+1
+
+! Polygon plot
+
+set view ul
+polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+
+! Poly/vlog and /hlog
+! (known bug: Whats up with the colorbar labels?)
+set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
+set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
+set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
+
+! These are errors - log of negative values on axis
+
+set mode ignore
+
+let ybad = x/10 - 1
+let xbad = cos(x/10) + 0.8
+
+can view
+polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+
+set mode/last ignore
diff --git a/bench/bn_show_outfile.jnl b/bench/bn_show_outfile.jnl
new file mode 100644
index 0000000..c94ea5d
--- /dev/null
+++ b/bench/bn_show_outfile.jnl
@@ -0,0 +1,83 @@
+! bn_show_outfile
+! Adding tests for SHOW/OUTFILE=
+! Previously only tests when SHOW/XML/OUTFILE=
+! Bugs in SHOW/OUTFILE reported in ticket 2194
+! 8/18/2014
+
+! test various combinations of /append and /clobber
+
+!can mode verify
+
+! show axis/outfile
+
+
+sho ax/clobber/outfile=a.txt month_irreg
+sho ax/clobber/outfile=a.txt month_irreg
+
+SAY ---------------- Just axis month_irreg
+sp cat a.txt
+
+show axis/append/outfile=a.txt PS*
+
+SAY ---------------- appending all axes starting with PS
+sp cat a.txt
+
+! show grid/outfile
+
+use coads_climatology
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just the grid of sst
+sp cat a.txt
+
+! show var/outfile
+
+use coads_climatology
+let two = 2
+let myvar = sst*2
+show var/clobber/outfile=a.txt myvar, two
+
+SAY ---------------- show var output from two user vars
+sp cat a.txt
+cancel var/all
+
+! show data/outfile
+
+show data/append/outfile=a.txt
+
+SAY ---------------- appending show data
+sp cat a.txt
+
+! combinations of /append and /clobber
+
+show data/clobber/outfile=a.txt
+show data/clobber/outfile=a.txt
+
+SAY ---------------- Just show data, two show data/clobber commands in a row
+sp cat a.txt
+
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just grid of sst
+sp cat a.txt
+
+use coads_climatology
+use levitus_climatology
+
+show data/clobber/outfile=a.txt 1
+
+SAY ---------------- Just dataset 1
+sp cat a.txt
+
+show data/append/outfile=a.txt levitus_climatology
+
+SAY ---------------- appending datset 2 by name
+sp cat a.txt
+show grid/clobber/outfile=a.txt PS3*
+
+SAY ---------------- only showing all grids starting with PS3
+sp cat a.txt
+
+SAY ---------------- tests sending output of vtree to a file
+GO bn_vtree_outfile
+
diff --git a/bench/bn_spawn_size.jnl b/bench/bn_spawn_size.jnl
new file mode 100644
index 0000000..441cf34
--- /dev/null
+++ b/bench/bn_spawn_size.jnl
@@ -0,0 +1,27 @@
+! bn_spawn_size.jnl
+! Return the size of the result of a spawn, not
+! the nominalabstract axis length.
+
+! ticket 981
+
+let files = {spawn:"ls *cdf*.jnl"}
+list files
+say `files,return=isize`
+
+! Evaluate size without loading the variable first
+let datfiles = {spawn:"ls *.dat"}
+say `datfiles,return=isize`
+
+! expression syntax
+say `{spawn:"ls xml*.jnl"},return=isize`
+list {spawn:"ls xml*.jnl"}
+
+! Test variables based on output of a spawn.
+! These already worked correctly, has a grid-changing function.
+
+LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+say `filesets, return=isize`
+
+let files = {spawn:"ls *cdf*.jnl"}
+let name_len = strindex(files, ".sub")
+say `name_len, return=isize`
diff --git a/bench/bn_vtree_outfile.jnl b/bench/bn_vtree_outfile.jnl
new file mode 100644
index 0000000..e22a787
--- /dev/null
+++ b/bench/bn_vtree_outfile.jnl
@@ -0,0 +1,185 @@
+! bn_tree_outfile.jnl
+
+! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+
+CANCEL DATA/ALL
+! pure abstract variable -- no dataset
+let a = 1
+
+!
+show var/tree/outfile=a.txt/clobber a
+show var/tree/outfile=a.txt/clobber a
+sp cat a.txt
+
+let b = 1
+let c = SIN(b)
+show var/tree/outfile=a.txt/clobber c
+sp cat a.txt
+
+! create dummy datasets so we'll have named file variables to play with
+let fv1 = 1
+let fvx = x[i=1:3]
+let fvz = Z[k=1:3]
+SAVE/CLOBBER/QUIET/FILE=my_file_vars.nc fv1, fvx, fvz
+SAVE/CLOBBER/QUIET/FILE=other_file_vars.nc fv1
+SAVE/CLOBBER/QUIET/FILE=another_file_vars.nc fv1
+CAN VAR/ALL
+use my_file_vars, other_file_vars, another_file_vars
+set data 1
+
+! ================
+
+! more pure abstract variables
+let a = 1
+let b = 1
+let c = SIN(b)
+go bn_vtree_outfile.sub c
+
+! file variables
+go bn_vtree_outfile.sub fv1
+show var/tree/outfile=a.txt/clobber/d=other_file_vars fv1
+sp cat a.txt
+
+! expressions
+let a = fv1 + fvx
+go bn_vtree_outfile.sub a
+
+let a = fv1[d=1] - fv1[d=2]
+vtree=file a
+vtree=all a
+vtree=all /d=1 a
+vtree=all /d=2 a
+\say "********************************"
+
+! unrecognized variable names
+go bn_vtree_outfile.sub noexist
+
+! unrecognized dataset
+go bn_vtree_outfile.sub v[d=noexist]
+
+! unrecognized dataset and variable
+go bn_vtree_outfile.sub novar[d=nodset]
+
+let b = noexist
+go bn_vtree_outfile.sub b
+
+! grid-changing functions
+go bn_vtree_outfile.sub RESHAPE(fvx,fvz)
+
+! file variable aux var
+LET Zpts = Z[Z=0:500:100]
+define axis/z/units=meters zax = zpts
+LET fv1z = fv1[gz(fvz)=zpts] + fvx
+go bn_vtree_outfile.sub fv1z
+
+! user-defined aux vars
+let depth = z[g=fvz]
+LET fv1z = fv1[gz(depth)=zpts] + fvx
+go bn_vtree_outfile.sub fv1z
+
+let depth = z[g=fvz]+ 0*fvz[k=1]
+LET fv1z = fv1[gz(depth)=zpts] + fvx
+go bn_vtree_outfile.sub fv1z
+
+! unknown aux var
+LET fv1z = fv1[gz(noexist)=zpts] + fvx
+go bn_vtree_outfile.sub fv1z
+
+! unknown variable with known aux var
+LET fv1z = noexist[gz(depth)=zpts] + fvx
+go bn_vtree_outfile.sub fv1z
+
+! unknown variable with unknown aux var
+LET fv1z = noexist[gz(unknown_aux)=zpts] + fvx
+go bn_vtree_outfile.sub fv1z
+
+! aggregate (ensemble) dataset of file variables
+define data/agg my_agg = my_file_vars, other_file_vars, another_file_vars
+go bn_vtree_outfile.sub fv1
+
+! aggregation in which some members are uvars
+let/d=other_file_vars fvx = fv1 + x[gx=fvx[d=1],i=1:3]
+let/d=another_file_vars fvx = 2*fv1 + x[gx=fvx[d=1],i=1:3]
+define data/agg my_uvar_agg = my_file_vars, other_file_vars, another_file_vars
+go bn_vtree_outfile.sub fvx
+
+! recursions
+! ... a circular parent dependency is a recursion; sibling dependency is not
+let p0 = s1 + p1
+let p1 = s2 + p2
+let p2 = s3 + p3
+let p3 = p1 + S3
+go bn_vtree_outfile.sub p0 ! recursion
+let p3 = s1 + S3
+go bn_vtree_outfile.sub p0 ! ok
+
+! suppressing duplicated siblings (twins)
+let fv = fv1 + fv1 + fv1
+let uv = fvx + fvx + fvx
+show var/tree/outfile=a.txt/clobber/d=my_file_vars fv
+show var/tree/outfile=a.txt/append/d=my_uvar_agg fv
+show var/tree/outfile=a.txt/append/d=other_file_vars uv
+show var/tree/outfile=a.txt/append/d=my_uvar_agg uv
+sp cat a.txt
+\say "***************************"
+
+! suppressing duplicates elsewhere in the family tree ("defined above")
+let b = c
+let c = 1
+let v1 = a + b + b^2
+let v2 = v1 + b + a + a ! a appears after v1
+let v3 = a + v1 + b + a + a ! a appears before v1
+go bn_vtree_outfile.sub v2
+go bn_vtree_outfile.sub v3
+
+! collections of trees handled as a group
+! display from large tree size to small, suppressing definitions already displayed
+cancel var/all
+let a = f
+let b = fv1[d=my_file_vars]
+let c = 1
+let d = b + c
+let e = 1
+go bn_vtree_outfile.sub "a, b, c, noexist, d, e, fvx[d=my_file_vars]"
+
+! reporting other errors in definitions
+ set mode ignore
+
+ ! unidentified grid
+ let a = i[i=1:5]
+ let b = a[g=noexist]
+ go bn_vtree_outfile.sub b
+ list b
+
+ ! syntax error - format of longitude
+ let c = a[x=45s]
+ go bn_vtree_outfile.sub c
+ list c
+
+ ! syntax error - extra comma
+ let d = a[i=1,,j=2]
+ go bn_vtree_outfile.sub d
+ list d
+
+ ! syntax error - unknown pseudovariable
+ let e = a[p=1]
+ go bn_vtree_outfile.sub e
+ list e
+
+ ! out of limit region -- not detectable as error, because grids are never determined
+ let f = a[i=10]
+ go bn_vtree_outfile.sub f
+ list f
+
+ set mode/last ignore
+
+! dependency through attribute sharing (not yet implemented)
+let a = fvz.long_name[d=1]
+show var/tree/outfile=a.txt/clobber a
+sp cat a.txt
+let a = ..history[d=1]
+show var/tree/outfile=a.txt/clobber a
+sp cat a.txt
+
+set mode verify
+
diff --git a/bench/bn_vtree_outfile.sub b/bench/bn_vtree_outfile.sub
new file mode 100644
index 0000000..6bdde9a
--- /dev/null
+++ b/bench/bn_vtree_outfile.sub
@@ -0,0 +1,19 @@
+\cancel mode verify
+
+say "/TREE=ALL"
+vtree=all/clobber/outfile=a.txt ($1)
+say "/TREE=USER"
+vtree=user/append/outfile=a.txt ($1)
+say "/TREE=FILE"
+vtree=file/append/outfile=a.txt ($1)
+
+if `($1),return=IsReady` then
+ say ($1) is ready and `($1),return=status`
+else
+ say the problem is `($1),return=status`
+endif
+
+say "************************"
+sp cat a.txt
+
+!set mode/last verify
diff --git a/bench/bn_wgt_transform.jnl b/bench/bn_wgt_transform.jnl
new file mode 100644
index 0000000..ba36581
--- /dev/null
+++ b/bench/bn_wgt_transform.jnl
@@ -0,0 +1,40 @@
+! bn_wgt_transform.jnl test new @WGT transform,
+! returns weights used in the equiv. average or integral transform
+! ACM 7/2014
+
+! Define an XYT grid
+
+def axis/x=2:360:2/units=degrees_east x2
+def axis/y=-89:89:2/units=degrees_north y2
+let var = x[gx=x2] + y[gy=y2] + t[gt=month_irreg]
+let weights= var[x=@wgt,y=@wgt,t=@wgt]
+
+! Varies in y with latitude correction
+shade/l=1 weights
+
+! Sum of xy transform is the surface area of the earth, meters
+let weights= var[x=@wgt,y=@wgt]
+list/l=1 weights[i=@sum,j=@sum]
+
+! Varies in T because of irregular t axis
+shade/x=1 weights
+
+
+! The result t=@WGT returned in seconds
+let mywt = var[t=@wgt]
+
+let secperday = 24*3600
+list/x=1/y=1 mywt, mywt/secperday
+
+! Test reusing results. (ticket 2183)
+use gt4d011.cdf
+! The last value is a partial grid cell
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+
+! Now load the result over a larger region
+list/y=1.5/x=130w/z=0:82/t=1-sep-1982 temp[z=@wgt]
+
+! This finds the previous result in memory - needs to
+! reuse the correct one.
+
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
diff --git a/bench/check_metafiles_rh6 b/bench/check_metafiles_rh6
deleted file mode 100755
index 19397da..0000000
--- a/bench/check_metafiles_rh6
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/csh -f
-# script to check metafiles (.plt*, .gif* and .ps) created after a run of the
-# benchmark routine against master metafiles.
-
-set plt_files = ( bn*.plt dots.plt flowlines.plt graticules.plt linecolors.plt multi_line_labels.plt \
-pattern*.plt polygon*.plt vec_curv*.plt)
-set gif_files = ( bn*.gif )
-set ps_files = (bn*.ps)
-set mb_files = (bat.plt_*)
-set num_plt_files = `ls -l *.plt | wc -l `
-
-set err_plt = 0
-set total_plt_files = 23
-foreach plt_file ($plt_files)
- set size = `ls -l $plt_file | awk '{print $5}'`
- set size2 = `ls -l metafile_masters_64bit_rh6/$plt_file | awk '{print $5}'`
- if ($size != $size2) then
- set err_plt = 1
- echo "plt files differ $plt_file size $size metafile_masters_64bit_rh6/ size $size2"
- endif
- if ($num_plt_files != $total_plt_files ) set err_plt = 1
-end
-
-set err_gif = 0
-foreach gif_file ($gif_files)
- set size = `ls -l $gif_file | awk '{print $5}'`
- set size2 = `ls -l metafile_masters_64bit_rh6/$gif_file | awk '{print $5}'`
- if ($size != $size2) then
- set err_gif = 1
- echo "gif files differ $gif_file size $size metafile_masters_64bit_rh6/ size $size2"
- endif
-end
-
-set err_ps = 0
-foreach ps_file ($ps_files)
- set size = `ls -l $ps_file | cut -b 21-27`
- set size2 = `ls -l metafile_masters_64bit_rh6/$ps_file | cut -b 21-27`
- set size = `ls -l $ps_file | awk '{print $5}'`
- set size2 = `ls -l metafile_masters_64bit_rh6/$ps_file | awk '{print $5}'`
- if ($size != $size2) then
- set err_ps = 1
- echo "ps files differ $ps_file size $size metafile_masters_64bit_rh6/ size $size2"
- endif
-end
-
-set err_mb = 0
-foreach mb_file ($mb_files)
- set size = `ls -l $mb_file | cut -b 21-27`
- set size2 = `ls -l metafile_masters_64bit_rh6/$mb_file | cut -b 21-27`
- set size = `ls -l $mb_file | awk '{print $5}'`
- set size2 = `ls -l metafile_masters_64bit_rh6/$mb_file | awk '{print $5}'`
- if ($size != $size2) then
- set err_mb = 1
- echo "metafile batch files differ $mb_file size $size metafile_masters_64bit_rh6/ size $size2"
- endif
-end
-
-set any_error = 0
-if ($err_plt) then
- echo "CHECK PLT FILES - THERE HAS BEEN AN ERROR"
- if ($num_plt_files != $total_plt_files ) then
- echo "num_plt_files $num_plt_files There should be $total_plt_files"
- endif
- set any_error = 1
-else
- echo " PLT files look good....."
-endif
-if ($err_gif) then
- echo "CHECK GIF FILES - THERE HAS BEEN AN ERROR"
- set any_error = 1
-else
- echo " GIF files look good....."
-endif
-if ($err_ps) then
- echo "CHECK PS FILES - THERE HAS BEEN AN ERROR"
- set any_error = 1
-else
- echo " PS files look good......"
-endif
-if ($err_mb) then
- echo "CHECK metafile batch FILES - THERE HAS BEEN AN ERROR"
- set any_error = 1
-else
- echo " metafile batch files look good......"
-endif
-
-if ($any_error) then
- echo " "
- echo " If ImageMagick is available, run check_metafiles_ImageMagick_rh6 to see plot differences. "
- echo " As the script runs, it shows the standard plot, the plot from this benchmark run, and a diff plot. "
- echo " Delete the standard and benchmark plots first, then the diff plot. "
- echo " "
-endif
diff --git a/bench/conventions_history_in.nc b/bench/conventions_history_in.nc
new file mode 100644
index 0000000..7cb1369
Binary files /dev/null and b/bench/conventions_history_in.nc differ
diff --git a/bench/err686_set_var_name.jnl b/bench/err686_set_var_name.jnl
index 6adf569..5062b31 100644
--- a/bench/err686_set_var_name.jnl
+++ b/bench/err686_set_var_name.jnl
@@ -14,6 +14,15 @@ set var/name=c a
sh var
use gt4d011.cdf
+! again, with user-variables and an open dataset the message is as above
+
+let a = 1
+let b = 2
+set var/name=b a
+
+! Intentional error, new name already in file
+
+
! Intentional error, new name already in file
set var/name=temp salt
show dat
@@ -29,6 +38,7 @@ set var/name=psi myvar
set var/name=diff myvar
show dat
-
+! another error, new name is a user-var
+yes? set var/name=diff w
SET MODE/LAST ignore
diff --git a/bench/err691_bnds_case.jnl b/bench/err691_bnds_case.jnl
new file mode 100644
index 0000000..fc8030d
--- /dev/null
+++ b/bench/err691_bnds_case.jnl
@@ -0,0 +1,10 @@
+! err691_bnds_case
+! 6/30/14
+! Ticket 2182 bounds variable incorrectly created with upper-cased axis name
+
+def ax/t tax = {1,2,4,8}
+let tval = t[gt=tax]
+can mode upcase_output
+save/clob/file=tval.nc tval
+
+set mode/last upcase_output
diff --git a/bench/err69_arg_type_error.jnl b/bench/err69_arg_type_error.jnl
new file mode 100644
index 0000000..d6f2737
--- /dev/null
+++ b/bench/err69_arg_type_error.jnl
@@ -0,0 +1,17 @@
+! err69_arg_type_error
+! See ticket 2169
+!
+set mode ignore
+sh func tax_datestring
+sh func /detail tax_datestring
+
+define axis/t=1-jan-2000:31-jan-2000:1/units=days my_tax
+let tt = t[gt=my_tax]
+
+! Intentional errors
+list tax_datestring (tt[L=3], tt, 5)
+list tax_datestring (tt[L=3], tt, "minutes")
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+
+set mode /last ignore
+
diff --git a/bench/err69_bad_bounds.jnl b/bench/err69_bad_bounds.jnl
new file mode 100644
index 0000000..1af8e8b
--- /dev/null
+++ b/bench/err69_bad_bounds.jnl
@@ -0,0 +1,25 @@
+! err69_bad_bounds.jnl
+! See ticket 2170
+
+set mode ignore
+
+! time axis has a point_spacing=even attribute
+! and an invalid set of bounds.
+! caused Ferret to mis-read the time axis
+use badbounds_even.nc
+list var, tbox[gt=var]
+
+! Same time axis but with a different error in the bounds
+! also has a point-spacing=even attribute
+! caused Ferret to mis-read the time axis
+use badbounds_non_enclose
+list var, tbox[gt=var]
+
+! Same definition except that the coordinates are irregularly
+! spaced, no point-spacing attribute.
+use badbounds_uneven
+list var, tbox[gt=var]
+
+sh axis TAX_BB*
+
+set mode/last ignore
diff --git a/bench/err69_const_array.jnl b/bench/err69_const_array.jnl
new file mode 100644
index 0000000..2d9666f
--- /dev/null
+++ b/bench/err69_const_array.jnl
@@ -0,0 +1,26 @@
+! err69_const_array.jnl
+! 5/8/2014 ACM
+! See ticket 2174
+! expressions are not allowed in constant-array definitions.
+
+set mode ignore
+
+! The code to read constant-array definitions into memory was simply doing
+! a read on each comma-separated portion of the command-line defining it.
+! Need to first determine if the buffer represents a simple constant.
+
+! These already returned an error as cos(1) can't be read with a Fortran read.
+list {cos(1), sin(0)}
+
+! Previously the first was read as {0,180} and the second as {0.1,0.2,1}, and
+! the third as {30,2000} !
+! They should be reported as syntax errors
+
+list {0-180, 180}
+list {0.1, 0.2, 1./5.}
+list {5*3+1, 2+3}
+
+! These are ok, and always have been
+list/prec=8 {-0.001, 1.23e-2, -45.e3}
+
+set mode/last ignore
diff --git a/bench/err69_countervar_context.jnl b/bench/err69_countervar_context.jnl
new file mode 100644
index 0000000..d5c306c
--- /dev/null
+++ b/bench/err69_countervar_context.jnl
@@ -0,0 +1,11 @@
+! err69_countervar_context.jnl
+! ACM 10/3/2014
+! Ticket 2200. Context from SET REGION should not
+! apply in named-repeat loop. The loop would run,
+! but returned values of 0.
+
+let a = b
+set region/i=20:30
+repeat/name=b/range=1:3 (say `a`)
+
+can region
diff --git a/bench/err69_ens_badvalue.jnl b/bench/err69_ens_badvalue.jnl
new file mode 100644
index 0000000..272b8bf
--- /dev/null
+++ b/bench/err69_ens_badvalue.jnl
@@ -0,0 +1,14 @@
+! err69_ens_badvalue.jnl
+!
+! Datasets have _FillValue but not missing_value attributes.
+! In this case the missing data info was not correctly handled
+! when defining an ensemble.
+
+use maize_1.nc, maize_2.nc, maize_3.nc
+
+! Note the _FillValue, flag
+sho att maize_yield
+ensemble ens = 1,2,3
+
+! MAIZE_YIELD[M=@NGD] should have values of 0, 2, and 3.
+list/y=29.25 MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3], MAIZE_YIELD[m=@ngd]
diff --git a/bench/err69_fill_trans.jnl b/bench/err69_fill_trans.jnl
new file mode 100644
index 0000000..d535078
--- /dev/null
+++ b/bench/err69_fill_trans.jnl
@@ -0,0 +1,18 @@
+! err69_fill_trans.jnl
+! ticket 2196. Visible only if bounds-checking is turned on.
+! 9/22/2014
+
+DEFINE AXIS/x=1:15:1 xaxis
+let var = {1,2,3,,,,,,,4,,5,6,7,8}
+LET myvar = var[gx=xaxis at asn]
+
+list myvar
+list myvar[x=6 at fnr:2]
+
+! This caused attempt to load variable at index i = -4
+list myvar[x=6 at fnr:10]
+
+! Likewise the way @FAV is computed, this caused Ferret
+! to try to get data at i=-3
+list myvar[x=6 at fav:18]
+
diff --git a/bench/err69_if_then_split.jnl b/bench/err69_if_then_split.jnl
new file mode 100644
index 0000000..bb61b9c
--- /dev/null
+++ b/bench/err69_if_then_split.jnl
@@ -0,0 +1,42 @@
+! err69_if_then_split.jnl
+! bug1860
+! In an IF clause not being executed,
+! an IF expression THEN command which
+! is split over two lines caused an error
+
+say "This works:"
+if 1 then
+ if `1 or \
+ 1` then
+ say "hi"
+ endif
+endif
+
+say "This works:"
+if 1 then
+ if `1 or \
+ 1` then
+ say "hi"
+ endif
+endif
+
+say "This works:"
+if 0 then
+ let condition = 1 or \
+ 1
+ if `condition` then
+ say "hi"
+ endif
+endif
+
+say "This failed:"
+if 0 then
+ if `1 or \
+ 1` then
+ say "hi"
+ endif
+endif
+
+
+say end of err69_if_then_split
+
diff --git a/bench/err69_isready_and_regridding.jnl b/bench/err69_isready_and_regridding.jnl
new file mode 100644
index 0000000..63a57b5
--- /dev/null
+++ b/bench/err69_isready_and_regridding.jnl
@@ -0,0 +1,36 @@
+! err69_isready_and_regridding.jnl
+! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
+! state after other contexts have been defined
+
+can dat/all
+
+! create & load a file with a Gregorian time axis
+def ax/t/unit=days/t0=1-jan-1979 tax_g = {15,45,75,105,135}
+let a = t[gt=tax_g]
+save/clob/file=a.nc a
+can var a
+can ax tax_g
+use a.nc
+
+! create a variable on a Julian time axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=julian/unit="hour"/t0=1-jan-1900 tax_j
+let b = t[gt=tax_j]
+
+! put the Gregorian data on the Julian axis
+let a2 = a
+let a2_on_b = a2[gt=b]
+
+! create a climatological axis (Julian)
+def ax/t/unit=days/t0=1-jan-0001/modulo=365.25/cal=julian tax_jc = {15.5,45.125,74.75,105.25,135.75,166.25,196.75,227.75,258.25,288.75,319.25,349.75}
+
+let b_one = missing(1+0*b,1) !set everything to 1
+let nyr = b_one[gl=tax_jc at modsum] !# years that include each month
+
+! Execute some commands which put things into context storage
+
+say `a2_on_b,r=title`
+say `nyr[l=1]`
+
+! This got us into a weird hanged state
+IF `a2_on_b,r=isready` THEN
+ENDIF
diff --git a/bench/err69_isready_bugs.jnl b/bench/err69_isready_bugs.jnl
new file mode 100644
index 0000000..d20800a
--- /dev/null
+++ b/bench/err69_isready_bugs.jnl
@@ -0,0 +1,28 @@
+! err69_isready_bugs.jnl
+! Tickets 2201 and 2215
+
+! ticket 2201: isready operation meant we couldn't cancel the second axis
+
+def ax/x=0:360:1 xax_isready_1
+def ax/x=0:360:10 xax_isready_2
+let a = x[gx=xax_isready_1]
+say `a,r=title`
+let b = a[gx=xax_isready_2]
+load b
+say `b,r=isready`
+
+
+can var a
+can axis xax_isready_1
+can var b
+can axis xax_isready_2
+
+! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
+
+let a = x[gx=1:3:1]
+let b = a - a[gx=a]
+let c = 1
+let/unit="m" f = b*c
+say `f,r=isready`
+
+say `f,r=unit`
diff --git a/bench/err69_isready_status_errmsgs.jnl b/bench/err69_isready_status_errmsgs.jnl
new file mode 100644
index 0000000..fd4081c
--- /dev/null
+++ b/bench/err69_isready_status_errmsgs.jnl
@@ -0,0 +1,15 @@
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+say `c,return=status`
+list a
+list b
+shade a
+
+set mode/last ignore
+
diff --git a/bench/err69_label_backspace.jnl b/bench/err69_label_backspace.jnl
new file mode 100644
index 0000000..a32cdbc
--- /dev/null
+++ b/bench/err69_label_backspace.jnl
@@ -0,0 +1,7 @@
+! err69_label_backspace
+! Ticket 2203: \\ before a character backspaces before
+! making the character. This broke in the 64-bit versions.
+
+plot/vs/nolab {0,1},{0,1}
+label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
+
diff --git a/bench/err69_letd_dsetnum.jnl b/bench/err69_letd_dsetnum.jnl
new file mode 100644
index 0000000..b9b9f44
--- /dev/null
+++ b/bench/err69_letd_dsetnum.jnl
@@ -0,0 +1,7 @@
+! err69_letd_dsetnum.jnl
+! Ticket 2189. Previously the grave-accent expression didn't get
+! translated, and the let command failed.
+
+use coads_climatology
+let/d=`sst,r=dsetnum` a = 1
+sh dat
diff --git a/bench/err69_levels_v.jnl b/bench/err69_levels_v.jnl
new file mode 100644
index 0000000..88c16f2
--- /dev/null
+++ b/bench/err69_levels_v.jnl
@@ -0,0 +1,14 @@
+! err69_levels_v.jnl
+! Ferret ticket 2186, and LAS ticket 1598
+! the data has values in the range 300 to 500,
+! and several values over 100000. The variance-
+! based levels returned useless levels. Changes
+! made to throw out data outside 3 std when
+! computing the mean and std dev for color levels.
+
+use "lev_v_bug.nc"
+shade/lev=v var2d
+
+! previously the computed levels spanned -8000 to 16000.
+sh sym *lev*
+
diff --git a/bench/err69_load_big_grid.jnl b/bench/err69_load_big_grid.jnl
new file mode 100644
index 0000000..302c5ab
--- /dev/null
+++ b/bench/err69_load_big_grid.jnl
@@ -0,0 +1,24 @@
+! err69_load_big_grid
+! ticket 1758
+! error about "a negative number of words requested... grid too large"
+! in fact all large grids misreports size. Now computations are done
+! in real numbers and in block not word sizes.
+
+set mode ignore
+
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+
+! this gave the error about "a negative number of words requested... grid too large"
+define axis/t=1-jan-2000:1-jan-2005:1/units=days longtime
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+load bigvar
+
+! also was an incorrect size.
+define axis/t=1-jan-2000:1-jan-2010:1/units=days longtime
+sh grid bigvar
+load bigvar
+
+cancel mode ignore
diff --git a/bench/err69_long_string_to_xml.jnl b/bench/err69_long_string_to_xml.jnl
new file mode 100644
index 0000000..86c13e9
--- /dev/null
+++ b/bench/err69_long_string_to_xml.jnl
@@ -0,0 +1,12 @@
+! err69_long_string_to_xml.jnl
+! ticket 2190 8-8-2014
+! previously the string was cut off at 512 characters. For this example
+! it was in the middle of the code AAAAAAAAAAAA
+!
+
+list/clobber/file="out.xml"/nohead/norow 1
+LET longstring = "Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC2004 [...]
+LET status = list_value_xml ("mytag", longstring, 1, "out.xml")
+LOAD status
+
+sp cat out.xml
diff --git a/bench/err69_multi_label_ascii.jnl b/bench/err69_multi_label_ascii.jnl
new file mode 100644
index 0000000..712d5ec
--- /dev/null
+++ b/bench/err69_multi_label_ascii.jnl
@@ -0,0 +1,29 @@
+! err69_multi_label_ascii.jnl
+! 5/2014 ACM
+! ticket 2176
+! Multi-line labels and ascii fonts.
+
+plot/vs/nolab {0,1},{0,1}
+
+
+label .05 .96 0 0 .12 "@CR at P4Single Line examples. Ascii font with and without escape for new color:"
+label .05 .9 0 0 .16 "@ASNo_escapes at c002good_1@c003friend_2"
+label .05 .83 0 0 .16 "@ASEscape_new_colors@c002red_1@c003green_2"
+
+
+label .05 .65 0 0 .12 "@CR at P4Multi Line ascii examples:"
+
+label .05 .56 0 0 .12 "@CR at P4without escape"
+label .05 .5 0 0 .16 "@ASNo_escapes<NL>@c002good_1<NL>@c003friend_2"
+
+label .55 .56 0 0 .12 "@CR at P4with escape:"
+label .55 .5 0 0 .16 "@ASEscape_new_colors<NL>@c002red_1<NL>@c003green_2"
+
+! escape just the special characters.
+label .05 .26 0 0 .12 "@CR at P4Settings around underscores:"
+label .05 .2 0 0 .16 "hello at AS_@SRthere<NL>@c002good at AS_@SR1<NL>@c003friend at AS_@SR2"
+
+! escape new pen setting, not the font
+label .55 .26 0 0 .12 "@CR at P4Escape just the color changes:"
+label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2"
+
diff --git a/bench/err69_plot_vs_labs.jnl b/bench/err69_plot_vs_labs.jnl
new file mode 100644
index 0000000..9f176b1
--- /dev/null
+++ b/bench/err69_plot_vs_labs.jnl
@@ -0,0 +1,21 @@
+! err69_plot_vs_labs.jnl
+! ticket 2187: the axis labels on the dependent axis
+! for PLOT/VS is wrong. LABX and LABY contain the labels used.
+
+use coads_climatology
+
+let a = sst[L=1]
+let b = a[x=180e:100w at ave]
+let c = a[x=150w:90w at ave]
+let d = a[x=150w:90w at ave]
+set v left; plot/vs b,c; sh sym labx,laby
+set v right; plot/vs c,b; sh sym labx,laby
+
+can view
+plot/vs/ribbon c,b,d; sh sym labx,laby
+
+set v left; plot/trans/vs b,c; sh sym labx,laby
+set v right; plot/trans/vs c,b; sh sym labx,laby
+
+can view
+plot/vs/trans/ribbon c,b,d; sh sym labx,laby
diff --git a/bench/err69_repeat_in_if.jnl b/bench/err69_repeat_in_if.jnl
new file mode 100644
index 0000000..ddb0ba1
--- /dev/null
+++ b/bench/err69_repeat_in_if.jnl
@@ -0,0 +1,55 @@
+! err69_repeat_in_if.jnl
+! Ticket 2211: IF-THEN-ELSE inside a REPEAT inside a non-executed IF block
+! (see also err62_if_inside_repeat, which had less-involved cases.)
+
+cancel mode verify
+
+IF 0 THEN
+ repeat/name=s/range=1:1 (\
+ if 1 then;\
+ say loop 1 inside repeat;\
+ else;\
+ DEFINE SYMBOL mystring= ();\
+ endif;\
+ )
+ELSE
+ say loop 1 this should be echoed
+ENDIF
+
+IF 0 THEN
+ say loop 2 this should not be echoed
+ELSE
+ repeat/name=s/range=1:1 (\
+ if 1 then;\
+ say loop 2 inside repeat;\
+ else;\
+ DEFINE SYMBOL mystring= ();\
+ endif;\
+ )
+ENDIF
+
+IF 1 THEN
+ repeat/name=s/range=1:1 (\
+ if 1 then;\
+ say loop 3 inside repeat;\
+ else;\
+ DEFINE SYMBOL mystring= ();\
+ endif;\
+ )
+ELSE
+ say loop 3 this string should not be shown
+ENDIF
+
+IF 1 THEN
+ say loop 4 this string should be echoed
+ELSE
+ repeat/name=s/range=1:1 (\
+ if 1 then;\
+ say loop 4 inside repeat;\
+ else;\
+ DEFINE SYMBOL mystring= ();\
+ endif;\
+ )
+ENDIF
+
+set mode/last verify
diff --git a/bench/err69_repl_scinot.jnl b/bench/err69_repl_scinot.jnl
new file mode 100644
index 0000000..d8987c4
--- /dev/null
+++ b/bench/err69_repl_scinot.jnl
@@ -0,0 +1,15 @@
+! err69_repl_scinot.jnl
+! ticket 2175
+! The returned number had a bunch of trailing spaces
+
+let a = 1.e-10
+say (`a`)
+
+let a = -1.e-10
+say (`a`)
+
+let a = -1.23e-10
+say (`a`)
+
+let a = -1.23e-2
+say (`a`)
diff --git a/bench/err69_ribbon_by_levels.jnl b/bench/err69_ribbon_by_levels.jnl
new file mode 100644
index 0000000..c1f783f
--- /dev/null
+++ b/bench/err69_ribbon_by_levels.jnl
@@ -0,0 +1,21 @@
+! err69_ribbon_by_levels.jnl
+! ACM 5/19/2014
+! See ticket 2179
+! colors were not repeating after the first 10.
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
+
diff --git a/bench/err69_ribbon_histogram.jnl b/bench/err69_ribbon_histogram.jnl
new file mode 100644
index 0000000..2fcb580
--- /dev/null
+++ b/bench/err69_ribbon_histogram.jnl
@@ -0,0 +1,23 @@
+! err69_ribbon_histogram.jnl
+! ACM 5/24/2014
+! Histogram levels with ribbon line plots
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,1.9,1.1,1.3,1.1,1.2,2.3,\
+2.4,2.4,2.2,2.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+! linear levels, then histogram levels
+can view; set v left
+ribbon/vs/line/thick/lev=10 xpts,ypts,var
+set v right
+ribbon/vs/line/thick/lev=10h xpts,ypts,var
diff --git a/bench/err69_vtree_and_uvar_regrid.jnl b/bench/err69_vtree_and_uvar_regrid.jnl
new file mode 100644
index 0000000..8cd58a6
--- /dev/null
+++ b/bench/err69_vtree_and_uvar_regrid.jnl
@@ -0,0 +1,8 @@
+! err69_vtree_and_uvar_regrid.jnl
+! Ticket 2206: This lead to a crash.
+! 10/9/2014
+
+let a = t[gt=1:2:1]
+let b2 = a
+let c = b2[gt=a]
+GO bn_vtree.sub c
diff --git a/bench/err69_vtree_cancel_axis.jnl b/bench/err69_vtree_cancel_axis.jnl
new file mode 100644
index 0000000..a279c75
--- /dev/null
+++ b/bench/err69_vtree_cancel_axis.jnl
@@ -0,0 +1,19 @@
+! err69_vtree_cancel_axis
+! Ticket 2201: After a return=isready,
+! cannot cancel the axis used by the var
+! 10-Oct-2014
+
+define axis/x=0:360:1 xax1
+define axis/x=0:360:10 xax2
+
+let a = x[gx=xax1]
+say `a,return=title`
+
+let b = a[gx=xax2]
+say `b,return=isready`
+
+cancel var a b
+cancel axis xax1
+cancel axis xax2
+
+
diff --git a/bench/err69_write_attribute.jnl b/bench/err69_write_attribute.jnl
new file mode 100644
index 0000000..85b1906
--- /dev/null
+++ b/bench/err69_write_attribute.jnl
@@ -0,0 +1,62 @@
+! err69_write_attribute.jnl
+! Bug 1863
+
+use gt4d011.cdf
+sh grid temp
+let a = temp[x=@ave,y=@ave,L=1]
+
+! The attribute we ask not to write is not written for this variable
+can att/output (`a,r=zaxis`).point_spacing
+save/q/clob/file="a.nc"/bounds a
+sp ncdump -h a.nc | grep -i "`a,r=zaxis`"
+
+! But it was being written for this one. It should not.
+let b = temp[x=@ave,y=@ave,L=1,d=1]
+save/q/clob/file="a.nc"/bounds b
+sp ncdump -h a.nc | grep -i "`b,r=zaxis`"
+
+! A variable that depends on more than one dataset.
+use coads_climatology
+let c = temp[x=@ave,y=@ave,L=1,d=1] + sst[x=@ave,y=@ave,t=@ave,d=2]
+save/q/clob/file="a.nc"/bounds c
+sp ncdump -h a.nc | grep -i "`c,r=zaxis`"
+
+can data/all
+can var/all
+
+! When there are two datasets with the same axis name but different depths,
+! the second axis name is changed internally.
+
+DEFINE AXIS/z/depth zzdep = {0,10,20,30,50,75,100,150,200,300,400,600,800,1000,1200,1500,2000,3000,4000,5000}
+
+LET temp = z[gz=zzdep]
+save/clobber/file=aa.nc temp
+save/clobber/keep/file=bb.nc temp[k=1:15]
+can var/all
+can axis zzdep
+
+use aa
+use bb
+set data 1
+
+show att (`temp,r=zaxis`)
+
+let a = temp[d=1,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+
+set data 2
+let a = temp[d=2,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+
+let a = temp[d=2,gz=temp[d=1]]
+
+can att/output (`a,r=zaxis`).point_spacing
+
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+
+sp rm aa.nc bb.nc
diff --git a/bench/global.nc b/bench/global.nc
new file mode 100644
index 0000000..5239f38
Binary files /dev/null and b/bench/global.nc differ
diff --git a/bench/lev_v_bug.nc b/bench/lev_v_bug.nc
new file mode 100644
index 0000000..7e90bc7
Binary files /dev/null and b/bench/lev_v_bug.nc differ
diff --git a/bench/maize_1.nc b/bench/maize_1.nc
new file mode 100644
index 0000000..cc739a1
Binary files /dev/null and b/bench/maize_1.nc differ
diff --git a/bench/maize_2.nc b/bench/maize_2.nc
new file mode 100644
index 0000000..7f29afa
Binary files /dev/null and b/bench/maize_2.nc differ
diff --git a/bench/maize_3.nc b/bench/maize_3.nc
new file mode 100644
index 0000000..66f1013
Binary files /dev/null and b/bench/maize_3.nc differ
diff --git a/bench/test_results/axticlabel.pdf b/bench/test_results/axticlabel.pdf
index c8fa9d8..2c84f66 100644
Binary files a/bench/test_results/axticlabel.pdf and b/bench/test_results/axticlabel.pdf differ
diff --git a/bench/test_results/bnplot.pdf b/bench/test_results/bnplot.pdf
index fe421b4..f9eb8d7 100644
Binary files a/bench/test_results/bnplot.pdf and b/bench/test_results/bnplot.pdf differ
diff --git a/bench/test_results/closed_lev.pdf b/bench/test_results/closed_lev.pdf
index b4db592..b97931c 100644
Binary files a/bench/test_results/closed_lev.pdf and b/bench/test_results/closed_lev.pdf differ
diff --git a/bench/test_results/dashbug.pdf b/bench/test_results/dashbug.pdf
index 39964d8..04a7002 100644
Binary files a/bench/test_results/dashbug.pdf and b/bench/test_results/dashbug.pdf differ
diff --git a/bench/test_results/degC_axlab.pdf b/bench/test_results/degC_axlab.pdf
index 876fbae..ab2d440 100644
Binary files a/bench/test_results/degC_axlab.pdf and b/bench/test_results/degC_axlab.pdf differ
diff --git a/bench/test_results/dots.pdf b/bench/test_results/dots.pdf
index 5c49080..8214a4b 100644
Binary files a/bench/test_results/dots.pdf and b/bench/test_results/dots.pdf differ
diff --git a/bench/test_results/ferret_run_tests_err b/bench/test_results/ferret_run_tests_err
index af78c6a..417940e 100644
--- a/bench/test_results/ferret_run_tests_err
+++ b/bench/test_results/ferret_run_tests_err
@@ -1,8 +1,8 @@
-Using FERRET /home/users/ksmith/Ferret/bin/ferret
-lrwxrwxrwx 1 ksmith tmap 11 Mar 31 15:35 /home/users/ksmith/Ferret/bin/ferret -> ferret_v6.9
-Using external functions from /home/users/ksmith/Ferret/ext_func/libs
+Using FERRET /home/flat/ksmith/Ferret/bin/ferret
+lrwxrwxrwx. 1 ksmith oerdnewp 12 Oct 30 11:11 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.93
+Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of Ferret on RHEL5-64
+Note: RUN_TESTS.sh test results for debug build of Ferret on RHEL6-64
Benchmark scripts that will be run:
bn_syntax.jnl
bn_dollar.jnl
@@ -216,27 +216,36 @@ Benchmark scripts that will be run:
bn_enter_exit_GO.jnl
bn_stddev.jnl
bn_set_axis_name.jnl
+ bn691_bug_fixes.jnl
+ bn_append_dsg.jnl
+ bn_global_atts.jnl
+ bn_conventions_history.jnl
+ bn_center_key_labels.jnl
+ bn_wgt_transform.jnl
+ bn_show_outfile.jnl
+ bn_date1900_array.jnl
+ bn_spawn_size.jnl
+ bn_polygon_log.jnl
bn_all_ef.jnl
bn_startupfile.jnl
****** Restricting Ferret paths to bench directory ******
FER_DAT=.
FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/ksmith/Datasets
+FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
FER_DESCR=.
FER_DIR=.
FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ksmith/Ferret/ext_func/libs
-FER_FONTS=/home/users/ksmith/Ferret/ppl/fonts
-FER_GO=. /home/users/ksmith/Ferret/go /home/users/ksmith/Ferret/examples /home/users/ksmith/Ferret/contrib
+FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/Ferret/ext_func/libs
+FER_FONTS=/home/flat/ksmith/Ferret/ppl/fonts
+FER_GO=. /home/flat/ksmith/Ferret/go /home/flat/ksmith/Ferret/examples /home/flat/ksmith/Ferret/contrib
FER_GRIDS=.
-FER_LIBS=/home/users/ksmith/Ferret/lib
-FER_PALETTE=. /home/users/ksmith/Ferret/ppl
+FER_LIBS=/home/flat/ksmith/Ferret/lib
+FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
FER_WEB_BROWSER=firefox
-Beginning at Mon Mar 31 15:37:06 PDT 2014
+Beginning at Thu Oct 30 11:13:49 PDT 2014
*** Running test: bn_syntax.jnl
Cached data cleared from memory
SET EXPRESSION has not been given or implied
- SET EXPRESSION has not been given or implied
**ERROR: unknown command qualifier: help
MESSAGE/CONTINUE /help
**ERROR: unknown command: that
@@ -790,9 +799,10 @@ list v2-and-minus[i=5:15 at ddc]
Cached data cleared from memory
LISTing to file permutedBinaryTest.dat
LISTing to file junk.dat
- **ERROR: request exceeds memory setting: A negative number of words were requested.
+ **ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: The current grid is most likely too large
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
@@ -1354,7 +1364,7 @@ POLYGON/KEY/LEV=0.01d/coord_ax=Z PLMxpoly+PLMxpolymark, PLMypoly+PLMypolymark,
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
rm: cannot remove `input.txt': No such file or directory
-ls: input.txt: No such file or directory
+ls: cannot access input.txt: No such file or directory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3155,7 +3165,7 @@ define data/agg windy = 1,2
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
*** NOTE: Adjusting Y-axis label size from 0.100 to 0.001, to avoid running off page.
- *** NOTE: /home/users/ksmith/Ferret/go/magnify.jnl
+ *** NOTE: /home/flat/ksmith/Ferret/go/magnify.jnl
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3307,9 +3317,9 @@ Replacing definition of axis AXI_COARSE
*** Running test: bn_dsg_e_x.jnl
Cached data cleared from memory
*** Running test: bn_nco_append.jnl
-sh: ncks: command not found
Cached data cleared from memory
LISTing to file append_to_this.nc
+sh: ncks: command not found
*** Running test: bn_nobounds.jnl
Cached data cleared from memory
LISTing to file a.nc
@@ -3339,6 +3349,14 @@ plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
@@ -3425,10 +3443,14 @@ show att temp.noexist[d=levitus_climatology]
TEMPORARY data cleared from memory
**ERROR: invalid command: illegal new name. Variable b already defined
set var/name=b a
+ **ERROR: invalid command: illegal new name. Variable b already defined
+set var/name=b a
**ERROR: invalid command: illegal new name. Variable temp exists in dataset
set var/name=temp salt
**ERROR: invalid command: illegal new name. Variable psi exists in dataset
set var/name=psi myvar
+ **ERROR: invalid command: illegal new name. Variable diff already defined
+set var/name=diff w
*** Running test: bn_bad_axis_bounds.jnl
Cached data cleared from memory
*** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
@@ -3452,6 +3474,149 @@ set axis/name x_in_meters
set axis/name=45 x_in_meters
**ERROR: invalid command: illegal new name given for axis .fr
set axis/name=.fr x_in_meters
+*** Running test: bn691_bug_fixes.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
+list tax_datestring (tt[L=3], tt, 5)
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: must be a constant COS(1)
+list {cos(1), sin(0)}
+ **ERROR: command syntax: must be a constant 0-180
+list {0-180, 180}
+ **ERROR: command syntax: must be a constant 1./5.
+list {0.1, 0.2, 1./5.}
+ **ERROR: command syntax: must be a constant 5*3+1
+list {5*3+1, 2+3}
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file tval.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file out.xml
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAXIS
+ **ERROR: request exceeds memory setting: 2369 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+Replacing definition of axis LONGTIME
+ **ERROR: request exceeds memory setting: 4735 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ LISTing to file aa.nc
+ LISTing to file bb.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running test: bn_append_dsg.jnl
+ Cached data cleared from memory
+rm: cannot remove `test_save_dsg.nc': No such file or directory
+*** Running test: bn_global_atts.jnl
+ Cached data cleared from memory
+ LISTing to file anew_global.nc
+*** Running test: bn_conventions_history.jnl
+ Cached data cleared from memory
+ LISTing to file conventions_history.nc
+*** Running test: bn_center_key_labels.jnl
+ Cached data cleared from memory
+*** Running test: bn_wgt_transform.jnl
+ Cached data cleared from memory
+*** Running test: bn_show_outfile.jnl
+ Cached data cleared from memory
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
+ **ERROR: illegal limits: X axis limits don't match variable def'n: A
+ Are you giving explicit limits when SET REGION would suffice ?
+list f
+*** Running test: bn_date1900_array.jnl
+ Cached data cleared from memory
+*** Running test: bn_spawn_size.jnl
+ Cached data cleared from memory
+*** Running test: bn_polygon_log.jnl
+ Cached data cleared from memory
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
*** Running test: bn_all_ef.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -3471,4 +3636,4 @@ LOAD/TEMPORARY vflag
TEMPORARY data cleared from memory
*** Running test: bn_startupfile.jnl
Cached data cleared from memory
-Ended at Mon Mar 31 15:38:52 PDT 2014
+Ended at Thu Oct 30 11:20:08 PDT 2014
diff --git a/bench/test_results/ferret_run_tests_log b/bench/test_results/ferret_run_tests_log
index 29c00ba..ba1dd4b 100644
--- a/bench/test_results/ferret_run_tests_log
+++ b/bench/test_results/ferret_run_tests_log
@@ -1,8 +1,8 @@
-Using FERRET /home/users/ksmith/Ferret/bin/ferret
-lrwxrwxrwx 1 ksmith tmap 11 Mar 31 15:35 /home/users/ksmith/Ferret/bin/ferret -> ferret_v6.9
-Using external functions from /home/users/ksmith/Ferret/ext_func/libs
+Using FERRET /home/flat/ksmith/Ferret/bin/ferret
+lrwxrwxrwx. 1 ksmith oerdnewp 12 Oct 30 11:11 /home/flat/ksmith/Ferret/bin/ferret -> ferret_v6.93
+Using external functions from /home/flat/ksmith/Ferret/ext_func/libs
Benchmark run by ksmith
-Note: RUN_TESTS.sh test results for debug build of Ferret on RHEL5-64
+Note: RUN_TESTS.sh test results for debug build of Ferret on RHEL6-64
Benchmark scripts that will be run:
bn_syntax.jnl
bn_dollar.jnl
@@ -216,23 +216,33 @@ Benchmark scripts that will be run:
bn_enter_exit_GO.jnl
bn_stddev.jnl
bn_set_axis_name.jnl
+ bn691_bug_fixes.jnl
+ bn_append_dsg.jnl
+ bn_global_atts.jnl
+ bn_conventions_history.jnl
+ bn_center_key_labels.jnl
+ bn_wgt_transform.jnl
+ bn_show_outfile.jnl
+ bn_date1900_array.jnl
+ bn_spawn_size.jnl
+ bn_polygon_log.jnl
bn_all_ef.jnl
bn_startupfile.jnl
****** Restricting Ferret paths to bench directory ******
FER_DAT=.
FER_DATA=.
-FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/users/ksmith/Datasets
+FER_DATA_THREDDS= http://ferret.pmel.noaa.gov/geoide/geoIDECleanCatalog.xml /home/flat/ksmith/Datasets
FER_DESCR=.
FER_DIR=.
FER_DSETS=.
-FER_EXTERNAL_FUNCTIONS=/home/users/ksmith/Ferret/ext_func/libs
-FER_FONTS=/home/users/ksmith/Ferret/ppl/fonts
-FER_GO=. /home/users/ksmith/Ferret/go /home/users/ksmith/Ferret/examples /home/users/ksmith/Ferret/contrib
+FER_EXTERNAL_FUNCTIONS=/home/flat/ksmith/Ferret/ext_func/libs
+FER_FONTS=/home/flat/ksmith/Ferret/ppl/fonts
+FER_GO=. /home/flat/ksmith/Ferret/go /home/flat/ksmith/Ferret/examples /home/flat/ksmith/Ferret/contrib
FER_GRIDS=.
-FER_LIBS=/home/users/ksmith/Ferret/lib
-FER_PALETTE=. /home/users/ksmith/Ferret/ppl
+FER_LIBS=/home/flat/ksmith/Ferret/lib
+FER_PALETTE=. /home/flat/ksmith/Ferret/ppl
FER_WEB_BROWSER=firefox
-Beginning at Mon Mar 31 15:37:06 PDT 2014
+Beginning at Thu Oct 30 11:13:49 PDT 2014
*** Running test: bn_syntax.jnl
! bn401_syntax.JNL
! - test syntax interpretation of Program FERRET
@@ -374,9 +384,9 @@ SHOW DATA/FULL
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ V1 V1 1:2 ... ... ... ... ...
+ on grid (G008) with -1.E+34 for missing data
+ X=-0.5:1.5
/FORMAT = FREE
/SKIP = 0
@@ -386,7 +396,7 @@ SHOW DATA
currently SET data sets:
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:2 ... ... ... ... ...
SET MODE IGNORE_ERROR
SET DATA/EZ/VAR="P,Q" 1
@@ -642,7 +652,7 @@ show mode journal
JOURNAL SET newjournal.jnl
set mode journal ferret.jnl
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= metafile.plt [...]
@@ -654,7 +664,7 @@ ppl list plot
ppl listsym
cancel mode ppllist
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= metafile.plt [...]
@@ -711,6 +721,8 @@ set mode metafile metafile.plt
! SET - SHOW - CANCEL EXPRESSION
SHOW EXPRESSION
+ current output expression(s):
+ X[GX=1:0:1]
CANCEL EXPRESSION
SHOW EXPRESSION
SET EXPRESSION i+5,i-j
@@ -909,19 +921,19 @@ SHOW VARIABLES
! SHOW MEMORY , LOAD
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded without /PERMANENT:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
105 /125W 50 /1.7N 1 /10 5 /13-SEP-1982 ... / ... ... / ...
SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded with /PERMANENT:
SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
all data in memory:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
@@ -931,9 +943,9 @@ all data in memory:
LET A=i
LOAD/PERM/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -947,9 +959,9 @@ SHOW MEMORY/FREE
number of blocks used /PERM: 1
LOAD/TEMPORARY/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -1511,8 +1523,8 @@ let x1 = 0.012954
let x2 = 7.5E-09
let x3 = .1
say >>`x1`<< --- >>`x2`<< --- >>`x3`<<
- !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09 << --- >>0.1<<
->>0.012954<< --- >>7.5E-09 << --- >>0.1<<
+ !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09<< --- >>0.1<<
+>>0.012954<< --- >>7.5E-09<< --- >>0.1<<
! must recognize "/" inside immediate mode exprn
list/I=`6/2` i
@@ -1849,8 +1861,8 @@ show data
2> ./snoopy.dat (default)
name title I J K L M N
- T4 test4 1:20480 ... ... ... ... ...
- T3 test3 1:20480 ... ... ... ... ...
+ T4 test4 1:2 ... ... ... ... ...
+ T3 test3 1:2 ... ... ... ... ...
show data/full 1
currently SET data sets:
@@ -9689,9 +9701,9 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ V1 V1 1:5 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9719,12 +9731,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:5 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:5.5
+ X2 X2 1:5 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9755,12 +9767,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 0
@@ -9799,12 +9811,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9837,12 +9849,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9872,12 +9884,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0))
/SKIP = 2
@@ -9910,12 +9922,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0)/)
/SKIP = 1
@@ -10147,7 +10159,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= metafile.plt [...]
@@ -10247,7 +10259,7 @@ plot/i=1:10/ylimits=1:40/nolabel i ! note that /nolabel supresses XLAB
plot/i=1:10/over/sym=2 i^1.1
plot/i=1:10/over/sym=2/size=.12 i^1.2
plot/i=1:10/over/sym=2/color=red i^1.3
-plot/i=1:10/over/thick/step i^1.4
+plot/i=1:10/over/thick/step/color=light_blue i^1.4
plot/i=1:10/over/thick/color=blue/step=connected i^1.5
plot/i=1:10/over/thick=3/color=purple/size=.14 i^1.6
@@ -10491,18 +10503,18 @@ show symbols/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.9"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5 64-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "26205"
-DELTA_CPU = "0.011997"
+SESSION_DATE = "30-Oct-14"
+SESSION_TIME = "11:14"
+SESSION_PID = "10236"
+DELTA_CPU = "0.035993"
CLOCK_SECS = "0.007"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "15:37:13"
+CURRENT_DATE = "30-Oct-14"
+CURRENT_TIME = "11:14:18"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -10520,18 +10532,18 @@ show symbol/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.9"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5 64-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "26205"
-DELTA_CPU = "0.002"
+SESSION_DATE = "30-Oct-14"
+SESSION_TIME = "11:14"
+SESSION_PID = "10236"
+DELTA_CPU = "0.001"
CLOCK_SECS = "0.008"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "15:37:13"
+CURRENT_DATE = "30-Oct-14"
+CURRENT_TIME = "11:14:18"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
S1 = "hello"
@@ -10541,9 +10553,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "26205"
+SESSION_DATE = "30-Oct-14"
+SESSION_TIME = "11:14"
+SESSION_PID = "10236"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10553,15 +10565,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "26205"
+SESSION_DATE = "30-Oct-14"
+SESSION_TIME = "11:14"
+SESSION_PID = "10236"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "26205"
+SESSION_DATE = "30-Oct-14"
+SESSION_TIME = "11:14"
+SESSION_PID = "10236"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10686,21 +10698,21 @@ say ($delayed_eval) ! translate symbol and then evaluate
! cleanup
cancel symbols/all
show symbols/all
-PPL$XPIXEL = "691"
-PPL$YPIXEL = "518"
+PPL$XPIXEL = "656"
+PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.9"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5 64-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "15:37"
-SESSION_PID = "26205"
-DELTA_CPU = "0.032995"
-CLOCK_SECS = "0.137"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "15:37:13"
+SESSION_DATE = "30-Oct-14"
+SESSION_TIME = "11:14"
+SESSION_PID = "10236"
+DELTA_CPU = "0.029996"
+CLOCK_SECS = "0.709"
+CURRENT_DATE = "30-Oct-14"
+CURRENT_TIME = "11:14:18"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
@@ -25236,7 +25248,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Mon Mar 31 15:37:20 PDT 2014
+Thu Oct 30 11:14:33 PDT 2014
GO bn_reset
cancel mode verify
@@ -25358,7 +25370,7 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
1N / 46: 29.14 28.92 28.33
1S / 45: 28.90 28.82 28.54
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -26149,7 +26161,7 @@ list a ! <-- CACHE HIT FAILS!!!
set mode/last diagnostic
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -33418,6 +33430,10 @@ SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
XPTS: X values of sample points
YPTS: Y values of sample points
TPTS: T values of sample points
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -36075,56 +36091,56 @@ show data/var
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V2 V2 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V3 V3 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V4 V4 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V5 V5 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V5 V5 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V6 V6 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V7 V7 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V8 V8 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V9 V9 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V10 V10 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
/DELIMITERS="\t,\,"
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
@@ -36223,11 +36239,11 @@ show data
currently SET data sets:
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- A1 A1 1:20480 ... ... ... ... ...
- A2 A2 1:20480 ... ... ... ... ...
- A3 A3 1:20480 ... ... ... ... ...
- A4 A4 1:20480 ... ... ... ... ...
- A5 A5 1:20480 ... ... ... ... ...
+ A1 A1 1:7 ... ... ... ... ...
+ A2 A2 1:7 ... ... ... ... ...
+ A3 A3 1:7 ... ... ... ... ...
+ A4 A4 1:7 ... ... ... ... ...
+ A5 A5 1:7 ... ... ... ... ...
list a1,a2,a3,a4,a5
DATA SET: ./bn_delimited_read_1.dat
@@ -36335,18 +36351,18 @@ show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
file/form=delimited/delimiter=" " bn_delimited_read_2.dat
show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
(Julian days since 1-Jan-1900)
- V2 V2 1:20480 ... ... ... ... ...
+ V2 V2 1:3 ... ... ... ... ...
(Time of day)
- V3 V3 1:20480 ... ... ... ... ...
+ V3 V3 1:3 ... ... ... ... ...
(all values missing)
list v1,v2
@@ -36647,367 +36663,367 @@ show data/full
1> ./bn_delimited_read_CO2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V2 V2 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V3 V3 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V4 V4 1:20 ... ... ... ... ...
(Julian days since 1-Jan-1900)
Data type = NUMERIC
Conversion /TYPE=DATE
- days on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V5 V5 1:20480 ... ... ... ... ...
+ days on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V5 V5 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V6 V6 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V7 V7 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V8 V8 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V9 V9 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V10 V10 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V11 V11 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V11 V11 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V12 V12 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V12 V12 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V13 V13 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V13 V13 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V14 V14 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V14 V14 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V15 V15 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V15 V15 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V16 V16 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V16 V16 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V17 V17 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V17 V17 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V18 V18 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V18 V18 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V19 V19 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V19 V19 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V20 V20 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V20 V20 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V21 V21 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V21 V21 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V22 V22 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V22 V22 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V23 V23 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V23 V23 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V24 V24 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V24 V24 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V25 V25 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V25 V25 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V26 V26 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V26 V26 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V27 V27 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V27 V27 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V28 V28 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V28 V28 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V29 V29 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V29 V29 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V30 V30 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V30 V30 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V31 V31 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V31 V31 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V32 V32 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V32 V32 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V33 V33 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V33 V33 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V34 V34 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V34 V34 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V35 V35 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V35 V35 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V36 V36 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V36 V36 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V37 V37 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V37 V37 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V38 V38 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V38 V38 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V39 V39 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V39 V39 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V40 V40 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V40 V40 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V41 V41 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V41 V41 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V42 V42 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V42 V42 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V43 V43 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V43 V43 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V44 V44 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V44 V44 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V45 V45 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V45 V45 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V46 V46 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V46 V46 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V47 V47 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V47 V47 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V48 V48 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V48 V48 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V49 V49 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V49 V49 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V50 V50 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V50 V50 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V51 V51 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V51 V51 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V52 V52 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V52 V52 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V53 V53 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V53 V53 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V54 V54 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V54 V54 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V55 V55 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V55 V55 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V56 V56 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V56 V56 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V57 V57 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V57 V57 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V58 V58 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V58 V58 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V59 V59 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V59 V59 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V60 V60 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V60 V60 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V61 V61 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V61 V61 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V62 V62 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V62 V62 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V63 V63 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V63 V63 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V64 V64 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V64 V64 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V65 V65 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V65 V65 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V66 V66 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V66 V66 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V67 V67 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V67 V67 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V68 V68 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V68 V68 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V69 V69 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V69 V69 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V70 V70 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V70 V70 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V71 V71 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V71 V71 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V72 V72 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V72 V72 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
/DELIMITERS="\t,\,"
/FORMAT = DELIMITED
@@ -37545,7 +37561,7 @@ set mode stupid
set mode diag
set mem/size=0.05
show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 0.2 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 100
@@ -48137,11 +48153,11 @@ let the_data_var = {4,5,4}
list/format=comma country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY,ID,AA,BB,NEWCOUNTRY,THE_DATA_VAR
1 / 1:"JP",1,4000,1000500,"w",4
@@ -48150,11 +48166,11 @@ list/format=comma country, id, aa, bb, newcountry, the_data_var
list/format=tab/norow country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY ID AA BB NEWCOUNTRY THE_DATA_VAR
"JP" 1 4000 1000500 "w" 4
@@ -48292,7 +48308,7 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.9"
+FERRET_VERSION = "6.93"
! history attribute
let a = 12
@@ -48310,7 +48326,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET version6.9:
+ Commands in Program FERRET version6.93:
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
@@ -48443,7 +48459,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "31-Mar-14:15:38"
+WIN_TITLE = "30-Oct-14:11:16"
set win/title="set the title"
sho sym win_title
@@ -48461,7 +48477,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title="31-Mar-14:15:38"
+ !-> set win/title="30-Oct-14:11:16"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -48470,16 +48486,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 = 31-Mar-14
+ !-> DEFINE SYMBOL the_date = 30-Oct-14
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 15:38
+ !-> DEFINE SYMBOL the_time = 11:16
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="31-Mar-14:15:38"
+ !-> SET WIN/TITLE="30-Oct-14:11:16"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "31-Mar-14:15:38"
+WIN_TITLE = "30-Oct-14:11:16"
*** Running test: bn_last_error.jnl
! bn_last_error.jnl
! acm Nov 2005
@@ -52738,8 +52754,8 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -52783,8 +52799,8 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -54093,7 +54109,7 @@ set mem/siz=90
sh sym ferret_memory
FERRET_MEMORY = "90"
show memory
- Current size of FERRET memory cache: 90 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 90 MegaWords (1 word = 8 bytes)
set mem/size=0.05
sh sym ferret_memory
@@ -54105,7 +54121,7 @@ FERRET_MEMORY = "0.2"
set mem/siz=25.6 ! return to the default setting
show memory
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
*** Running test: bn605_bug_fixes.jnl
! bn604_bug_fixes.jnl
! test various fixes that went into version 6.05
@@ -54364,23 +54380,38 @@ EXPND_BY_LEN_STR(var,len,nx)
FC_ISUBSET(index_list,lengths,nx,FullData)
EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+SEPARATE(A,Rowsize,FixLongitudes)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
DATES(Offsets)
-EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EFSTRINGS(--)
FACTORIAL(A)
FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
+LENGTH_OF_STRINGS(--)
+MAXSTRLEN(A)
PASS_THRU(A)
+PASS_THRU_STRING(A)
PERCENT_GOOD_T(A)
+PICK_A_STRING(A,N)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SEPARATE(A,Rowsize,FixLongitudes)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
STORAGE(A)
STRING_ARG(Flags,NString)
+STRING_CAT3(A,B,C)
+STRING_LEN_SUM(S1,S2)
+STRINGS_AS_ARGS(S1,S2,NCHAR)
+STR_MISSING(MASK,STR,REPL)
STUDENT_T_CUTOFF(P,nf)
SUBTRACT(A,B)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
*** Running test: bn608_bug_fixes.jnl
! bn608_bug_fixes
@@ -54496,11 +54527,11 @@ GO err607_axis_minmax_syms
use coads_climatology
let plotvar = sst[L=1]
plot/y=35 plotvar/10000; sh sym yax*
-YAXIS_MIN = "8.0000010E-04"
-YAXIS_MAX = "2.1000002E-03"
+YAXIS_MIN = "7.9999998E-04"
+YAXIS_MAX = "2.0999999E-03"
plot/y=35 plotvar/10000000; sh sym yax*
-YAXIS_MIN = "8.0000012E-07"
-YAXIS_MAX = "2.1000003E-06"
+YAXIS_MIN = "8.0000001E-07"
+YAXIS_MAX = "2.1000001E-06"
plot/y=35 plotvar*10000000; sh sym yax*
YAXIS_MIN = "8.0000000E+07"
YAXIS_MAX = "2.1000000E+08"
@@ -56217,13 +56248,13 @@ GO err611_shade_fill_levs
shade x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
LEV_MIN = "0"
-LEV_MAX = "1"
-LEV_NUM = "20"
+LEV_MAX = "1.05"
+LEV_NUM = "21"
LEV_DEL = "0.05"
fill x[gx=0:1:.1]*y[gy=0:1:.1]; sh sym lev*
LEV_MIN = "0"
-LEV_MAX = "1"
-LEV_NUM = "20"
+LEV_MAX = "1.05"
+LEV_NUM = "21"
LEV_DEL = "0.05"
@@ -56860,7 +56891,7 @@ SORTI(DAT)
T: inherited from argument(s)
E: inherited from argument(s)
F: inherited from argument(s)
- DAT: variable to sort in I
+ DAT: variable to sort in I (FLOAT)
Influence on output axes:
X: no influence (indicate argument limits with "[]")
Y: passed to result grid
@@ -58481,10 +58512,10 @@ SH GRID am
normal F
*** Running test: bn_clock_syms.jnl
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.010997"
-CLOCK_SECS = "0.006"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "15:38:20"
+DELTA_CPU = "0.028994"
+CLOCK_SECS = "0.003"
+CURRENT_DATE = "30-Oct-14"
+CURRENT_TIME = "11:17:55"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58493,8 +58524,8 @@ CURRENT_TIME = "15:38:20"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.072989"
-CLOCK_SECS = "0.126"
+DELTA_CPU = "0.062991"
+CLOCK_SECS = "1.171"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -58508,60 +58539,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.292956
+ !-> DEFINE VARIABLE ten_plots = 0.220966
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0"
-CLOCK_SECS = "0.493"
+DELTA_CPU = "0.001"
+CLOCK_SECS = "6.226"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "0.495"
+CLOCK_SECS = "6.226"
repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);\
let sumcpu =`sumcpu + dt`)
!-> repeat/k=1:10 (shade/pal=rnb2 temp[L=@ave]; let dt = ($DELTA_CPU);let sumcpu =`sumcpu + dt`)
!-> REPEAT: K=1
- !-> DEFINE VARIABLE dt = 0.029995
- !-> DEFINE VARIABLE sumcpu =0.029995
+ !-> DEFINE VARIABLE dt = 0.030995
+ !-> DEFINE VARIABLE sumcpu =0.030995
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.033995
- !-> DEFINE VARIABLE sumcpu =0.06399
+ !-> DEFINE VARIABLE dt = 0.027997
+ !-> DEFINE VARIABLE sumcpu =0.058992
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.030995
- !-> DEFINE VARIABLE sumcpu =0.094985
+ !-> DEFINE VARIABLE dt = 0.028995
+ !-> DEFINE VARIABLE sumcpu =0.087987
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.132979
+ !-> DEFINE VARIABLE dt = 0.020997
+ !-> DEFINE VARIABLE sumcpu =0.108984
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.030995
- !-> DEFINE VARIABLE sumcpu =0.163974
+ !-> DEFINE VARIABLE dt = 0.025996
+ !-> DEFINE VARIABLE sumcpu =0.13498
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.032996
- !-> DEFINE VARIABLE sumcpu =0.19697
+ !-> DEFINE VARIABLE dt = 0.023996
+ !-> DEFINE VARIABLE sumcpu =0.158976
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.032995
- !-> DEFINE VARIABLE sumcpu =0.229965
+ !-> DEFINE VARIABLE dt = 0.021997
+ !-> DEFINE VARIABLE sumcpu =0.180973
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.030994
- !-> DEFINE VARIABLE sumcpu =0.260959
+ !-> DEFINE VARIABLE dt = 0.019996
+ !-> DEFINE VARIABLE sumcpu =0.200969
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.030996
- !-> DEFINE VARIABLE sumcpu =0.291955
+ !-> DEFINE VARIABLE dt = 0.029996
+ !-> DEFINE VARIABLE sumcpu =0.230965
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.034994
- !-> DEFINE VARIABLE sumcpu =0.326949
+ !-> DEFINE VARIABLE dt = 0.020997
+ !-> DEFINE VARIABLE sumcpu =0.251962
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.326949
-0.326949
+ !-> MESSAGE/CONTINUE 0.251962
+0.251962
sh sym CLOCK_SECS
-CLOCK_SECS = "0.978"
+CLOCK_SECS = "14.836"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "15:38"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "15:38:21"
+SESSION_DATE = "30-Oct-14"
+SESSION_TIME = "11:17"
+CURRENT_DATE = "30-Oct-14"
+CURRENT_TIME = "11:18:10"
*** Running test: bn63_bug_fixes.jnl
! bn63_bug_fixes.jnl
! Fixes that go into v6.3 release
@@ -58871,8 +58902,8 @@ list yboxlo[g=grd],yboxhi[g=grd]
11.2S / 15: -12.84 -9.59
8S / 16: -9.59 -6.38
4.8S / 17: -6.38 -3.18
-1.6S / 18: -3.18 0.00
-1.6N / 19: 0.00 3.18
+1.6S / 18: -3.18 -0.00
+1.6N / 19: -0.00 3.18
4.8N / 20: 3.18 6.38
8N / 21: 6.38 9.59
11.2N / 22: 9.59 12.84
@@ -62472,9 +62503,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.9 (beta)"
- 3 / 3:" ! Linux 2.6.18-371.4.1.el5 64-bit - 03/31/14"
- 4 / 4:" ! 31-Mar-14 15:38 "
+ 2 / 2:" ! FERRET v6.93 (beta)"
+ 3 / 3:" ! Linux 2.6.32-504.el6.x86_64 64-bit - 10/30/14"
+ 4 / 4:" ! 30-Oct-14 11:19 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -62533,23 +62564,24 @@ sh trans
variable transforms e.g.SST[T=1-jan:15-mar at DDC]
code description code description
---- ----------- ---- -----------
- @ITP interpolated @SPZ Parzen smoothed
- @AVE averaged @FAV ave-filled
- @VAR variance @FLN linear-filled
- @SUM summed @FNR nearest-filled
- @RSU running sum @NGD number of valid
- @SHF shifted @NBD number flagged bad
- @MIN minimum @LOC location
- @MAX maximum @WEQ weighted equal
- @DDC centered derivative @CDA closest dist above
- @DDF forward derivative @CDB closest dist below
- @DDB backwards derivative @CIA closest index above
- @DIN integrated @CIB closest index below
- @IIN indef. integ. @EVN event mask
- @SBX box smoothed @MED median smoothed
- @SBN binomial smoothed @SMX maximum smoothed
- @SWL Welch smoothed @SMN minimum smoothed
- @SHN Hanning smoothed @STD standard deviation
+ @ITP interpolated @FAV ave-filled
+ @AVE averaged @FLN linear-filled
+ @VAR variance @FNR nearest-filled
+ @SUM summed @NGD number of valid
+ @RSU running sum @NBD number flagged bad
+ @SHF shifted @LOC location
+ @MIN minimum @WEQ weighted equal
+ @MAX maximum @CDA closest dist above
+ @DDC centered derivative @CDB closest dist below
+ @DDF forward derivative @CIA closest index above
+ @DDB backwards derivative @CIB closest index below
+ @DIN integrated @EVN event mask
+ @IIN indef. integ. @MED median smoothed
+ @SBX box smoothed @SMX maximum smoothed
+ @SBN binomial smoothed @SMN minimum smoothed
+ @SWL Welch smoothed @STD standard deviation
+ @SHN Hanning smoothed @WGT weights for avg,int
+ @SPZ Parzen smoothed
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
@@ -64907,130 +64939,130 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.366
-randu2_randn2 0.453
-randu2_randn2 0.168
-randu2_randn2 0.168
-randu2_randn2 0.625
+randu2_randn2 0.527
+randu2_randn2 0.005
+randu2_randn2 0.868
+randu2_randn2 0.513
+randu2_randn2 0.881
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.289
-randu2_randn2 0.817
-randu2_randn2 0.329
-randu2_randn2 0.467
-randu2_randn2 0.632
+randu2_randn2 0.138
+randu2_randn2 0.897
+randu2_randn2 0.700
+randu2_randn2 0.970
+randu2_randn2 0.978
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.221
-randu2_randn2 0.871
-randu2_randn2 0.518
-randu2_randn2 0.869
-randu2_randn2 0.823
-randu2_randn2 0.076
+randu2_randn2 0.432
+randu2_randn2 0.519
+randu2_randn2 0.131
+randu2_randn2 0.769
+randu2_randn2 0.876
+randu2_randn2 0.810
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.133
-randu2_randn2 0.307
-randu2_randn2 0.968
-randu2_randn2 0.061
-randu2_randn2 0.360
-randu2_randn2 0.176
+randu2_randn2 0.678
+randu2_randn2 0.492
+randu2_randn2 0.405
+randu2_randn2 0.765
+randu2_randn2 0.736
+randu2_randn2 0.568
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.343
-randu2_randn2 0.598
-randu2_randn2 0.888
-randu2_randn2 0.608
-randu2_randn2 0.446
-randu2_randn2 0.900
+randu2_randn2 0.302
+randu2_randn2 0.380
+randu2_randn2 0.926
+randu2_randn2 0.672
+randu2_randn2 0.238
+randu2_randn2 0.638
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.343
-randu2_randn2 0.598
-randu2_randn2 0.888
-randu2_randn2 0.608
-randu2_randn2 0.446
-randu2_randn2 0.900
+randu2_randn2 0.302
+randu2_randn2 0.380
+randu2_randn2 0.926
+randu2_randn2 0.672
+randu2_randn2 0.238
+randu2_randn2 0.638
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.503
-randu2_randn2 -0.100
-randu2_randn2 -0.195
-randu2_randn2 -0.083
-randu2_randn2 0.759
+randu2_randn2 0.354
+randu2_randn2 1.401
+randu2_randn2 0.440
+randu2_randn2 0.430
+randu2_randn2 -1.294
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 -1.014
-randu2_randn2 0.051
-randu2_randn2 0.428
-randu2_randn2 2.756
-randu2_randn2 -0.107
+randu2_randn2 0.302
+randu2_randn2 -0.063
+randu2_randn2 -0.794
+randu2_randn2 0.971
+randu2_randn2 -2.604
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -1.086
-randu2_randn2 0.503
-randu2_randn2 0.481
-randu2_randn2 -2.318
-randu2_randn2 0.989
-randu2_randn2 0.355
+randu2_randn2 0.810
+randu2_randn2 0.335
+randu2_randn2 -0.531
+randu2_randn2 -0.837
+randu2_randn2 -0.772
+randu2_randn2 -1.977
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -0.942
-randu2_randn2 0.175
-randu2_randn2 -0.470
-randu2_randn2 -1.165
-randu2_randn2 0.158
-randu2_randn2 -0.485
+randu2_randn2 -1.337
+randu2_randn2 0.783
+randu2_randn2 1.666
+randu2_randn2 -0.327
+randu2_randn2 1.031
+randu2_randn2 1.036
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 1.052
-randu2_randn2 -1.694
-randu2_randn2 0.249
-randu2_randn2 0.895
-randu2_randn2 0.919
-randu2_randn2 -0.124
+randu2_randn2 -0.906
+randu2_randn2 -1.503
+randu2_randn2 0.217
+randu2_randn2 0.537
+randu2_randn2 0.674
+randu2_randn2 -1.279
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 1.052
-randu2_randn2 -1.694
-randu2_randn2 0.249
-randu2_randn2 0.895
-randu2_randn2 0.919
-randu2_randn2 -0.124
+randu2_randn2 -0.906
+randu2_randn2 -1.503
+randu2_randn2 0.217
+randu2_randn2 0.537
+randu2_randn2 0.674
+randu2_randn2 -1.279
Z: 1 to 140
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.054 1.700 1.034
-randu2_randn2 1.700 1.054 1.034
-randu2_randn2 1.034 1.034 0.471
-randu2_randn2 0.471 0.471 0.471
-randu2_randn2 -0.082 -0.082 0.471
-randu2_randn2 -0.226 -0.082 0.471
-randu2_randn2 0.015 0.015 0.471
-randu2_randn2 0.429 0.429 0.471
+randu2_randn2 1.220 1.726 1.165
+randu2_randn2 1.726 1.220 1.165
+randu2_randn2 1.165 1.165 0.240
+randu2_randn2 -0.268 -0.268 0.247
+randu2_randn2 -0.608 -0.585 0.247
+randu2_randn2 -0.585 -0.585 0.247
+randu2_randn2 0.240 0.240 0.247
+randu2_randn2 0.247 0.247 0.247
*** Running test: bn_axis_cf.jnl
! Ticket 1792: Write axes with CF-compliant units
! and with standard name attributes for geophysical attrs.
@@ -65459,7 +65491,7 @@ list eofsvd_space(spacetime)
1 2
1 2
1 / 1: 0.0000 -0.7071
- 2 / 2: -0.7071 0.0000
+ 2 / 2: -0.7071 -0.0000
show func eofsvd_tfunc
EOFSVD_TFUNC(A)
@@ -65472,7 +65504,7 @@ list eofsvd_tfunc(spacetime)
SUBSET : 2 by 240 points (X-T)
1 2
1 2
- 0 / 1: 0.000 -1.414
+ 0 / 1: -0.000 -1.414
0.25 / 2: -0.185 -1.402
0.5 / 3: -0.366 -1.366
0.75 / 4: -0.541 -1.307
@@ -65484,7 +65516,7 @@ list eofsvd_tfunc(spacetime)
2.25 / 10: -1.307 -0.541
2.5 / 11: -1.366 -0.366
2.75 / 12: -1.402 -0.185
- 3 / 13: -1.414 0.000
+ 3 / 13: -1.414 -0.000
3.25 / 14: -1.402 0.185
3.5 / 15: -1.366 0.366
3.75 / 16: -1.307 0.541
@@ -65496,7 +65528,7 @@ list eofsvd_tfunc(spacetime)
5.25 / 22: -0.541 1.307
5.5 / 23: -0.366 1.366
5.75 / 24: -0.185 1.402
- 6 / 25: 0.000 1.414
+ 6 / 25: -0.000 1.414
6.25 / 26: 0.185 1.402
6.5 / 27: 0.366 1.366
6.75 / 28: 0.541 1.307
@@ -65532,7 +65564,7 @@ list eofsvd_tfunc(spacetime)
14.25 / 58: -1.307 -0.541
14.5 / 59: -1.366 -0.366
14.75 / 60: -1.402 -0.185
- 15 / 61: -1.414 0.000
+ 15 / 61: -1.414 -0.000
15.25 / 62: -1.402 0.185
15.5 / 63: -1.366 0.366
15.75 / 64: -1.307 0.541
@@ -65544,7 +65576,7 @@ list eofsvd_tfunc(spacetime)
17.25 / 70: -0.541 1.307
17.5 / 71: -0.366 1.366
17.75 / 72: -0.185 1.402
- 18 / 73: 0.000 1.414
+ 18 / 73: -0.000 1.414
18.25 / 74: 0.185 1.402
18.5 / 75: 0.366 1.366
18.75 / 76: 0.541 1.307
@@ -65580,7 +65612,7 @@ list eofsvd_tfunc(spacetime)
26.25 / 106: -1.307 -0.541
26.5 / 107: -1.366 -0.366
26.75 / 108: -1.402 -0.185
- 27 / 109: -1.414 0.000
+ 27 / 109: -1.414 -0.000
27.25 / 110: -1.402 0.185
27.5 / 111: -1.366 0.366
27.75 / 112: -1.307 0.541
@@ -65592,7 +65624,7 @@ list eofsvd_tfunc(spacetime)
29.25 / 118: -0.541 1.307
29.5 / 119: -0.366 1.366
29.75 / 120: -0.185 1.402
- 30 / 121: 0.000 1.414
+ 30 / 121: -0.000 1.414
30.25 / 122: 0.185 1.402
30.5 / 123: 0.366 1.366
30.75 / 124: 0.541 1.307
@@ -65604,7 +65636,7 @@ list eofsvd_tfunc(spacetime)
32.25 / 130: 1.307 0.541
32.5 / 131: 1.366 0.366
32.75 / 132: 1.402 0.185
- 33 / 133: 1.414 0.000
+ 33 / 133: 1.414 -0.000
33.25 / 134: 1.402 -0.185
33.5 / 135: 1.366 -0.366
33.75 / 136: 1.307 -0.541
@@ -65628,7 +65660,7 @@ list eofsvd_tfunc(spacetime)
38.25 / 154: -1.307 -0.541
38.5 / 155: -1.366 -0.366
38.75 / 156: -1.402 -0.185
- 39 / 157: -1.414 0.000
+ 39 / 157: -1.414 -0.000
39.25 / 158: -1.402 0.185
39.5 / 159: -1.366 0.366
39.75 / 160: -1.307 0.541
@@ -65640,7 +65672,7 @@ list eofsvd_tfunc(spacetime)
41.25 / 166: -0.541 1.307
41.5 / 167: -0.366 1.366
41.75 / 168: -0.185 1.402
- 42 / 169: 0.000 1.414
+ 42 / 169: -0.000 1.414
42.25 / 170: 0.185 1.402
42.5 / 171: 0.366 1.366
42.75 / 172: 0.541 1.307
@@ -65652,7 +65684,7 @@ list eofsvd_tfunc(spacetime)
44.25 / 178: 1.307 0.541
44.5 / 179: 1.366 0.366
44.75 / 180: 1.402 0.185
- 45 / 181: 1.414 0.000
+ 45 / 181: 1.414 -0.000
45.25 / 182: 1.402 -0.185
45.5 / 183: 1.366 -0.366
45.75 / 184: 1.307 -0.541
@@ -65676,7 +65708,7 @@ list eofsvd_tfunc(spacetime)
50.25 / 202: -1.307 -0.541
50.5 / 203: -1.366 -0.366
50.75 / 204: -1.402 -0.185
- 51 / 205: -1.414 0.000
+ 51 / 205: -1.414 -0.000
51.25 / 206: -1.402 0.185
51.5 / 207: -1.366 0.366
51.75 / 208: -1.307 0.541
@@ -65688,7 +65720,7 @@ list eofsvd_tfunc(spacetime)
53.25 / 214: -0.541 1.307
53.5 / 215: -0.366 1.366
53.75 / 216: -0.185 1.402
- 54 / 217: 0.000 1.414
+ 54 / 217: -0.000 1.414
54.25 / 218: 0.185 1.402
54.5 / 219: 0.366 1.366
54.75 / 220: 0.541 1.307
@@ -65743,14 +65775,14 @@ list eofsvd_space(space12)
1 2 3
1 2 3
1 / 1: 0.0000 -0.7071 ....
- 2 / 2: -0.7071 0.0000 ....
+ 2 / 2: -0.7071 -0.0000 ....
3 / 3: .... .... ....
list eofsvd_tfunc(space12)
VARIABLE : EOFSVD_TFUNC(SPACE12)
SUBSET : 3 by 240 points (X-T)
1 2 3
1 2 3
- 0 / 1: 0.000 -1.414 ....
+ 0 / 1: -0.000 -1.414 ....
0.25 / 2: -0.185 -1.402 ....
0.5 / 3: -0.366 -1.366 ....
0.75 / 4: -0.541 -1.307 ....
@@ -65762,7 +65794,7 @@ list eofsvd_tfunc(space12)
2.25 / 10: -1.307 -0.541 ....
2.5 / 11: -1.366 -0.366 ....
2.75 / 12: -1.402 -0.185 ....
- 3 / 13: -1.414 0.000 ....
+ 3 / 13: -1.414 -0.000 ....
3.25 / 14: -1.402 0.185 ....
3.5 / 15: -1.366 0.366 ....
3.75 / 16: -1.307 0.541 ....
@@ -65774,7 +65806,7 @@ list eofsvd_tfunc(space12)
5.25 / 22: -0.541 1.307 ....
5.5 / 23: -0.366 1.366 ....
5.75 / 24: -0.185 1.402 ....
- 6 / 25: 0.000 1.414 ....
+ 6 / 25: -0.000 1.414 ....
6.25 / 26: 0.185 1.402 ....
6.5 / 27: 0.366 1.366 ....
6.75 / 28: 0.541 1.307 ....
@@ -65810,7 +65842,7 @@ list eofsvd_tfunc(space12)
14.25 / 58: -1.307 -0.541 ....
14.5 / 59: -1.366 -0.366 ....
14.75 / 60: -1.402 -0.185 ....
- 15 / 61: -1.414 0.000 ....
+ 15 / 61: -1.414 -0.000 ....
15.25 / 62: -1.402 0.185 ....
15.5 / 63: -1.366 0.366 ....
15.75 / 64: -1.307 0.541 ....
@@ -65822,7 +65854,7 @@ list eofsvd_tfunc(space12)
17.25 / 70: -0.541 1.307 ....
17.5 / 71: -0.366 1.366 ....
17.75 / 72: -0.185 1.402 ....
- 18 / 73: 0.000 1.414 ....
+ 18 / 73: -0.000 1.414 ....
18.25 / 74: 0.185 1.402 ....
18.5 / 75: 0.366 1.366 ....
18.75 / 76: 0.541 1.307 ....
@@ -65858,7 +65890,7 @@ list eofsvd_tfunc(space12)
26.25 / 106: -1.307 -0.541 ....
26.5 / 107: -1.366 -0.366 ....
26.75 / 108: -1.402 -0.185 ....
- 27 / 109: -1.414 0.000 ....
+ 27 / 109: -1.414 -0.000 ....
27.25 / 110: -1.402 0.185 ....
27.5 / 111: -1.366 0.366 ....
27.75 / 112: -1.307 0.541 ....
@@ -65870,7 +65902,7 @@ list eofsvd_tfunc(space12)
29.25 / 118: -0.541 1.307 ....
29.5 / 119: -0.366 1.366 ....
29.75 / 120: -0.185 1.402 ....
- 30 / 121: 0.000 1.414 ....
+ 30 / 121: -0.000 1.414 ....
30.25 / 122: 0.185 1.402 ....
30.5 / 123: 0.366 1.366 ....
30.75 / 124: 0.541 1.307 ....
@@ -65882,7 +65914,7 @@ list eofsvd_tfunc(space12)
32.25 / 130: 1.307 0.541 ....
32.5 / 131: 1.366 0.366 ....
32.75 / 132: 1.402 0.185 ....
- 33 / 133: 1.414 0.000 ....
+ 33 / 133: 1.414 -0.000 ....
33.25 / 134: 1.402 -0.185 ....
33.5 / 135: 1.366 -0.366 ....
33.75 / 136: 1.307 -0.541 ....
@@ -65906,7 +65938,7 @@ list eofsvd_tfunc(space12)
38.25 / 154: -1.307 -0.541 ....
38.5 / 155: -1.366 -0.366 ....
38.75 / 156: -1.402 -0.185 ....
- 39 / 157: -1.414 0.000 ....
+ 39 / 157: -1.414 -0.000 ....
39.25 / 158: -1.402 0.185 ....
39.5 / 159: -1.366 0.366 ....
39.75 / 160: -1.307 0.541 ....
@@ -65918,7 +65950,7 @@ list eofsvd_tfunc(space12)
41.25 / 166: -0.541 1.307 ....
41.5 / 167: -0.366 1.366 ....
41.75 / 168: -0.185 1.402 ....
- 42 / 169: 0.000 1.414 ....
+ 42 / 169: -0.000 1.414 ....
42.25 / 170: 0.185 1.402 ....
42.5 / 171: 0.366 1.366 ....
42.75 / 172: 0.541 1.307 ....
@@ -65930,7 +65962,7 @@ list eofsvd_tfunc(space12)
44.25 / 178: 1.307 0.541 ....
44.5 / 179: 1.366 0.366 ....
44.75 / 180: 1.402 0.185 ....
- 45 / 181: 1.414 0.000 ....
+ 45 / 181: 1.414 -0.000 ....
45.25 / 182: 1.402 -0.185 ....
45.5 / 183: 1.366 -0.366 ....
45.75 / 184: 1.307 -0.541 ....
@@ -65954,7 +65986,7 @@ list eofsvd_tfunc(space12)
50.25 / 202: -1.307 -0.541 ....
50.5 / 203: -1.366 -0.366 ....
50.75 / 204: -1.402 -0.185 ....
- 51 / 205: -1.414 0.000 ....
+ 51 / 205: -1.414 -0.000 ....
51.25 / 206: -1.402 0.185 ....
51.5 / 207: -1.366 0.366 ....
51.75 / 208: -1.307 0.541 ....
@@ -65966,7 +65998,7 @@ list eofsvd_tfunc(space12)
53.25 / 214: -0.541 1.307 ....
53.5 / 215: -0.366 1.366 ....
53.75 / 216: -0.185 1.402 ....
- 54 / 217: 0.000 1.414 ....
+ 54 / 217: -0.000 1.414 ....
54.25 / 218: 0.185 1.402 ....
54.5 / 219: 0.366 1.366 ....
54.75 / 220: 0.541 1.307 ....
@@ -70698,8 +70730,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -70753,8 +70785,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -70797,8 +70829,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -70841,8 +70873,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -70878,8 +70910,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -70916,8 +70948,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -70983,8 +71015,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71032,8 +71064,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71093,8 +71125,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71134,8 +71166,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71175,8 +71207,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71216,8 +71248,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71254,8 +71286,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71482,8 +71514,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -71520,8 +71552,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -71567,8 +71599,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -71611,8 +71643,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -71636,8 +71668,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -71661,8 +71693,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -72090,8 +72122,8 @@ variables:
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 366, 1096.485, 1826.97 ;
@@ -72119,8 +72151,8 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 366, 1096.485, 1826.97 ;
@@ -72170,8 +72202,8 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 366, 1096.485, 1826.97 ;
@@ -72641,6 +72673,54 @@ sh grid sal
normal T
normal E
normal F
+
+! This file from the datset "West Coast Carbon cruises" in our
+! example erdadp, has the cf_role attribute on a coordinate variable.
+! prof, time, latitude, longitude, and rowsize are on the E axis
+! press_db and pco2 are on the X asis
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+sh dat 2
+ currently SET data sets:
+ 2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+sh att (profile)
+ attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ (profile)._FillValue = -1.E+34
+ (profile).actual_range = 70, 90
+ (profile).cf_role = profile_id
+ (profile).history = From allDataFrom2007-2011-2012WestCoastCarbonCruises-revised3-6-13-1.txt
+ (profile).long_name = profile ID: Cruise and Station
+ (profile).missing_value = -1.E+34
+ (profile).orig_file_axname = profile
+sh grid rowsize
+ GRID GSS1
+ name axis # pts start end
+ normal X
+ normal Y
+ normal Z
+ normal T
+ PROFILE E 21 r 70 90
+ normal F
+sh grid pco2
+ GRID GSS2
+ name axis # pts start end
+ OBS1 X 373 r 1 373
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
*** Running test: bn_nco_append.jnl
! bn_nco_append.jnl
! 5/2013 add a test appending files with ncks
@@ -72686,8 +72766,8 @@ variables:
CYCLE_ORIG:history = "From z2" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_nobounds.jnl
! bn_nobounds.jnl
@@ -72716,8 +72796,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -72747,8 +72827,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -72809,8 +72889,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! On a SAVE either with /BOUNDS or no bounds qualifier,
@@ -72837,8 +72917,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_write_integer_att.jnl
@@ -73998,8 +74078,8 @@ variables:
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! The behavior is unchanged for user-defined variables
@@ -74021,8 +74101,8 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_single_colorlev.jnl
@@ -74043,8 +74123,8 @@ shade/lev=(25)/L=1 INT(sst)
fill/lev=(20,30,10)/L=1 sst
*** Running test: bn69_bug_fixes.jnl
-! bn687_bug_fixes
-! test various fixes that went into version 6.87
+! bn69_bug_fixes
+! test various fixes that went into version 6.9
! 02/2014 ACM
GO bn_reset
@@ -74241,8 +74321,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! Yet more combinations
@@ -74271,8 +74351,8 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! We can use /KEEP_AXISNAMES, changes XAXIS_TEST1 to XAXIS_TEST
@@ -74292,8 +74372,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! Subsets also use XAXIS_TEST1
@@ -74313,8 +74393,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! Unless we use /KEEP_AXISNAMES - which removes renaming
@@ -74335,8 +74415,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
! If we try /KEEP_AXISNAMES but there is a conflict, it's an err
@@ -74443,6 +74523,15 @@ sh var
C = 1
use gt4d011.cdf
+! again, with user-variables and an open dataset the message is as above
+
+let a = 1
+let b = 2
+set var/name=b a
+
+! Intentional error, new name already in file
+
+
! Intentional error, new name already in file
set var/name=temp salt
show dat
@@ -74496,7 +74585,8 @@ show dat
DIFF[D=gt4d011] = TAUX - TAUY
-
+! another error, new name is a user-var
+yes? set var/name=diff w
SET MODE/LAST ignore
*** Running test: bn_bad_axis_bounds.jnl
@@ -74734,8 +74824,8 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
point_spacing CHAR 4 T even
@@ -74750,8 +74840,8 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
point_spacing CHAR 4 T even
@@ -74766,8 +74856,8 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 22 T FERRET V6.9 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 23 T FERRET V6.93 30-Oct-14
+ Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
point_spacing CHAR 4 T even
@@ -74791,6 +74881,2048 @@ set axis/name=45 x_in_meters
set axis/name=.fr x_in_meters
set mode/last ignore
+*** Running test: bn691_bug_fixes.jnl
+! bn691_bug_fixes
+! test various fixes that went into version 6.91
+! 04/2014 ACM
+
+GO bn_reset
+cancel mode verify
+GO err69_arg_type_error
+! err69_arg_type_error
+! See ticket 2169
+!
+set mode ignore
+sh func tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ A: time steps to convert
+ B: variable with reference time axis
+ C: output precision (STRING)
+sh func /detail tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ Axes of result:
+ X: inherited from argument(s)
+ Y: inherited from argument(s)
+ Z: inherited from argument(s)
+ T: inherited from argument(s)
+ E: inherited from argument(s)
+ F: inherited from argument(s)
+ A: time steps to convert (FLOAT)
+ Influence on output axes:
+ X: passed to result grid
+ Y: passed to result grid
+ Z: passed to result grid
+ T: passed to result grid
+ E: passed to result grid
+ F: passed to result grid
+ B: variable with reference time axis (FLOAT)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+ C: output precision (STRING)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+define axis/t=1-jan-2000:31-jan-2000:1/units=days my_tax
+let tt = t[gt=my_tax]
+
+! Intentional errors
+list tax_datestring (tt[L=3], tt, 5)
+list tax_datestring (tt[L=3], tt, "minutes")
+ VARIABLE : TAX_DATESTRING (TT[L=3], TT, "minutes")
+ TIME : 03-JAN-2000 00:00
+ "03-JAN-2000 00:00"
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+
+set mode /last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_bad_bounds
+! err69_bad_bounds.jnl
+! See ticket 2170
+
+set mode ignore
+
+! time axis has a point_spacing=even attribute
+! and an invalid set of bounds.
+! caused Ferret to mis-read the time axis
+use badbounds_even.nc
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same time axis but with a different error in the bounds
+! also has a point-spacing=even attribute
+! caused Ferret to mis-read the time axis
+use badbounds_non_enclose
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same definition except that the coordinates are irregularly
+! spaced, no point-spacing attribute.
+use badbounds_uneven
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 7.000
+13-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 4.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+sh axis TAX_BB*
+ name axis # pts start end
+ TAX_BB_IRR TIME 6 i 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 31
+ TAX_BB_EVEN_NOENC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
+ TAX_BB_PTSPAC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_const_array
+! err69_const_array.jnl
+! 5/8/2014 ACM
+! See ticket 2174
+! expressions are not allowed in constant-array definitions.
+
+set mode ignore
+
+! The code to read constant-array definitions into memory was simply doing
+! a read on each comma-separated portion of the command-line defining it.
+! Need to first determine if the buffer represents a simple constant.
+
+! These already returned an error as cos(1) can't be read with a Fortran read.
+list {cos(1), sin(0)}
+
+! Previously the first was read as {0,180} and the second as {0.1,0.2,1}, and
+! the third as {30,2000} !
+! They should be reported as syntax errors
+
+list {0-180, 180}
+list {0.1, 0.2, 1./5.}
+list {5*3+1, 2+3}
+
+! These are ok, and always have been
+list/prec=8 {-0.001, 1.23e-2, -45.e3}
+ VARIABLE : {-0.001, 1.23E-2, -45.E3}
+ SUBSET : 3 points (X)
+ 1 / 1: -0.001
+ 2 / 2: 0.012
+ 3 / 3: -45000.000
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_multi_label_ascii
+! err69_multi_label_ascii.jnl
+! 5/2014 ACM
+! ticket 2176
+! Multi-line labels and ascii fonts.
+
+plot/vs/nolab {0,1},{0,1}
+
+
+label .05 .96 0 0 .12 "@CR at P4Single Line examples. Ascii font with and without escape for new color:"
+label .05 .9 0 0 .16 "@ASNo_escapes at c002good_1@c003friend_2"
+label .05 .83 0 0 .16 "@ASEscape_new_colors@c002red_1@c003green_2"
+
+
+label .05 .65 0 0 .12 "@CR at P4Multi Line ascii examples:"
+
+label .05 .56 0 0 .12 "@CR at P4without escape"
+label .05 .5 0 0 .16 "@ASNo_escapes<NL>@c002good_1<NL>@c003friend_2"
+
+label .55 .56 0 0 .12 "@CR at P4with escape:"
+label .55 .5 0 0 .16 "@ASEscape_new_colors<NL>@c002red_1<NL>@c003green_2"
+
+! escape just the special characters.
+label .05 .26 0 0 .12 "@CR at P4Settings around underscores:"
+label .05 .2 0 0 .16 "hello at AS_@SRthere<NL>@c002good at AS_@SR1<NL>@c003friend at AS_@SR2"
+
+! escape new pen setting, not the font
+label .55 .26 0 0 .12 "@CR at P4Escape just the color changes:"
+label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ens_badvalue
+! err69_ens_badvalue.jnl
+!
+! Datasets have _FillValue but not missing_value attributes.
+! In this case the missing data info was not correctly handled
+! when defining an ensemble.
+
+use maize_1.nc, maize_2.nc, maize_3.nc
+
+! Note the _FillValue, flag
+sho att maize_yield
+ attributes for dataset: ./maize_3.nc
+ MAIZE_YIELD._FillValue = 9.96921E+36
+ MAIZE_YIELD.long_name = Maize harvest
+ MAIZE_YIELD.units = kgC.m-2.yr-1
+ MAIZE_YIELD.history = From new_ORCH_CORD_MIR_B1_maize
+ensemble ens = 1,2,3
+
+! MAIZE_YIELD[M=@NGD] should have values of 0, 2, and 3.
+list/y=29.25 MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3], MAIZE_YIELD[m=@ngd]
+ LONGITUDE: 8W(-8) to 6W(-6)
+ LATITUDE: 29.3N
+ E: 0.5 to 3.5 (number of valid)
+ Column 1: MAIZE_YIELD[D=maize_1] is Maize harvest (kgC.m-2.yr-1)
+ Column 2: MAIZE_YIELD[D=maize_2] is Maize harvest (kgC.m-2.yr-1)
+ Column 3: MAIZE_YIELD[D=maize_3] is Maize harvest (kgC.m-2.yr-1)
+ Column 4: MAIZE_YIELD[D=ENS] is Maize harvest (# of points)
+ MAIZE_YIELD MAIZE_YI MAIZE_Y MAIZE_YIELD
+7.75W / 1: .... 0.05247 0.1022 2.000
+7.25W / 2: 0.01818 0.03588 0.0049 3.000
+6.75W / 3: -0.00002 0.02030 -0.0139 3.000
+6.25W / 4: .... .... .... 0.000
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_by_levels
+! err69_ribbon_by_levels.jnl
+! ACM 5/19/2014
+! See ticket 2179
+! colors were not repeating after the first 10.
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_histogram
+! err69_ribbon_histogram.jnl
+! ACM 5/24/2014
+! Histogram levels with ribbon line plots
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,1.9,1.1,1.3,1.1,1.2,2.3,\
+2.4,2.4,2.2,2.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+! linear levels, then histogram levels
+can view; set v left
+ribbon/vs/line/thick/lev=10 xpts,ypts,var
+set v right
+ribbon/vs/line/thick/lev=10h xpts,ypts,var
+
+GO bn_reset
+cancel mode verify
+GO err69_repl_scinot
+! err69_repl_scinot.jnl
+! ticket 2175
+! The returned number had a bunch of trailing spaces
+
+let a = 1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (1.E-10)
+(1.E-10)
+
+let a = -1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.E-10)
+(-1.E-10)
+
+let a = -1.23e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.23E-10)
+(-1.23E-10)
+
+let a = -1.23e-2
+say (`a`)
+ !-> MESSAGE/CONTINUE (-0.0123)
+(-0.0123)
+
+GO bn_reset
+cancel mode verify
+GO err691_bnds_case
+! err691_bnds_case
+! 6/30/14
+! Ticket 2182 bounds variable incorrectly created with upper-cased axis name
+
+def ax/t tax = {1,2,4,8}
+let tval = t[gt=tax]
+can mode upcase_output
+save/clob/file=tval.nc tval
+
+set mode/last upcase_output
+
+GO bn_reset
+cancel mode verify
+GO err69_plot_vs_labs
+! err69_plot_vs_labs.jnl
+! ticket 2187: the axis labels on the dependent axis
+! for PLOT/VS is wrong. LABX and LABY contain the labels used.
+
+use coads_climatology
+
+let a = sst[L=1]
+let b = a[x=180e:100w at ave]
+let c = a[x=150w:90w at ave]
+let d = a[x=150w:90w at ave]
+set v left; plot/vs b,c; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+set v right; plot/vs c,b; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+
+can view
+plot/vs/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+
+set v left; plot/trans/vs b,c; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+set v right; plot/trans/vs c,b; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+
+can view
+plot/vs/trans/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+
+GO bn_reset
+cancel mode verify
+GO err69_levels_v
+! err69_levels_v.jnl
+! Ferret ticket 2186, and LAS ticket 1598
+! the data has values in the range 300 to 500,
+! and several values over 100000. The variance-
+! based levels returned useless levels. Changes
+! made to throw out data outside 3 std when
+! computing the mean and std dev for color levels.
+
+use "lev_v_bug.nc"
+shade/lev=v var2d
+
+! previously the computed levels spanned -8000 to 16000.
+sh sym *lev*
+LEV_TEXT = "V"
+LEV_HISTO_LEVELS = "1.1,1.2,1.6,1.9,2.4,2.5,3.8,5.4,10.2,13.6,14.9"
+LEV_MIN = "-1.E+34"
+LEV_MAX = "5.0000E+32"
+LEV_NUM = "21"
+LEV_DEL = "5.0000E+32"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_letd_dsetnum
+! err69_letd_dsetnum.jnl
+! Ticket 2189. Previously the grave-accent expression didn't get
+! translated, and the let command failed.
+
+use coads_climatology
+let/d=`sst,r=dsetnum` a = 1
+ !-> DEFINE VARIABLE/d=1 a = 1
+sh dat
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+ ------------------------------
+ A[D=coads_climatology] = 1
+
+
+GO bn_reset
+cancel mode verify
+GO err69_long_string_to_xml
+! err69_long_string_to_xml.jnl
+! ticket 2190 8-8-2014
+! previously the string was cut off at 512 characters. For this example
+! it was in the middle of the code AAAAAAAAAAAA
+!
+
+list/clobber/file="out.xml"/nohead/norow 1
+LET longstring = "Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC2004 [...]
+LET status = list_value_xml ("mytag", longstring, 1, "out.xml")
+LOAD status
+
+sp cat out.xml
+ 1.000
+<mytag><![CDATA[Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC200406 [...]
+
+GO bn_reset
+cancel mode verify
+GO err69_fill_trans
+! err69_fill_trans.jnl
+! ticket 2196. Visible only if bounds-checking is turned on.
+! 9/22/2014
+
+DEFINE AXIS/x=1:15:1 xaxis
+let var = {1,2,3,,,,,,,4,,5,6,7,8}
+LET myvar = var[gx=xaxis at asn]
+
+list myvar
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ SUBSET : 15 points (X)
+ 1 / 1: 1.000
+ 2 / 2: 2.000
+ 3 / 3: 3.000
+ 4 / 4: ....
+ 5 / 5: ....
+ 6 / 6: ....
+ 7 / 7: ....
+ 8 / 8: ....
+ 9 / 9: ....
+ 10 / 10: 4.000
+ 11 / 11: ....
+ 12 / 12: 5.000
+ 13 / 13: 6.000
+ 14 / 14: 7.000
+ 15 / 15: 8.000
+list myvar[x=6 at fnr:2]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 2 pts)
+ ....
+
+! This caused attempt to load variable at index i = -4
+list myvar[x=6 at fnr:10]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 10 pts)
+ 3.000
+
+! Likewise the way @FAV is computed, this caused Ferret
+! to try to get data at i=-3
+list myvar[x=6 at fav:18]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (ave-filled by 18 pts)
+ 4.500
+
+
+GO bn_reset
+cancel mode verify
+GO err69_load_big_grid
+! err69_load_big_grid
+! ticket 1758
+! error about "a negative number of words requested... grid too large"
+! in fact all large grids misreports size. Now computations are done
+! in real numbers and in block not word sizes.
+
+set mode ignore
+
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+
+! this gave the error about "a negative number of words requested... grid too large"
+define axis/t=1-jan-2000:1-jan-2005:1/units=days longtime
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+ GRID (G004)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 1828 r 01-JAN-2000 00:00 01-JAN-2005 00:00
+ normal E
+ normal F
+load bigvar
+
+! also was an incorrect size.
+define axis/t=1-jan-2000:1-jan-2010:1/units=days longtime
+sh grid bigvar
+ GRID (G004)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 3654 r 01-JAN-2000 00:00 01-JAN-2010 00:00
+ normal E
+ normal F
+load bigvar
+
+cancel mode ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_write_attribute
+! err69_write_attribute.jnl
+! Bug 1863
+
+use gt4d011.cdf
+sh grid temp
+ GRID PS3DT2
+ name axis # pts start end
+ PSXT LONGITUDE 160mr 130.5E 70.5W
+ PSYT LATITUDE 100 i 28.836S 48.568N
+ PSZT DEPTH (m) 27 i- 5 3824
+ TIME1 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
+ normal E
+ normal F
+let a = temp[x=@ave,y=@ave,L=1]
+
+! The attribute we ask not to write is not written for this variable
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (PSZT).point_spacing
+save/q/clob/file="a.nc"/bounds a
+sp ncdump -h a.nc | grep -i "`a,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT"
+ PSZT1_10 = 10 ;
+ double PSZT1_10(PSZT1_10) ;
+ PSZT1_10:units = "meters" ;
+ PSZT1_10:positive = "down" ;
+ PSZT1_10:standard_name = "depth" ;
+ PSZT1_10:bounds = "PSZT1_10_bnds" ;
+ double PSZT1_10_bnds(PSZT1_10, bnds) ;
+ double A(TIME1, PSZT1_10) ;
+
+! But it was being written for this one. It should not.
+let b = temp[x=@ave,y=@ave,L=1,d=1]
+save/q/clob/file="a.nc"/bounds b
+sp ncdump -h a.nc | grep -i "`b,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT"
+ PSZT1_10 = 10 ;
+ double PSZT1_10(PSZT1_10) ;
+ PSZT1_10:units = "meters" ;
+ PSZT1_10:positive = "down" ;
+ PSZT1_10:standard_name = "depth" ;
+ PSZT1_10:bounds = "PSZT1_10_bnds" ;
+ double PSZT1_10_bnds(PSZT1_10, bnds) ;
+ double B(TIME1, PSZT1_10) ;
+
+! A variable that depends on more than one dataset.
+use coads_climatology
+let c = temp[x=@ave,y=@ave,L=1,d=1] + sst[x=@ave,y=@ave,t=@ave,d=2]
+save/q/clob/file="a.nc"/bounds c
+sp ncdump -h a.nc | grep -i "`c,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT"
+ PSZT1_10 = 10 ;
+ double PSZT1_10(PSZT1_10) ;
+ PSZT1_10:units = "meters" ;
+ PSZT1_10:positive = "down" ;
+ PSZT1_10:standard_name = "depth" ;
+ PSZT1_10:bounds = "PSZT1_10_bnds" ;
+ double PSZT1_10_bnds(PSZT1_10, bnds) ;
+ double C(PSZT1_10) ;
+
+can data/all
+can var/all
+
+! When there are two datasets with the same axis name but different depths,
+! the second axis name is changed internally.
+
+DEFINE AXIS/z/depth zzdep = {0,10,20,30,50,75,100,150,200,300,400,600,800,1000,1200,1500,2000,3000,4000,5000}
+
+LET temp = z[gz=zzdep]
+save/clobber/file=aa.nc temp
+save/clobber/keep/file=bb.nc temp[k=1:15]
+can var/all
+can axis zzdep
+
+use aa
+use bb
+set data 1
+
+show att (`temp,r=zaxis`)
+ !-> show att (ZZDEP)
+ attributes for dataset: ./aa.nc
+ (ZZDEP).point_spacing = uneven
+ (ZZDEP).axis = Z
+ (ZZDEP).bounds = ZZDEP_bnds
+ (ZZDEP).positive = down
+ (ZZDEP).standard_name = depth
+ (ZZDEP).orig_file_axname = ZZDEP
+
+let a = temp[d=1,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+set data 2
+let a = temp[d=2,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP1).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP1
+ ZZDEP1 = 15 ;
+ double ZZDEP1(ZZDEP1) ;
+ ZZDEP1:axis = "Z" ;
+ ZZDEP1:bounds = "ZZDEP1_bnds" ;
+ ZZDEP1:positive = "down" ;
+ ZZDEP1:standard_name = "depth" ;
+ double ZZDEP1_bnds(ZZDEP1, bnds) ;
+ double A(ZZDEP1) ;
+
+let a = temp[d=2,gz=temp[d=1]]
+
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+sp rm aa.nc bb.nc
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_countervar_context
+! err69_countervar_context.jnl
+! ACM 10/3/2014
+! Ticket 2200. Context from SET REGION should not
+! apply in named-repeat loop. The loop would run,
+! but returned values of 0.
+
+let a = b
+set region/i=20:30
+repeat/name=b/range=1:3 (say `a`)
+!-> REPEAT: B:1
+ !-> MESSAGE/CONTINUE 1
+1
+!-> REPEAT: B:2
+ !-> MESSAGE/CONTINUE 2
+2
+!-> REPEAT: B:3
+ !-> MESSAGE/CONTINUE 3
+3
+
+can region
+
+GO bn_reset
+cancel mode verify
+GO err69_label_backspace
+! err69_label_backspace
+! Ticket 2203: \\ before a character backspaces before
+! making the character. This broke in the 64-bit versions.
+
+plot/vs/nolab {0,1},{0,1}
+label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_and_regridding
+! err69_isready_and_regridding.jnl
+! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
+! state after other contexts have been defined
+
+can dat/all
+
+! create & load a file with a Gregorian time axis
+def ax/t/unit=days/t0=1-jan-1979 tax_g = {15,45,75,105,135}
+let a = t[gt=tax_g]
+save/clob/file=a.nc a
+can var a
+can ax tax_g
+use a.nc
+
+! create a variable on a Julian time axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=julian/unit="hour"/t0=1-jan-1900 tax_j
+let b = t[gt=tax_j]
+
+! put the Gregorian data on the Julian axis
+let a2 = a
+let a2_on_b = a2[gt=b]
+
+! create a climatological axis (Julian)
+def ax/t/unit=days/t0=1-jan-0001/modulo=365.25/cal=julian tax_jc = {15.5,45.125,74.75,105.25,135.75,166.25,196.75,227.75,258.25,288.75,319.25,349.75}
+
+let b_one = missing(1+0*b,1) !set everything to 1
+let nyr = b_one[gl=tax_jc at modsum] !# years that include each month
+
+! Execute some commands which put things into context storage
+
+say `a2_on_b,r=title`
+ !-> MESSAGE/CONTINUE A2[GT=B]
+A2[GT=B]
+say `nyr[l=1]`
+ !-> MESSAGE/CONTINUE 23
+23
+
+! This got us into a weird hanged state
+IF `a2_on_b,r=isready` THEN
+ !-> IF 1 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_and_uvar_regrid
+! err69_vtree_and_uvar_regrid.jnl
+! Ticket 2206: This lead to a crash.
+! 10/9/2014
+
+let a = t[gt=1:2:1]
+let b2 = a
+let c = b2[gt=a]
+GO bn_vtree.sub c
+/TREE=ALL
+ C = B2[GT=A]
+ B2 = A
+ A = T[GT=1:2:1]
+/TREE=USER
+ C = B2[GT=A]
+ B2 = A
+ A = T[GT=1:2:1]
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_cancel_axis
+! err69_vtree_cancel_axis
+! Ticket 2201: After a return=isready,
+! cannot cancel the axis used by the var
+! 10-Oct-2014
+
+define axis/x=0:360:1 xax1
+define axis/x=0:360:10 xax2
+
+let a = x[gx=xax1]
+say `a,return=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX1]
+X[GX=XAX1]
+
+let b = a[gx=xax2]
+say `b,return=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+cancel var a b
+cancel axis xax1
+cancel axis xax2
+
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_bugs
+! err69_isready_bugs.jnl
+! Tickets 2201 and 2215
+
+! ticket 2201: isready operation meant we couldn't cancel the second axis
+
+def ax/x=0:360:1 xax_isready_1
+def ax/x=0:360:10 xax_isready_2
+let a = x[gx=xax_isready_1]
+say `a,r=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX_ISREADY_1]
+X[GX=XAX_ISREADY_1]
+let b = a[gx=xax_isready_2]
+load b
+say `b,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+
+can var a
+can axis xax_isready_1
+can var b
+can axis xax_isready_2
+
+! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
+
+let a = x[gx=1:3:1]
+let b = a - a[gx=a]
+let c = 1
+let/unit="m" f = b*c
+say `f,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+say `f,r=unit`
+ !-> MESSAGE/CONTINUE m
+m
+*** Running test: bn_append_dsg.jnl
+! bn_append_dsg.jnl
+!From SOCAT 3: appending to a dsg file where the new variable is on the obs
+! dimension. THe file has no coordinate variable, and we want to keep it that way.
+! Ferret needs to detect the dimension-only axis and keep it as-is. Do not upcase,
+! do not write a coordinate variable.
+!
+! Contains the metadata variables, global attributes, and incoming variables.
+! Where we recompute some of the incoming variables and append them to the file,
+! the values in the file are replaced.
+!
+! Argument is a file name; the single-cruise dsg file from the data entry
+!
+! We append more variables to the file, using the same obs dimension.
+
+sp rm test_save_dsg.nc
+sp cp test_save_dsg_in.nc test_save_dsg.nc
+
+use test_save_dsg.nc
+
+! Lon in 0-360
+let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
+define attribute/output lon360.ioos_category = "Location"
+define attribute/output lon360.standard_name = "Longitude"
+define attribute/output lon360.history = "added to test_save_dsg.nc"
+
+save/quiet/append/file=test_save_dsg.nc lon360
+
+! The longitude and lon360 variables should have the same lowercase (obs) dimension.
+
+sp ncdump -h test_save_dsg.nc
+netcdf test_save_dsg {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :History = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "CF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+}
+*** Running test: bn_global_atts.jnl
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.91 (beta)
+ ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
+ ! 7-Apr-14 16:41
+
+sp cp 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
+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
+netcdf global {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventions" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+sp ncdump -h global_copy.nc
+netcdf global_copy {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0FERRET V6.93 30-Oct-14" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventionsCF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+
+! This dataset has global attributes history and Conventions that include
+! a Ferret version and CF version that Ferret will replace.
+
+sp ncgen -o anew_global.nc anew_global.cdl
+use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.71 9-May-14
+ ..Conventions = Existing conventions note, CF-1.0
+let var = 8
+save/append/file=anew_global.nc var
+can dat/all; use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.93 30-Oct-14
+ ..Conventions = Existing conventions note, , CF-1.6
+
+
+
+*** Running test: bn_conventions_history.jnl
+! bn_conventions_history.jnl
+! ticket 2169:
+! Write conventions CF-1.6
+! When appending to the Conventions and history
+! attribute, add the new stuff with a comma and newline.
+
+sp cp conventions_history_in.nc conventions_history.nc
+use conventions_history
+!
+! The existing global attributes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the file
+ ..Conventions = Conventions for variables named V2
+!
+! Write to the file
+let v3 = v1+v2
+save/append/file=conventions_history.nc v3
+can dat/all; use conventions_history
+!
+! The new attibutes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the fileFERRET V6.93 30-Oct-14
+ ..Conventions = Conventions for variables named V2CF-1.6
+*** Running test: bn_center_key_labels.jnl
+! bn_center_key_labels
+! 6/2014
+!
+! Arguments to /KEY qualifier on color plots
+! /CENTERLABEL for label between lines on colorbar
+! /HORIZONTAL for horizontal key
+
+use levitus_climatology.cdf
+shade/lev=10/key=cent,horiz temp
+fill/lev=10v/key=cent temp
+
+! Ribbon plots and all three keywords: centerlab, horizontal, continuous
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key=center,horiz,cont xpts,ypts,var
+
+! Automatically restore non-continuous key, non-center, vertical
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key xpts,ypts,var
+
+! Polygons: the polymark script needs multiple key qualifiers to be in quotes.
+use coads_climatology
+def axis/x=0:360:5 xq
+def axis/y=-90:90:4 yq
+let fsst = sst[l=1,gx=xq,gy=yq]
+
+let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
+let lat = xsequence(0*x[gx=xq] + y[gy=yq])
+shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst ! set up
+
+go polymark poly/key="horiz,center"/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
+
+can data coads_climatology
+
+! Automatically restore regular handling of levels
+shade temp
+
+*** Running test: bn_wgt_transform.jnl
+! bn_wgt_transform.jnl test new @WGT transform,
+! returns weights used in the equiv. average or integral transform
+! ACM 7/2014
+
+! Define an XYT grid
+
+def axis/x=2:360:2/units=degrees_east x2
+def axis/y=-89:89:2/units=degrees_north y2
+let var = x[gx=x2] + y[gy=y2] + t[gt=month_irreg]
+let weights= var[x=@wgt,y=@wgt,t=@wgt]
+
+! Varies in y with latitude correction
+shade/l=1 weights
+
+! Sum of xy transform is the surface area of the earth, meters
+let weights= var[x=@wgt,y=@wgt]
+list/l=1 weights[i=@sum,j=@sum]
+ VARIABLE : VAR[X=@WGT,Y=@WGT]
+ LONGITUDE: 1E to 1E(361) (XY summed)
+ LATITUDE : 90S to 90N (XY summed)
+ TIME : 16-JAN 12:00
+ 5.101E+14
+
+! Varies in T because of irregular t axis
+shade/x=1 weights
+
+
+! The result t=@WGT returned in seconds
+let mywt = var[t=@wgt]
+
+let secperday = 24*3600
+list/x=1/y=1 mywt, mywt/secperday
+ TIME: 01-JAN 00:00 to 31-DEC 05:49
+ LONGITUDE: 2E
+ LATITUDE: 1N
+ Column 1: MYWT is VAR[T=@WGT]
+ Column 2: EX#2 is MYWT/SECPERDAY
+ MYWT EX#2
+16-JAN 12 / 1: 2678400. 31.00
+15-FEB 02 / 2: 2440152. 28.24
+15-MAR 17 / 3: 2678400. 31.00
+15-APR 05 / 4: 2592000. 30.00
+15-MAY 17 / 5: 2678400. 31.00
+15-JUN 05 / 6: 2592000. 30.00
+15-JUL 17 / 7: 2678400. 31.00
+15-AUG 17 / 8: 2678400. 31.00
+15-SEP 05 / 9: 2592000. 30.00
+15-OCT 17 / 10: 2678400. 31.00
+15-NOV 05 / 11: 2592000. 30.00
+15-DEC 17 / 12: 2678400. 31.00
+
+! Test reusing results. (ticket 2183)
+use gt4d011.cdf
+! The last value is a partial grid cell
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ TIME : 29-AUG-1982 16:00
+ 130.5W
+ 100
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+
+! Now load the result over a larger region
+list/y=1.5/x=130w/z=0:82/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 9 points (DEPTH (m))
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ TIME : 29-AUG-1982 16:00
+ 130.5W
+ 100
+ 5 / 1: 10.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 10.00
+ 55 / 6: 10.00
+ 65 / 7: 10.00
+ 75 / 8: 10.00
+ 85 / 9: 2.00
+
+! This finds the previous result in memory - needs to
+! reuse the correct one.
+
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ TIME : 29-AUG-1982 16:00
+ 130.5W
+ 100
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+*** Running test: bn_show_outfile.jnl
+! bn_show_outfile
+! Adding tests for SHOW/OUTFILE=
+! Previously only tests when SHOW/XML/OUTFILE=
+! Bugs in SHOW/OUTFILE reported in ticket 2194
+! 8/18/2014
+
+! test various combinations of /append and /clobber
+
+!can mode verify
+
+! show axis/outfile
+
+
+sho ax/clobber/outfile=a.txt month_irreg
+sho ax/clobber/outfile=a.txt month_irreg
+
+SAY ---------------- Just axis month_irreg
+---------------- Just axis month_irreg
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+
+show axis/append/outfile=a.txt PS*
+
+SAY ---------------- appending all axes starting with PS
+---------------- appending all axes starting with PS
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ name axis # pts start end
+ PSXT LONGITUDE 160mr 130.5E 70.5W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSXU LONGITUDE 160mr 131E 70W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYT LATITUDE 100 i 28.836S 48.568N
+ Axis span (to cell edges) = 80.00004
+ PSYU LATITUDE 100 i 27.672S 50N
+ Axis span (to cell edges) = 80.2682
+ PSZT DEPTH (m) 27 i- 5 3824
+ Axis span (to cell edges) = 4149
+ PSZW DEPTH (m) 27 i- 10 4149
+ Axis span (to cell edges) = 4144
+
+! show grid/outfile
+
+use coads_climatology
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just the grid of sst
+---------------- Just the grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+! show var/outfile
+
+use coads_climatology
+let two = 2
+let myvar = sst*2
+show var/clobber/outfile=a.txt myvar, two
+
+SAY ---------------- show var output from two user vars
+---------------- show var output from two user vars
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+cancel var/all
+
+! show data/outfile
+
+show data/append/outfile=a.txt
+
+SAY ---------------- appending show data
+---------------- appending show data
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+! combinations of /append and /clobber
+
+show data/clobber/outfile=a.txt
+show data/clobber/outfile=a.txt
+
+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)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just grid of sst
+---------------- Just grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+use coads_climatology
+use levitus_climatology
+
+show data/clobber/outfile=a.txt 1
+
+SAY ---------------- Just dataset 1
+---------------- Just dataset 1
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show data/append/outfile=a.txt levitus_climatology
+
+SAY ---------------- appending datset 2 by name
+---------------- appending datset 2 by name
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+ currently SET data sets:
+ 2> ./levitus_climatology.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 1:160 1:90 1:1 ... ... ...
+
+show grid/clobber/outfile=a.txt PS3*
+
+SAY ---------------- only showing all grids starting with PS3
+---------------- only showing all grids starting with PS3
+sp cat a.txt
+ PS3DT
+ PS3DU
+ PS3DW
+
+SAY ---------------- tests sending output of vtree to a file
+---------------- tests sending output of vtree to a file
+GO bn_vtree_outfile
+! bn_tree_outfile.jnl
+
+! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+
+CANCEL DATA/ALL
+! pure abstract variable -- no dataset
+let a = 1
+
+!
+show var/tree/outfile=a.txt/clobber a
+show var/tree/outfile=a.txt/clobber a
+sp cat a.txt
+ A = 1
+
+let b = 1
+let c = SIN(b)
+show var/tree/outfile=a.txt/clobber c
+sp cat a.txt
+ C = SIN(B)
+ B = 1
+
+! create dummy datasets so we'll have named file variables to play with
+let fv1 = 1
+let fvx = x[i=1:3]
+let fvz = Z[k=1:3]
+SAVE/CLOBBER/QUIET/FILE=my_file_vars.nc fv1, fvx, fvz
+SAVE/CLOBBER/QUIET/FILE=other_file_vars.nc fv1
+SAVE/CLOBBER/QUIET/FILE=another_file_vars.nc fv1
+CAN VAR/ALL
+use my_file_vars, other_file_vars, another_file_vars
+set data 1
+
+! ================
+
+! more pure abstract variables
+let a = 1
+let b = 1
+let c = SIN(b)
+go bn_vtree_outfile.sub c
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1
+ FV1[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+a is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1
+ FVX
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset other_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1
+********************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: V[D=NOEXIST]
+************************
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
+************************
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+RESHAPE(fvx,fvz) is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FVX
+ FVZ
+ FVX[d=my_file_vars]
+ FVZ[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ NOEXIST (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ FV1[d=another_file_var]
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fvx is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=my_file_var]
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_var]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_var]
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+
+ FVX[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ILLEGAL RECURSIVE VARIABLES: P1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S3 (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: S1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S1 (unknown variable)
+ S3 (unknown variable)
+ in default dataset my_file_vars
+ FV = FV1 + FV1 + FV1
+ in default dataset MY_UVAR_AGG
+ FV = FV1 + FV1 + FV1
+ FV1 (aggregate variable)
+ in default dataset other_file_vars
+ UV = FVX + FVX + FVX
+ FVX = FV1 + X[GX=FVX[D=1],I=1:3]
+ in default dataset MY_UVAR_AGG
+ UV = FVX + FVX + FVX
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+***************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v2 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v3 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: F
+************************
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ FV1[d=my_file_var]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ FVX[d=my_file_var]
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ F (unknown variable)
+ FV1[d=my_file_vars]
+ NOEXIST (unknown variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN GRID: A[G=NOEXIST]
+************************
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ A[G=NOEXIST] (unknown grid)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[X=45S]
+************************
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ A[X=45S] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
+************************
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[P=1]
+************************
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ A[P=1] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+f is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ A = FVZ.LONG_NAME[D=1]
+ in default dataset MY_UVAR_AGG
+ A = ..HISTORY[D=1]
+
+
+*** Running test: bn_date1900_array.jnl
+! bn_date1900_array.jnl
+! Let date1900 accept an array of date strings, returning a list
+! of coordinate values, days since 1-jan-1900.
+
+
+sh func/details date1900
+DATE1900(formatted date)
+ Convert date strings into Julian days since 1-Jan-1900
+ Axes of result:
+ X: inherited from argument(s)
+ Y: NORMAL (no axis)
+ Z: NORMAL (no axis)
+ T: NORMAL (no axis)
+ E: NORMAL (no axis)
+ F: NORMAL (no axis)
+ formatted date: dd-MMM-yy or dd-MMM-yyyy (e.g. "20-Dec-00") (none) (STRING)
+ Influence on output axes:
+ X: passed to result grid
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+! Function always worked just on one date string.
+list date1900("01-jan-2001")
+ VARIABLE : DATE1900("01-jan-2001")
+ 36890.
+
+
+! Now the argument can be an array
+let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
+list date1900(datestrings)
+ VARIABLE : DATE1900(DATESTRINGS)
+ SUBSET : 3 points (X)
+ 1 / 1: 36890.
+ 2 / 2: 36891.
+ 3 / 3: 37465.
+
+def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
+list t[gt=taxis]
+ VARIABLE : T
+ axis TAXIS
+ SUBSET : 3 points (TIME)
+ 01-JAN-2001 00 / 1: 36890.
+ 02-JAN-2001 00 / 2: 36891.
+ 30-JUL-2002 00 / 3: 37465.
+
+*** Running test: bn_spawn_size.jnl
+! bn_spawn_size.jnl
+! Return the size of the result of a spawn, not
+! the nominalabstract axis length.
+
+! ticket 981
+
+let files = {spawn:"ls *cdf*.jnl"}
+list files
+ VARIABLE : {SPAWN:"ls *cdf*.jnl"}
+ SUBSET : 8 points (X)
+ 1 / 1:"bn_cdf_errmsg.jnl"
+ 2 / 2:"bn_cdf.jnl"
+ 3 / 3:"bn_cdf_keepax.jnl"
+ 4 / 4:"bn_netcdf4.jnl"
+ 5 / 5:"err490_cdf_childax.jnl"
+ 6 / 6:"err491_cdf_childax.jnl"
+ 7 / 7:"err65_read_epic_cdf.jnl"
+ 8 / 8:"err667_5d_netcdf.jnl"
+say `files,return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+
+! Evaluate size without loading the variable first
+let datfiles = {spawn:"ls *.dat"}
+say `datfiles,return=isize`
+ !-> MESSAGE/CONTINUE 36
+36
+
+! expression syntax
+say `{spawn:"ls xml*.jnl"},return=isize`
+ !-> MESSAGE/CONTINUE 3
+3
+list {spawn:"ls xml*.jnl"}
+ VARIABLE : {SPAWN:"ls xml*.jnl"}
+ SUBSET : 3 points (X)
+ 1 / 1:"xml_header_script.jnl"
+ 2 / 2:"xml_use_coads.jnl"
+ 3 / 3:"xml_use_numstring.jnl"
+
+! Test variables based on output of a spawn.
+! These already worked correctly, has a grid-changing function.
+
+LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+say `filesets, return=isize`
+ !-> MESSAGE/CONTINUE 834
+834
+
+let files = {spawn:"ls *cdf*.jnl"}
+let name_len = strindex(files, ".sub")
+say `name_len, return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+*** Running test: bn_polygon_log.jnl
+! bn_polygon_log.jnl
+! polygon plots on a log axis need tests
+
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let xpts = cos(x/10) + 2
+let ypts = x/10+1
+
+! Polygon plot
+
+set view ul
+polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+
+! Poly/vlog and /hlog
+! (known bug: Whats up with the colorbar labels?)
+set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
+set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
+set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
+
+! These are errors - log of negative values on axis
+
+set mode ignore
+
+let ybad = x/10 - 1
+let xbad = cos(x/10) + 0.8
+
+can view
+polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+
+set mode/last ignore
*** Running test: bn_all_ef.jnl
SET MODE VERIFY
! bn_all_ef.jnl
@@ -75624,22 +77756,22 @@ exit
exit/command
*** Running test: bn_startupfile.jnl
- Current size of FERRET memory cache: 31 MegaWords (1 word = 4 bytes)
-PPL$XPIXEL = "691"
-PPL$YPIXEL = "518"
+ Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
+PPL$XPIXEL = "656"
+PPL$YPIXEL = "492"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.9"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5 64-bit"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.32-504.el6.x86_64 64-bit"
FERRET_PRECISION = "double"
-NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
+NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 10:43:06 $"
FERRET_MEMORY = "31"
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "15:38"
-SESSION_PID = "27420"
-DELTA_CPU = "0.026995"
-CLOCK_SECS = "0.096"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "15:38:52"
+SESSION_DATE = "30-Oct-14"
+SESSION_TIME = "11:20"
+SESSION_PID = "11944"
+DELTA_CPU = "0.05399"
+CLOCK_SECS = "1.164"
+CURRENT_DATE = "30-Oct-14"
+CURRENT_TIME = "11:20:04"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "Ferret"
LAST_GO_FILE = "./bn_startupfile.jnl"
@@ -75661,7 +77793,7 @@ PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
PPL$COMMAND_FILE = "$$MEMBUF$$"
-WIN_TITLE = "31-Mar-14:15:38"
+WIN_TITLE = "30-Oct-14:11:20"
VP_WIDTH = "10.2"
VP_HEIGHT = "8.8"
VP_SCALE = "1"
@@ -75714,4 +77846,4 @@ VP_YHI = "1"
TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
-Ended at Mon Mar 31 15:38:52 PDT 2014
+Ended at Thu Oct 30 11:20:08 PDT 2014
diff --git a/bench/test_results/ferret_run_tests_ncdump b/bench/test_results/ferret_run_tests_ncdump
index a44de1d..df2bf17 100644
--- a/bench/test_results/ferret_run_tests_ncdump
+++ b/bench/test_results/ferret_run_tests_ncdump
@@ -50,8 +50,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969 ;
@@ -75,8 +75,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969, 50757974 ;
@@ -112,8 +112,8 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -151,8 +151,8 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
GFP3 = "" ;
@@ -186,8 +186,8 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_4 = 1, 2, 3, 4 ;
@@ -256,8 +256,8 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425,
@@ -313,8 +313,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -370,8 +370,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -425,8 +425,8 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
ZIRR = 0, 10, 40, 70 ;
@@ -473,8 +473,8 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_83 = 181, 183, 185 ;
@@ -567,8 +567,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -637,8 +637,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -688,8 +688,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -779,8 +779,8 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 0.5, 2 ;
@@ -806,8 +806,8 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -830,8 +830,8 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -857,14 +857,14 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_tab_comma_multivar.jnl
*** Running test: bn_element_functions.jnl
*** Running test: bn_long_revision_num.jnl
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.9 31-Mar-14" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
*** Running test: bn_window_title.jnl
*** Running test: bn_last_error.jnl
*** Running test: bn_deg_min.jnl
@@ -900,8 +900,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -973,8 +973,8 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -1017,8 +1017,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX105_105 = 229 ;
@@ -1059,8 +1059,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -1167,8 +1167,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
netcdf a {
@@ -1208,8 +1208,8 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
netcdf a {
@@ -1231,8 +1231,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -1257,8 +1257,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -1277,8 +1277,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -1298,8 +1298,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -1341,8 +1341,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
netcdf a {
@@ -1381,8 +1381,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
netcdf a {
@@ -1419,40 +1419,40 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX011 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float A1(XAX1_5) ;
+ double AX011(AX011) ;
+ AX011:point_spacing = "even" ;
+ AX011:axis = "X" ;
+ float A1(AX011) ;
A1:missing_value = -1.e+34f ;
A1:_FillValue = -1.e+34f ;
A1:long_name = "A1" ;
A1:three = 1.f, 2.f, 3.f ;
A1:history = "From EZ.DAT" ;
- float A2(XAX1_5) ;
+ float A2(AX011) ;
A2:missing_value = -1.e+34f ;
A2:_FillValue = -1.e+34f ;
A2:long_name = "A2" ;
A2:history = "From EZ.DAT" ;
- float A3(XAX1_5) ;
+ float A3(AX011) ;
A3:missing_value = -1.e+34f ;
A3:_FillValue = -1.e+34f ;
A3:long_name = "A3" ;
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX011 = 1, 2, 3, 4, 5 ;
A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -1463,29 +1463,29 @@ data:
bn_attributes.jnl --- 15 attributes of data from delimited data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX008 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float V1(XAX1_5) ;
+ double AX008(AX008) ;
+ AX008:point_spacing = "even" ;
+ AX008:axis = "X" ;
+ float V1(AX008) ;
V1:missing_value = -1.e+34f ;
V1:_FillValue = -1.e+34f ;
V1:long_name = "V1" ;
V1:strval = "2" ;
V1:history = "From EZ.DAT" ;
- float V4(XAX1_5) ;
+ float V4(AX008) ;
V4:missing_value = -1.e+34f ;
V4:_FillValue = -1.e+34f ;
V4:long_name = "V4" ;
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX008 = 1, 2, 3, 4, 5 ;
V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -1507,8 +1507,8 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -1553,8 +1553,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
:option = 0 ;
@@ -1660,8 +1660,8 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
bn_attributes.jnl --- 19 scale and offset attr.
@@ -1702,8 +1702,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XC = -135.50957036625, -135.496120344706, -135.482670323162,
@@ -1785,8 +1785,8 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
J = 2, 4, 6 ;
@@ -1822,8 +1822,8 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
B = 1 ;
@@ -1862,8 +1862,8 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -1913,8 +1913,8 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -1972,8 +1972,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2017,8 +2017,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2060,8 +2060,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2095,8 +2095,8 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2129,8 +2129,8 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
netcdf string4d {
@@ -2159,8 +2159,8 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
@@ -2188,8 +2188,8 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
data:
@@ -2249,8 +2249,8 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2294,8 +2294,8 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_transforms.jnl
*** Running test: bn_variance.jnl
@@ -2335,8 +2335,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -2365,8 +2365,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -2395,8 +2395,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -2448,8 +2448,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2490,8 +2490,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2508,8 +2508,8 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_no_valid_on_plot.jnl
*** Running test: bn_median.jnl
@@ -2517,12 +2517,12 @@ variables:
err611_set_var_ez.jnl ---
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX002 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_ASC(XAX1_3) ;
+ double AX002(AX002) ;
+ AX002:point_spacing = "even" ;
+ AX002:axis = "X" ;
+ float MY_ASC(AX002) ;
MY_ASC:missing_value = 3.f ;
MY_ASC:_FillValue = 3.f ;
MY_ASC:long_name = "chlorophyll" ;
@@ -2530,17 +2530,17 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX002 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_UNF(XAX1_3) ;
+ double AX002(AX002) ;
+ AX002:point_spacing = "even" ;
+ AX002:axis = "X" ;
+ float MY_UNF(AX002) ;
MY_UNF:missing_value = 5.f ;
MY_UNF:_FillValue = 5.f ;
MY_UNF:long_name = "Some Unformatted input" ;
@@ -2548,8 +2548,8 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
netcdf a {
@@ -2565,8 +2565,8 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -2586,8 +2586,8 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
@@ -2605,50 +2605,51 @@ data:
netcdf a {
dimensions:
XAX1_10 = 10 ;
- TDAY = UNLIMITED ; // (31 currently)
- LON1_5 = 5 ;
- LAT1_5 = 5 ;
+ tday = UNLIMITED ; // (31 currently)
+ lon1_5 = 5 ;
+ lat1_5 = 5 ;
bnds = 2 ;
- ZT = 10 ;
- TIME1478 = 3 ;
+ zt = 10 ;
+ time1478 = 3 ;
variables:
double XAX1_10(XAX1_10) ;
XAX1_10:point_spacing = "even" ;
XAX1_10:axis = "X" ;
- double TDAY(TDAY) ;
- TDAY:units = "days since 1998-12-31 00:00:00" ;
- TDAY:axis = "T" ;
- TDAY:calendar = "GREGORIAN" ;
- TDAY:time_origin = "31-DEC-1998" ;
- TDAY:standard_name = "time" ;
- double MyUpperLowerCaseVar(TDAY, XAX1_10) ;
+ double tday(tday) ;
+ tday:units = "days since 1998-12-31 00:00:00" ;
+ tday:axis = "T" ;
+ tday:calendar = "GREGORIAN" ;
+ tday:time_origin = "31-DEC-1998" ;
+ tday:standard_name = "time" ;
+ double MyUpperLowerCaseVar(tday, XAX1_10) ;
MyUpperLowerCaseVar:missing_value = -1.e+34 ;
MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
- double LON1_5(LON1_5) ;
- LON1_5:point_spacing = "even" ;
- LON1_5:axis = "X" ;
- LON1_5:standard_name = "longitude" ;
- double LAT1_5(LAT1_5) ;
- LAT1_5:point_spacing = "uneven" ;
- LAT1_5:axis = "Y" ;
- LAT1_5:standard_name = "latitude" ;
- LAT1_5:bounds = "LAT1_5_bnds" ;
- double LAT1_5_bnds(LAT1_5, bnds) ;
- float ZT(ZT) ;
- ZT:units = "meters" ;
- ZT:positive = "down" ;
- ZT:point_spacing = "uneven" ;
- ZT:axis = "Z" ;
- ZT:standard_name = "depth" ;
- ZT:bounds = "ZT_bnds" ;
- float ZT_bnds(ZT, bnds) ;
- double TIME1478(TIME1478) ;
- TIME1478:calendar = "NOLEAP" ;
- TIME1478:point_spacing = "even" ;
- TIME1478:axis = "T" ;
- TIME1478:standard_name = "time" ;
- double newvar(TIME1478, ZT, LAT1_5, LON1_5) ;
+ double lon1_5(lon1_5) ;
+ lon1_5:point_spacing = "even" ;
+ lon1_5:axis = "X" ;
+ lon1_5:standard_name = "longitude" ;
+ double lat1_5(lat1_5) ;
+ lat1_5:point_spacing = "uneven" ;
+ lat1_5:axis = "Y" ;
+ lat1_5:standard_name = "latitude" ;
+ lat1_5:bounds = "lat1_5_bnds" ;
+ double lat1_5_bnds(lat1_5, bnds) ;
+ float zt(zt) ;
+ zt:long_name = "zt" ;
+ zt:units = "meters" ;
+ zt:positive = "down" ;
+ zt:point_spacing = "uneven" ;
+ zt:axis = "Z" ;
+ zt:standard_name = "depth" ;
+ zt:bounds = "zt_bnds" ;
+ float zt_bnds(zt, bnds) ;
+ double time1478(time1478) ;
+ time1478:calendar = "NOLEAP" ;
+ time1478:axis = "T" ;
+ time1478:point_spacing = "even" ;
+ time1478:standard_name = "time" ;
+ double newvar(time1478, zt, lat1_5, lon1_5) ;
newvar:missing_value = -999. ;
newvar:_FillValue = -999. ;
newvar:long_name = "outgoing longwave radiation" ;
@@ -2656,8 +2657,8 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_cdf_keepax.jnl
*** Running test: bn_keep_axisnames.jnl
@@ -2685,8 +2686,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
netcdf a {
@@ -2712,8 +2713,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_key_label_minmax.jnl
*** Running test: bn62_bug_fixes.jnl
@@ -2817,8 +2818,8 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
netcdf a {
@@ -2849,8 +2850,8 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
netcdf a {
@@ -2882,8 +2883,8 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V6.9 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 30-Oct-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_repeated_coords.jnl
*** Running test: bn_xml_header.jnl
@@ -2922,5 +2923,15 @@ variables:
*** Running test: bn_enter_exit_GO.jnl
*** Running test: bn_stddev.jnl
*** Running test: bn_set_axis_name.jnl
+*** Running test: bn691_bug_fixes.jnl
+*** Running test: bn_append_dsg.jnl
+*** Running test: bn_global_atts.jnl
+*** Running test: bn_conventions_history.jnl
+*** Running test: bn_center_key_labels.jnl
+*** Running test: bn_wgt_transform.jnl
+*** Running test: bn_show_outfile.jnl
+*** Running test: bn_date1900_array.jnl
+*** Running test: bn_spawn_size.jnl
+*** Running test: bn_polygon_log.jnl
*** Running test: bn_all_ef.jnl
*** Running test: bn_startupfile.jnl
diff --git a/bench/test_results/flowlines.pdf b/bench/test_results/flowlines.pdf
index 51cce2d..08390ac 100644
Binary files a/bench/test_results/flowlines.pdf and b/bench/test_results/flowlines.pdf differ
diff --git a/bench/test_results/graticules.pdf b/bench/test_results/graticules.pdf
index e17ef73..a530c0d 100644
Binary files a/bench/test_results/graticules.pdf and b/bench/test_results/graticules.pdf differ
diff --git a/bench/test_results/linecolors.pdf b/bench/test_results/linecolors.pdf
index 244a239..6fcb739 100644
Binary files a/bench/test_results/linecolors.pdf and b/bench/test_results/linecolors.pdf differ
diff --git a/bench/test_results/multi_line_labels.pdf b/bench/test_results/multi_line_labels.pdf
index e61391a..c4ef234 100644
Binary files a/bench/test_results/multi_line_labels.pdf and b/bench/test_results/multi_line_labels.pdf differ
diff --git a/bench/test_results/polygon_plot.pdf b/bench/test_results/polygon_plot.pdf
index cd2547a..77b6d13 100644
Binary files a/bench/test_results/polygon_plot.pdf and b/bench/test_results/polygon_plot.pdf differ
diff --git a/bench/test_results/pyferret_run_tests_err b/bench/test_results/pyferret_run_tests_err
index 417c5e3..3f97d80 100644
--- a/bench/test_results/pyferret_run_tests_err
+++ b/bench/test_results/pyferret_run_tests_err
@@ -1,5 +1,5 @@
Using FERRET /home/users/ksmith/PyFerret/bin/pyferret
-lrwxrwxrwx 1 ksmith tmap 11 Mar 31 17:25 /home/users/ksmith/PyFerret/bin/pyferret -> pyferret.sh
+lrwxrwxrwx 1 ksmith tmap 11 Nov 5 16:36 /home/users/ksmith/PyFerret/bin/pyferret -> pyferret.sh
Using external functions from /home/users/ksmith/PyFerret/ext_func/libs
Benchmark run by ksmith
Note: RUN_TESTS.sh test results for debug build of PyFerret on RHEL5-64
@@ -216,6 +216,16 @@ Benchmark scripts that will be run:
bn_enter_exit_GO.jnl
bn_stddev.jnl
bn_set_axis_name.jnl
+ bn691_bug_fixes.jnl
+ bn_append_dsg.jnl
+ bn_global_atts.jnl
+ bn_conventions_history.jnl
+ bn_center_key_labels.jnl
+ bn_wgt_transform.jnl
+ bn_show_outfile.jnl
+ bn_date1900_array.jnl
+ bn_spawn_size.jnl
+ bn_polygon_log.jnl
bn_all_ef.jnl
bn_startupfile.jnl
****** Restricting Ferret paths to bench directory ******
@@ -232,7 +242,7 @@ FER_GRIDS=.
FER_LIBS=/home/users/ksmith/PyFerret/lib
FER_PALETTE=. /home/users/ksmith/PyFerret/ppl
FER_WEB_BROWSER=firefox
-Beginning at Mon Mar 31 17:26:16 PDT 2014
+Beginning at Wed Nov 5 16:37:14 PST 2014
*** Running test: bn_syntax.jnl
Cached data cleared from memory
*** NOTE: the use of "SET MODE METAFILE" is deprecated;
@@ -258,7 +268,6 @@ Beginning at Mon Mar 31 17:26:16 PDT 2014
*** NOTE: the use of "SET MODE METAFILE" is deprecated;
*** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
SET EXPRESSION has not been given or implied
- SET EXPRESSION has not been given or implied
**ERROR: unknown command qualifier: help
MESSAGE/CONTINUE /help
**ERROR: unknown command: that
@@ -826,9 +835,10 @@ list v2-and-minus[i=5:15 at ddc]
Cached data cleared from memory
LISTing to file permutedBinaryTest.dat
LISTing to file junk.dat
- **ERROR: request exceeds memory setting: A negative number of words were requested.
+ **ERROR: request exceeds memory setting: 24000 Mwords were requested.
load num
- *** NOTE: The current grid is most likely too large
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
Replacing definition of axis YAX
Replacing definition of axis ZAX
Replacing definition of axis TAX
@@ -3055,6 +3065,9 @@ Replacing definition of axis TAXIS
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
+ *** NOTE: ./err672_vert_axislabel.jnl
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
*** NOTE: Adjusting Y-axis label size from 0.100 to 0.030, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
@@ -3066,6 +3079,7 @@ Replacing definition of axis TAXIS
*** NOTE: Axis coordinates are decreasing-ordered. Reversing ordering for axis RLATU79_961_9
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
+ *** NOTE: Adjusting Y-axis label size from 0.100 to 0.089, to avoid running off page.
PERMANENT data cleared from memory
TEMPORARY data cleared from memory
PERMANENT data cleared from memory
@@ -3409,6 +3423,14 @@ plot/i=1:100/ribbon/COLOR sin(i/6),0.6*sin(i/7)
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
*** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
**ERROR: illegal limits: X axis limits don't match variable def'n: A
Are you giving explicit limits when SET REGION would suffice ?
list f
@@ -3495,10 +3517,14 @@ show att temp.noexist[d=levitus_climatology]
TEMPORARY data cleared from memory
**ERROR: invalid command: illegal new name. Variable b already defined
set var/name=b a
+ **ERROR: invalid command: illegal new name. Variable b already defined
+set var/name=b a
**ERROR: invalid command: illegal new name. Variable temp exists in dataset
set var/name=temp salt
**ERROR: invalid command: illegal new name. Variable psi exists in dataset
set var/name=psi myvar
+ **ERROR: invalid command: illegal new name. Variable diff already defined
+set var/name=diff w
*** Running test: bn_bad_axis_bounds.jnl
Cached data cleared from memory
*** NOTE: Axis definition error on axis: MONTH_IRREG. Bounds describe cells that overlap one another
@@ -3522,6 +3548,149 @@ set axis/name x_in_meters
set axis/name=45 x_in_meters
**ERROR: invalid command: illegal new name given for axis .fr
set axis/name=.fr x_in_meters
+*** Running test: bn691_bug_fixes.jnl
+ Cached data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 3 : TAX_DATESTRING
+list tax_datestring (tt[L=3], tt, 5)
+ **ERROR: invalid command: string/numeric data type mix-up. Argument 2 : TAX_DATESTRING
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Error in bounds "TAX_BB_PTSPAC_bnds" or bounds do not enclose point on axis TAX_BB_PTSPAC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_EVEN_NOENC_bnds" or bounds do not enclose point on axis TAX_BB_EVEN_NOENC
+ *** NOTE: Substituting coordinate midpoints
+ *** NOTE: Error in bounds "TAX_BB_IRR_bnds" or bounds do not enclose point on axis TAX_BB_IRR
+ *** NOTE: Substituting coordinate midpoints
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: command syntax: must be a constant COS(1)
+list {cos(1), sin(0)}
+ **ERROR: command syntax: must be a constant 0-180
+list {0-180, 180}
+ **ERROR: command syntax: must be a constant 1./5.
+list {0.1, 0.2, 1./5.}
+ **ERROR: command syntax: must be a constant 5*3+1
+list {5*3+1, 2+3}
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file tval.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file out.xml
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+Replacing definition of axis XAXIS
+ **ERROR: request exceeds memory setting: 2369 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+Replacing definition of axis LONGTIME
+ **ERROR: request exceeds memory setting: 4735 Mwords were requested.
+load bigvar
+ *** NOTE: You can use SET MEMORY/SIZE=xxx to increase memory.
+ *** NOTE: The "Memory use" section of the FERRET Users Guide has further tips.
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ *** NOTE: Ambiguous coordinates on X axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ *** NOTE: Ambiguous coordinates on Y axis: TEMP[X=@AVE,Y=@AVE,L=1,D=1] + SST[X=@AVE,Y=@AVE,T=@AVE,D=2]
+ LISTing to file aa.nc
+ LISTing to file bb.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: A
+list a
+ **ERROR: variable unknown or not in data set: B
+list b
+ **ERROR: variable unknown or not in data set: A
+shade a
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ LISTing to file a.nc
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+ PERMANENT data cleared from memory
+ TEMPORARY data cleared from memory
+*** Running test: bn_append_dsg.jnl
+ Cached data cleared from memory
+rm: cannot remove `test_save_dsg.nc': No such file or directory
+*** Running test: bn_global_atts.jnl
+ Cached data cleared from memory
+ LISTing to file anew_global.nc
+*** Running test: bn_conventions_history.jnl
+ Cached data cleared from memory
+ LISTing to file conventions_history.nc
+*** Running test: bn_center_key_labels.jnl
+ Cached data cleared from memory
+*** Running test: bn_wgt_transform.jnl
+ Cached data cleared from memory
+*** Running test: bn_show_outfile.jnl
+ Cached data cleared from memory
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVX
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ *** NOTE: Exclude variable from aggregate. Does not appear in all member datasets: FVZ
+ **ERROR: unknown defining grid: G=NOEXIST
+list b
+ **ERROR: command syntax: 45S
+list c
+ **ERROR: command syntax: ,
+list d
+ **ERROR: command syntax: P=1
+list e
+ **ERROR: illegal limits: X axis limits don't match variable def'n: A
+ Are you giving explicit limits when SET REGION would suffice ?
+list f
+*** Running test: bn_date1900_array.jnl
+ Cached data cleared from memory
+*** Running test: bn_spawn_size.jnl
+ Cached data cleared from memory
+*** Running test: bn_polygon_log.jnl
+ Cached data cleared from memory
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.850
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+ **ERROR: value out of legal range: X coordinates on log axis negative or too small : -0.689E-02
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
*** Running test: bn_all_ef.jnl
Cached data cleared from memory
PERMANENT data cleared from memory
@@ -3543,4 +3712,4 @@ LOAD/TEMPORARY vflag
Cached data cleared from memory
*** NOTE: the use of "SET MODE METAFILE" is deprecated;
*** NOTE: instead use "FRAME /FILE=... /FORMAT=..."
-Ended at Mon Mar 31 17:30:10 PDT 2014
+Ended at Wed Nov 5 16:42:11 PST 2014
diff --git a/bench/test_results/pyferret_run_tests_log b/bench/test_results/pyferret_run_tests_log
index 3cb29ca..8a7e0f3 100644
--- a/bench/test_results/pyferret_run_tests_log
+++ b/bench/test_results/pyferret_run_tests_log
@@ -1,5 +1,5 @@
Using FERRET /home/users/ksmith/PyFerret/bin/pyferret
-lrwxrwxrwx 1 ksmith tmap 11 Mar 31 17:25 /home/users/ksmith/PyFerret/bin/pyferret -> pyferret.sh
+lrwxrwxrwx 1 ksmith tmap 11 Nov 5 16:36 /home/users/ksmith/PyFerret/bin/pyferret -> pyferret.sh
Using external functions from /home/users/ksmith/PyFerret/ext_func/libs
Benchmark run by ksmith
Note: RUN_TESTS.sh test results for debug build of PyFerret on RHEL5-64
@@ -216,6 +216,16 @@ Benchmark scripts that will be run:
bn_enter_exit_GO.jnl
bn_stddev.jnl
bn_set_axis_name.jnl
+ bn691_bug_fixes.jnl
+ bn_append_dsg.jnl
+ bn_global_atts.jnl
+ bn_conventions_history.jnl
+ bn_center_key_labels.jnl
+ bn_wgt_transform.jnl
+ bn_show_outfile.jnl
+ bn_date1900_array.jnl
+ bn_spawn_size.jnl
+ bn_polygon_log.jnl
bn_all_ef.jnl
bn_startupfile.jnl
****** Restricting Ferret paths to bench directory ******
@@ -232,7 +242,7 @@ FER_GRIDS=.
FER_LIBS=/home/users/ksmith/PyFerret/lib
FER_PALETTE=. /home/users/ksmith/PyFerret/ppl
FER_WEB_BROWSER=firefox
-Beginning at Mon Mar 31 17:26:16 PDT 2014
+Beginning at Wed Nov 5 16:37:14 PST 2014
*** Running test: bn_syntax.jnl
! bn401_syntax.JNL
! - test syntax interpretation of Program FERRET
@@ -374,9 +384,9 @@ SHOW DATA/FULL
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ V1 V1 1:2 ... ... ... ... ...
+ on grid (G008) with -1.E+34 for missing data
+ X=-0.5:1.5
/FORMAT = FREE
/SKIP = 0
@@ -386,7 +396,7 @@ SHOW DATA
currently SET data sets:
1> ./snoopy.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:2 ... ... ... ... ...
SET MODE IGNORE_ERROR
SET DATA/EZ/VAR="P,Q" 1
@@ -642,7 +652,7 @@ show mode journal
JOURNAL SET newjournal.jnl
set mode journal ferret.jnl
ppl list plot
- WIDTH= 10.50 HEIGHT= 8.50 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= ferret.png [...]
@@ -654,7 +664,7 @@ ppl list plot
ppl listsym
cancel mode ppllist
ppl list plot
- WIDTH= 10.50 HEIGHT= 8.50 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= ferret.png [...]
@@ -712,6 +722,8 @@ can mode metafile
! SET - SHOW - CANCEL EXPRESSION
SHOW EXPRESSION
+ current output expression(s):
+ X[GX=1:0:1]
CANCEL EXPRESSION
SHOW EXPRESSION
SET EXPRESSION i+5,i-j
@@ -910,19 +922,19 @@ SHOW VARIABLES
! SHOW MEMORY , LOAD
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/TEMPORARY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded without /PERMANENT:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
105 /125W 50 /1.7N 1 /10 5 /13-SEP-1982 ... / ... ... / ...
SHOW MEMORY/PERMANENT
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
data loaded with /PERMANENT:
SHOW MEMORY/ALL
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
all data in memory:
SALT[D=gt4d011] X mr:3 blk1:1 nblk:1
101 /130W 50 /1.3N 1 /0 5 /07-SEP-1982 ... / ... ... / ...
@@ -932,9 +944,9 @@ all data in memory:
LET A=i
LOAD/PERM/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -948,9 +960,9 @@ SHOW MEMORY/FREE
number of blocks used /PERM: 1
LOAD/TEMPORARY/I=1:5 A
SHOW MEMORY
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
SHOW MEMORY/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -1512,8 +1524,8 @@ let x1 = 0.012954
let x2 = 7.5E-09
let x3 = .1
say >>`x1`<< --- >>`x2`<< --- >>`x3`<<
- !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09 << --- >>0.1<<
->>0.012954<< --- >>7.5E-09 << --- >>0.1<<
+ !-> MESSAGE/CONTINUE >>0.012954<< --- >>7.5E-09<< --- >>0.1<<
+>>0.012954<< --- >>7.5E-09<< --- >>0.1<<
! must recognize "/" inside immediate mode exprn
list/I=`6/2` i
@@ -1850,8 +1862,8 @@ show data
2> ./snoopy.dat (default)
name title I J K L M N
- T4 test4 1:20480 ... ... ... ... ...
- T3 test3 1:20480 ... ... ... ... ...
+ T4 test4 1:2 ... ... ... ... ...
+ T3 test3 1:2 ... ... ... ... ...
show data/full 1
currently SET data sets:
@@ -9690,9 +9702,9 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ V1 V1 1:5 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9720,12 +9732,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:5 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:5.5
+ X2 X2 1:5 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:5.5
/FORMAT = FREE
/SKIP = 0
@@ -9756,12 +9768,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 0
@@ -9800,12 +9812,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9838,12 +9850,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = FREE
/SKIP = 2
@@ -9873,12 +9885,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0))
/SKIP = 2
@@ -9911,12 +9923,12 @@ SHOW DATA/FULL
1> ./EZ.DAT (default)
name title I J K L M N
- X1 X1 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- X2 X2 1:20480 ... ... ... ... ...
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ X1 X1 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
+ X2 X2 1:15 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:15.5
/FORMAT = (3(F14.0,F7.0)/)
/SKIP = 1
@@ -10148,7 +10160,7 @@ set mode/last ignore
! notice the default window size is 10.2,width x 8.8,height
ppl list plot
- WIDTH= 10.50 HEIGHT= 8.50 TKTYPE= 4010 BAUD= 110
+ WIDTH= 10.20 HEIGHT= 8.80 TKTYPE= 0 BAUD= 110
WINDOW= ON BOX= OFF CROSS= 0 PLTYPE= 3
PLOT MODE= A
PLOT FILE= ferret.png [...]
@@ -10248,7 +10260,7 @@ plot/i=1:10/ylimits=1:40/nolabel i ! note that /nolabel supresses XLAB
plot/i=1:10/over/sym=2 i^1.1
plot/i=1:10/over/sym=2/size=.12 i^1.2
plot/i=1:10/over/sym=2/color=red i^1.3
-plot/i=1:10/over/thick/step i^1.4
+plot/i=1:10/over/thick/step/color=light_blue i^1.4
plot/i=1:10/over/thick/color=blue/step=connected i^1.5
plot/i=1:10/over/thick=3/color=purple/size=.14 i^1.6
@@ -10358,42 +10370,42 @@ go mp_hammer
set grid sst
shade/nolab/nokey/noaxes sst, x_page, y_page
label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Hammer
- !-> PPL %LABEL/nouser 2.5255,-0.4,0,0,.20 Hammer
+ !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Hammer
set view tm
go mp_sinusoidal
go margins .2, .6, .2, .2
shade/nolab/nokey/noaxes sst, x_page, y_page
label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Sinusoidal
- !-> PPL %LABEL/nouser 2.5255,-0.4,0,0,.20 Sinusoidal
+ !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Sinusoidal
set view tr
go mp_lambert_cyl
go margins .2, .6, .2, .2
shade/nolab/nokey/noaxes sst, x_page, y_page
label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Lambert Equal Area
- !-> PPL %LABEL/nouser 2.5255,-0.4,0,0,.20 Lambert Equal Area
+ !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Lambert Equal Area
set view ml
go mp_bonne
go margins .2, .6, .2, .2
shade/nolab/nokey/noaxes sst, x_page, y_page
label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Bonne
- !-> PPL %LABEL/nouser 2.5255,-0.4,0,0,.20 Bonne
+ !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Bonne
set view mm
go mp_mcbryde_fpp
go margins .2, .6, .2, .2
shade/nolab/nokey/noaxes sst, x_page, y_page
label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 McBryde Flat Polar
- !-> PPL %LABEL/nouser 2.5255,-0.4,0,0,.20 McBryde Flat Polar
+ !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 McBryde Flat Polar
set view mr
go mp_polyconic
go margins .2, .6, .2, .2
shade/nolab/nokey/noaxes sst, x_page, y_page
label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Polyconic
- !-> PPL %LABEL/nouser 2.5255,-0.4,0,0,.20 Polyconic
+ !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Polyconic
set view bl
go mp_orthographic 300 45
@@ -10401,7 +10413,7 @@ go margins .2, .6, .2, .2
let masked_sst = sst * mp_mask
shade/nolab/nokey/noaxes masked_sst, x_page, y_page
label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 OrthoGraphic
- !-> PPL %LABEL/nouser 2.5255,-0.4,0,0,.20 OrthoGraphic
+ !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 OrthoGraphic
set view bm
set region/x=240:420
@@ -10409,7 +10421,7 @@ go mp_stereographic_eq
go margins .2, .6, .2, .2
shade/nolab/nokey/noaxes sst, x_page, y_page
label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Stereographic Equatorial
- !-> PPL %LABEL/nouser 2.5255,-0.4,0,0,.20 Stereographic Equatorial
+ !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Stereographic Equatorial
set view br
set region/x=0:360/y=00:90
@@ -10417,7 +10429,7 @@ go mp_stereographic_north
go margins .2, .6, .2, .2
shade/nolab/nokey/noaxes sst, x_page, y_page
label/nouser `($PPL$XLEN)*0.5`,-0.4,0,0,.20 Stereographic North
- !-> PPL %LABEL/nouser 2.5255,-0.4,0,0,.20 Stereographic North
+ !-> PPL %LABEL/nouser 2.5335,-0.4,0,0,.20 Stereographic North
can region
cancel viewport
@@ -10483,18 +10495,18 @@ show symbols/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.9"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.18-398.el5"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "17:26"
-SESSION_PID = "24491"
-DELTA_CPU = "0.527919"
-CLOCK_SECS = "0.309"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "17:26:35"
+SESSION_DATE = " 5-Nov-14"
+SESSION_TIME = "16:37"
+SESSION_PID = "13035"
+DELTA_CPU = "0.547915"
+CLOCK_SECS = "0.381"
+CURRENT_DATE = " 5-Nov-14"
+CURRENT_TIME = "16:37:40"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "PyFerret"
@@ -10512,18 +10524,18 @@ show symbol/all
PPL$XPIXEL = "0"
PPL$YPIXEL = "0"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.9"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.18-398.el5"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "17:26"
-SESSION_PID = "24491"
-DELTA_CPU = "0.001999"
-CLOCK_SECS = "0.311"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "17:26:35"
+SESSION_DATE = " 5-Nov-14"
+SESSION_TIME = "16:37"
+SESSION_PID = "13035"
+DELTA_CPU = "0.001"
+CLOCK_SECS = "0.383"
+CURRENT_DATE = " 5-Nov-14"
+CURRENT_TIME = "16:37:40"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "PyFerret"
S1 = "hello"
@@ -10533,9 +10545,9 @@ NUM = "3"
T$DOLLAR = "hi"
T_HELLO = "hi"
show symbol s*
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "17:26"
-SESSION_PID = "24491"
+SESSION_DATE = " 5-Nov-14"
+SESSION_TIME = "16:37"
+SESSION_PID = "13035"
S1 = "hello"
S2 = ""hello""
S3 = "hello and goodbye"
@@ -10545,15 +10557,15 @@ S2 = ""hello""
! exercise CANCEL SYMBOL
cancel symbol s2
show symbol s*
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "17:26"
-SESSION_PID = "24491"
+SESSION_DATE = " 5-Nov-14"
+SESSION_TIME = "16:37"
+SESSION_PID = "13035"
S1 = "hello"
S3 = "hello and goodbye"
show symbol S*
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "17:26"
-SESSION_PID = "24491"
+SESSION_DATE = " 5-Nov-14"
+SESSION_TIME = "16:37"
+SESSION_PID = "13035"
S1 = "hello"
S3 = "hello and goodbye"
cancel symbol s2 ! already deleted
@@ -10678,21 +10690,21 @@ say ($delayed_eval) ! translate symbol and then evaluate
! cleanup
cancel symbols/all
show symbols/all
-PPL$XPIXEL = "1008"
-PPL$YPIXEL = "816"
+PPL$XPIXEL = "979"
+PPL$YPIXEL = "844"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.9"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.18-398.el5"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
FERRET_MEMORY = "25.6"
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "17:26"
-SESSION_PID = "24491"
-DELTA_CPU = "0.022997"
-CLOCK_SECS = "0.333"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "17:26:35"
+SESSION_DATE = " 5-Nov-14"
+SESSION_TIME = "16:37"
+SESSION_PID = "13035"
+DELTA_CPU = "0.026997"
+CLOCK_SECS = "0.41"
+CURRENT_DATE = " 5-Nov-14"
+CURRENT_TIME = "16:37:41"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "PyFerret"
@@ -25230,7 +25242,7 @@ GO err491_spawn_quotes.jnl
! this should be a valid command
SPAWN "date"
-Mon Mar 31 17:26:52 PDT 2014
+Wed Nov 5 16:38:03 PST 2014
GO bn_reset
cancel mode verify
@@ -25352,7 +25364,7 @@ list SAMPLEI(sst[l=1:3,y=-2:2],{30,40,50})
1N / 46: 29.14 28.92 28.33
1S / 45: 28.90 28.82 28.54
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -26143,7 +26155,7 @@ list a ! <-- CACHE HIT FAILS!!!
set mode/last diagnostic
SHOW MEM/FREE
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 12800
@@ -33412,6 +33424,10 @@ SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
XPTS: X values of sample points
YPTS: Y values of sample points
TPTS: T values of sample points
+SAMPLE_FAST_I(V,Indices)
+ Fast 1D sample variable using set of indices
+ V: Variable to sample
+ Indices: List of indices at which to sample
go bench_sorti.jnl
@@ -35076,35 +35092,37 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.38E+00 AUTO LABELLING
+ XORG= 1.20E+00 AUTO LABELLING
ppl list yaxis
YAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 4.74E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.38E+00 AUTO LABELLING
+ YORG= 1.40E+00 AUTO LABELLING
! guidelines showing origin, axlen, white space
def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
set view mid2
ppl origin 0,0
define symbol xaxl `($PPL$WIDTH)/2`
- !-> define symbol xaxl 4.7235
+ !-> define symbol xaxl 4.737
define symbol yaxl `($PPL$HEIGHT)/2`
- !-> define symbol yaxl 4.7235
-ppl axlen `1.375 + ($xaxl) + 1.375`,`1.375 + ($yaxl) + 1.375`
- !-> ppl axlen 7.4735,7.4735
-plot/vs/hlim=-1.375:`($xaxl)+1.375`:0.25/vlim=-1.375:`($yaxl)+1.375`:0.25/nolab/nolab {0,($xaxl)}, {0,($yaxl)}
- !-> plot/vs/hlim=-1.375:6.0985:0.25/vlim=-1.375:6.0985:0.25/nolab/nolab {0,4.7235}, {0,4.7235}
+ !-> define symbol yaxl 4.737
+ppl axlen `1.2 + ($xaxl) + 1.0`,`1.4 + ($yaxl) + 1.4`
+ !-> ppl axlen 6.937,7.537
+plot/vs/hlim=-1.2:`($xaxl)+1.0`:0.2/vlim=-1.4:`($yaxl)+1.4`:0.2/nolab/nolab {0,($xaxl)}, {0,($yaxl)}
+ !-> plot/vs/hlim=-1.2:5.737:0.2/vlim=-1.4:6.137:0.2/nolab/nolab {0,4.737}, {0,4.737}
+
+! pause
+set window/clear
! again with scale determined automatically
! make guide lines
-set window/clear
set view allax
plot/vs/line/hlim=0:1/vlim=0:1/nolab {0.5,0.5,,0,1},{0,1,,0.5,0.5}
plot/vs/line/over/nolab {0.25,0.25,,0,1},{0,1,,0.25,0.25}
@@ -35120,38 +35138,39 @@ show view mid
name text xlimits ylimits mode
- MID 0.75 0.25,0.75 0.25,0.75 axes
+ MID 0.72 0.25,0.75 0.25,0.75 axes
current viewport is MID
ppl list xaxis
XAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.45E+00 CSIZE= 1.00E-01
+ LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.38E+00 AUTO LABELLING
+ XORG= 1.20E+00 AUTO LABELLING
ppl list yaxis
YAXIS QUALITIES
- LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.45E+00 CSIZE= 1.00E-01
+ LO=-1.00E+00 HI= 1.00E+00 TIC= 2.00E-01 LEN= 5.57E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.38E+00 AUTO LABELLING
+ YORG= 1.40E+00 AUTO LABELLING
! guidelines showing origin, axlen, white space
def view /xlim=0.25:0.75/ylim=0.25:0.75/text=1/axes mid2
set view mid2
ppl origin 0,0
define symbol xaxl `($PPL$WIDTH)/2`
- !-> define symbol xaxl 4.7235
+ !-> define symbol xaxl 4.737
define symbol yaxl `($PPL$HEIGHT)/2`
- !-> define symbol yaxl 4.7235
-ppl axlen `1.375 + ($xaxl) + 1.375`,`1.375 + ($yaxl) + 1.375`
- !-> ppl axlen 7.4735,7.4735
-plot/vs/hlim=-1.375:`($xaxl)+1.375`:0.25/vlim=-1.375:`($yaxl)+1.375`:0.25/nolab/line {0,($xaxl)}, {0,($yaxl)}
- !-> plot/vs/hlim=-1.375:6.0985:0.25/vlim=-1.375:6.0985:0.25/nolab/line {0,4.7235}, {0,4.7235}
+ !-> define symbol yaxl 4.737
+ppl axlen `1.2 + ($xaxl) + 1.0`,`1.4 + ($yaxl) + 1.4`
+ !-> ppl axlen 6.937,7.537
+plot/vs/hlim=-1.2:`($xaxl)+1.0`:0.2/vlim=-1.4:`($yaxl)+1.4`:0.2/nolab/line {0,($xaxl)}, {0,($yaxl)}
+ !-> plot/vs/hlim=-1.2:5.737:0.2/vlim=-1.4:6.137:0.2/nolab/line {0,4.737}, {0,4.737}
+! pause
set wind/clear
! a full window plot
@@ -35161,9 +35180,10 @@ show view mid
name text xlimits ylimits mode
- MID 0.75 0.25,0.75 0.25,0.75 axes
+ MID 0.72 0.25,0.75 0.25,0.75 axes
current viewport is ALLAX
+! pause
set wind/clear
def view/axes/xlim=0:0.5/ylim=0:0.5/text=1 llax
@@ -35173,7 +35193,7 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
XORG= 0.00E+00 AUTO LABELLING
@@ -35181,7 +35201,7 @@ ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 0.00E+00 AUTO LABELLING
@@ -35193,7 +35213,7 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
XORG= 0.00E+00 AUTO LABELLING
@@ -35201,10 +35221,10 @@ ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.38E+00 AUTO LABELLING
+ YORG= 1.40E+00 AUTO LABELLING
def view/axes/xlim=0.5:1/ylim=0:0.5/text=1 ulax
set view ulax
@@ -35213,15 +35233,15 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.38E+00 AUTO LABELLING
+ XORG= 1.20E+00 AUTO LABELLING
ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 0.00E+00 AUTO LABELLING
@@ -35233,28 +35253,29 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.38E+00 AUTO LABELLING
+ XORG= 1.20E+00 AUTO LABELLING
ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.72E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 4.74E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.38E+00 AUTO LABELLING
+ YORG= 1.40E+00 AUTO LABELLING
-! again with viewport scaling determined automatically
+! pause
set wind/clear
+! again with viewport scaling determined automatically
def view/axes/xlim=0:0.5/ylim=0:0.5 llax
show view llax
name text xlimits ylimits mode
- LLAX 0.61 0.00,0.50 0.00,0.50 axes
+ LLAX 0.60 0.00,0.50 0.00,0.50 axes
current viewport is URAX
set view llax
PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
@@ -35262,7 +35283,7 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.03E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
XORG= 0.00E+00 AUTO LABELLING
@@ -35270,7 +35291,7 @@ ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.03E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 0.00E+00 AUTO LABELLING
@@ -35280,7 +35301,7 @@ show view lrax
name text xlimits ylimits mode
- LRAX 0.61 0.00,0.50 0.50,1.00 axes
+ LRAX 0.60 0.00,0.50 0.50,1.00 axes
current viewport is LLAX
set view lrax
PLOT/VS/LINE/I=1:314/nolab i*cos(i/20),i*sin(i/20)
@@ -35288,7 +35309,7 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.03E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
XORG= 0.00E+00 AUTO LABELLING
@@ -35296,10 +35317,10 @@ ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.03E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.13E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.38E+00 AUTO LABELLING
+ YORG= 1.40E+00 AUTO LABELLING
def view/axes/xlim=0.5:1/ylim=0:0.5 ulax
show view ulax
@@ -35314,15 +35335,15 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.03E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.38E+00 AUTO LABELLING
+ XORG= 1.20E+00 AUTO LABELLING
ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.03E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
YORG= 0.00E+00 AUTO LABELLING
@@ -35340,20 +35361,22 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.03E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.38E+00 AUTO LABELLING
+ XORG= 1.20E+00 AUTO LABELLING
ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.03E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.08E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.38E+00 AUTO LABELLING
+ YORG= 1.40E+00 AUTO LABELLING
+! pause
cancel view
+
go ptest
! Description: create a simple test line plot
@@ -35364,18 +35387,18 @@ ppl list xaxis
XAXIS QUALITIES
- LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 6.70E+00 CSIZE= 1.00E-01
+ LO=-3.14E+02 HI= 2.52E+02 TIC= 5.00E+01 LEN= 7.27E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.38E+00 AUTO LABELLING
+ XORG= 1.20E+00 AUTO LABELLING
ppl list yaxis
YAXIS QUALITIES
- LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.70E+00 CSIZE= 1.00E-01
+ LO=-2.50E+02 HI= 3.00E+02 TIC= 5.00E+01 LEN= 6.67E+00 CSIZE= 1.00E-01
LEFT AXIS= ON RIGHT AXIS= ON
AUTO NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- YORG= 1.38E+00 AUTO LABELLING
+ YORG= 1.40E+00 AUTO LABELLING
*** Running test: bn_strings.jnl
! bn_strings.jnl
@@ -36087,56 +36110,56 @@ show data/var
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V2 V2 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V3 V3 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V4 V4 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V5 V5 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V5 V5 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V6 V6 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V7 V7 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V8 V8 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V9 V9 1:7 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
+ V10 V10 1:7 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ on grid (G001) with -1.E+34 for missing data
+ X=0.5:7.5
/DELIMITERS="\t,\,"
list v1,v2,v3,v4,v5,v6,v7,v8,v9,v10
@@ -36235,11 +36258,11 @@ show data
currently SET data sets:
1> ./bn_delimited_read_1.dat (default)
name title I J K L M N
- A1 A1 1:20480 ... ... ... ... ...
- A2 A2 1:20480 ... ... ... ... ...
- A3 A3 1:20480 ... ... ... ... ...
- A4 A4 1:20480 ... ... ... ... ...
- A5 A5 1:20480 ... ... ... ... ...
+ A1 A1 1:7 ... ... ... ... ...
+ A2 A2 1:7 ... ... ... ... ...
+ A3 A3 1:7 ... ... ... ... ...
+ A4 A4 1:7 ... ... ... ... ...
+ A5 A5 1:7 ... ... ... ... ...
list a1,a2,a3,a4,a5
DATA SET: ./bn_delimited_read_1.dat
@@ -36347,18 +36370,18 @@ show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
file/form=delimited/delimiter=" " bn_delimited_read_2.dat
show data
currently SET data sets:
1> ./bn_delimited_read_2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:3 ... ... ... ... ...
(Julian days since 1-Jan-1900)
- V2 V2 1:20480 ... ... ... ... ...
+ V2 V2 1:3 ... ... ... ... ...
(Time of day)
- V3 V3 1:20480 ... ... ... ... ...
+ V3 V3 1:3 ... ... ... ... ...
(all values missing)
list v1,v2
@@ -36659,367 +36682,367 @@ show data/full
1> ./bn_delimited_read_CO2.dat (default)
name title I J K L M N
- V1 V1 1:20480 ... ... ... ... ...
+ V1 V1 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V2 V2 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V2 V2 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V3 V3 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V3 V3 1:20 ... ... ... ... ...
Data type = TEXT
Conversion /TYPE=TEXT
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V4 V4 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V4 V4 1:20 ... ... ... ... ...
(Julian days since 1-Jan-1900)
Data type = NUMERIC
Conversion /TYPE=DATE
- days on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V5 V5 1:20480 ... ... ... ... ...
+ days on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V5 V5 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V6 V6 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V6 V6 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V7 V7 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V7 V7 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V8 V8 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V8 V8 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V9 V9 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V9 V9 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V10 V10 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V10 V10 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V11 V11 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V11 V11 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V12 V12 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V12 V12 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V13 V13 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V13 V13 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V14 V14 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V14 V14 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V15 V15 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V15 V15 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V16 V16 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V16 V16 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V17 V17 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V17 V17 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V18 V18 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V18 V18 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V19 V19 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V19 V19 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V20 V20 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V20 V20 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V21 V21 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V21 V21 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V22 V22 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V22 V22 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V23 V23 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V23 V23 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V24 V24 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V24 V24 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V25 V25 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V25 V25 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V26 V26 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V26 V26 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V27 V27 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V27 V27 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V28 V28 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V28 V28 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V29 V29 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V29 V29 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V30 V30 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V30 V30 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V31 V31 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V31 V31 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V32 V32 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V32 V32 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V33 V33 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V33 V33 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V34 V34 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V34 V34 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V35 V35 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V35 V35 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V36 V36 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V36 V36 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V37 V37 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V37 V37 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V38 V38 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V38 V38 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V39 V39 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V39 V39 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V40 V40 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V40 V40 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V41 V41 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V41 V41 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V42 V42 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V42 V42 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V43 V43 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V43 V43 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V44 V44 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V44 V44 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V45 V45 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V45 V45 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V46 V46 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V46 V46 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V47 V47 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V47 V47 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V48 V48 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V48 V48 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V49 V49 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V49 V49 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V50 V50 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V50 V50 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V51 V51 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V51 V51 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V52 V52 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V52 V52 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V53 V53 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V53 V53 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V54 V54 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V54 V54 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V55 V55 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V55 V55 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V56 V56 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V56 V56 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V57 V57 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V57 V57 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V58 V58 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V58 V58 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V59 V59 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V59 V59 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V60 V60 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V60 V60 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V61 V61 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V61 V61 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V62 V62 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V62 V62 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V63 V63 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V63 V63 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V64 V64 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V64 V64 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V65 V65 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V65 V65 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V66 V66 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V66 V66 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V67 V67 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V67 V67 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V68 V68 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V68 V68 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V69 V69 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V69 V69 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V70 V70 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V70 V70 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V71 V71 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V71 V71 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
- V72 V72 1:20480 ... ... ... ... ...
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
+ V72 V72 1:20 ... ... ... ... ...
Data type = NUMERIC
Conversion /TYPE=NUMERIC
- on grid EZ with -1.E+34 for missing data
- X=0.5:20480.5
+ on grid (G002) with -1.E+34 for missing data
+ X=0.5:20.5
/DELIMITERS="\t,\,"
/FORMAT = DELIMITED
@@ -37559,7 +37582,7 @@ set mode stupid
set mode diag
set mem/size=0.05
show mem/free
- Current size of FERRET memory cache: 0.2 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 0.2 MegaWords (1 word = 8 bytes)
total memory table slots: 500
total memory blocks: 2000
memory block size: 100
@@ -40371,7 +40394,7 @@ ppl plot
set view lower
ppl axlen `($ppl$xlen)-1`
- !-> ppl axlen 6.75
+ !-> ppl axlen 7
plot/i=1:100/axes=1,0,0,1/set/title="shortened the x axis to make space" i*cos(i/8)
ppl xlab "a multi line x label<NL>here is line two<NL>here is line three<NL>here is line four"
@@ -41038,12 +41061,12 @@ set region/x=130:290/y=-45:45
shade/title="shift shakey left and up"/set temp[l=1]
let x1 = `($ppl$xorg)+($ppl$xlen)`
- !-> DEFINE VARIABLE x1 = 9.125
+ !-> DEFINE VARIABLE x1 = 9.2
let y1 = `($ppl$yorg)+.4`
- !-> DEFINE VARIABLE y1 = 1.775
+ !-> DEFINE VARIABLE y1 = 1.8
ppl shakey ,,.12,,,,`x1`,,`y1`
- !-> ppl shakey ,,.12,,,,9.125,,1.775
+ !-> ppl shakey ,,.12,,,,9.2,,1.8
ppl shade
ppl list shakey
@@ -41052,17 +41075,17 @@ ppl list shakey
X LO X HI Y LO Y HI
- 9.13 9.52 1.77 7.53
+ 9.20 9.49 1.80 7.80
shade/title="set only x2,y2"/set temp[l=1]
let x2 = `($ppl$xorg)+($ppl$xlen)`
- !-> DEFINE VARIABLE x2 = 9.125
+ !-> DEFINE VARIABLE x2 = 9.2
let y2 = `($ppl$yorg)+($ppl$ylen) - .4`
- !-> DEFINE VARIABLE y2 = 6.725
+ !-> DEFINE VARIABLE y2 = 7
ppl shakey ,,.12,,,,,`x2`,,`y2`
- !-> ppl shakey ,,.12,,,,,9.125,,6.725
+ !-> ppl shakey ,,.12,,,,,9.2,,7
ppl shade
ppl list shakey
@@ -41071,7 +41094,7 @@ ppl list shakey
X LO X HI Y LO Y HI
- 8.73 9.13 0.98 6.72
+ 8.91 9.20 1.00 7.00
! resetting location of horizontal shade keys
@@ -41079,14 +41102,14 @@ ppl list shakey
shade/title="shakey labels above it"/set temp[l=1]
let x1 = `($ppl$xorg)+0.1`
- !-> DEFINE VARIABLE x1 = 1.475
+ !-> DEFINE VARIABLE x1 = 1.3
let y1 = `($ppl$yorg)+($ppl$ylen)+0.1`
- !-> DEFINE VARIABLE y1 = 7.225
+ !-> DEFINE VARIABLE y1 = 7.5
let y2 = `($ppl$yorg)+($ppl$ylen)+0.5`
- !-> DEFINE VARIABLE y2 = 7.625
+ !-> DEFINE VARIABLE y2 = 7.9
ppl shakey ,0,-.12,2,,,`x1`,,`y1`,`y2`
- !-> ppl shakey ,0,-.12,2,,,1.475,,7.225,7.625
+ !-> ppl shakey ,0,-.12,2,,,1.3,,7.5,7.9
go unlabel 4
go unlabel 5
ppl shade
@@ -41097,18 +41120,18 @@ ppl list shakey
X LO X HI Y LO Y HI
- 1.48 9.23 7.22 7.63
+ 1.30 9.30 7.50 7.90
let x1 = `($ppl$xorg)+1`
- !-> DEFINE VARIABLE x1 = 2.375
+ !-> DEFINE VARIABLE x1 = 2.2
let x2 = `($ppl$xorg)+($ppl$xlen)-1`
- !-> DEFINE VARIABLE x2 = 8.125
+ !-> DEFINE VARIABLE x2 = 8.2
let y1 = `($ppl$yorg)`
- !-> DEFINE VARIABLE y1 = 1.375
+ !-> DEFINE VARIABLE y1 = 1.4
shade/title="shorter, at bottom"/set temp[l=1]
ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
- !-> ppl shakey ,0,-.12,3,,,2.375,8.125,1.375
+ !-> ppl shakey ,0,-.12,3,,,2.2,8.2,1.4
ppl shade
ppl list shakey
@@ -41117,17 +41140,17 @@ ppl list shakey
X LO X HI Y LO Y HI
- 2.38 8.13 1.38 1.46
+ 2.20 8.20 1.40 1.49
shade/title="on left, labelled on left"/set temp[l=1]
ppl axlabp, 1,1
let x1 = `($ppl$xorg)` - .5
- !-> DEFINE VARIABLE x1 = 1.375 - .5
+ !-> DEFINE VARIABLE x1 = 1.2 - .5
let x2 = `($ppl$xorg)` - 0.1
- !-> DEFINE VARIABLE x2 = 1.375 - 0.1
+ !-> DEFINE VARIABLE x2 = 1.2 - 0.1
ppl shakey ,1,-.1,2,,,`x1`,`x2`
- !-> ppl shakey ,1,-.1,2,,,0.875,1.275
+ !-> ppl shakey ,1,-.1,2,,,0.7,1.1
ppl shade
ppl axlabp, -1, -1
@@ -41135,10 +41158,10 @@ ppl axlabp, -1, -1
set view upper
ppl window off
let y1 = -1* `($ppl$yorg)`
- !-> DEFINE VARIABLE y1 = -1* 1.375
+ !-> DEFINE VARIABLE y1 = -1* 1.4
shade/title="In viewport, shakey located anywhere on page"/set temp[l=1]
ppl shakey ,0,-.1,2,,,,,`y1`
- !-> ppl shakey ,0,-.1,2,,,,,-1.375
+ !-> ppl shakey ,0,-.1,2,,,,,-1.4
ppl shade
ppl list shakey
@@ -41147,7 +41170,7 @@ ppl list shakey
X LO X HI Y LO Y HI
- 1.38 9.13 -1.38 -1.29
+ 1.20 9.20 -1.40 -1.31
*** Running test: bn_eof_4d.jnl
! bn_eof_4d.jnl
! test EOFs on XYZT grids
@@ -44739,7 +44762,7 @@ ppl list shakey
DEFAULT KEY POSITIONING
X LO X HI Y LO Y HI
- 9.40 9.80 1.38 7.13
+ 9.40 9.69 1.40 7.40
fill/lev=c {-1.1,1.1}*ysequence({1,1})
ppl list shakey
@@ -44750,7 +44773,7 @@ ppl list shakey
DEFAULT KEY POSITIONING
X LO X HI Y LO Y HI
- 9.40 9.80 1.38 7.13
+ 9.40 9.69 1.40 7.40
! At lon = 0, we used to have an E; remove this.
@@ -46033,17 +46056,17 @@ set viewport vp_1
fill/set/L=2 sst
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 9.225, 9.525, 1.375, 4.208
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
ppl fill
fill/set/L=2 sst* 10000
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 9.225, 9.525, 1.375, 4.208
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
ppl fill
fill/set/L=2 sst/ 10000
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 9.225, 9.525, 1.375, 4.208
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
ppl fill
!
@@ -46054,17 +46077,17 @@ set viewport vp_1
shade/set/L=2 sst
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 9.225, 9.525, 1.375, 4.208
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
ppl shade
shade/set/L=2 sst* 10000
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 9.225, 9.525, 1.375, 4.208
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
ppl shade
shade/set/L=2 sst/ 10000
ppl shakey 1, 1, 0.1, 0, -2, 8, `($ppl$xorg)+($ppl$xlen)+0.3`, `($ppl$xorg)+($ppl$xlen)+0.6`, `($ppl$yorg)`, `($ppl$yorg)+($ppl$ylen)`
- !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 9.225, 9.525, 1.375, 4.208
+ !-> ppl shakey 1, 1, 0.1, 0, -2, 8, 8.97, 9.27, 1.4, 4.333
ppl shade
@@ -46115,7 +46138,7 @@ list tsulab
! to the end of the shortened second line.
label/nouser 3.6,`($ppl$ylen)+0.2`,0,0,0.08, `tsulab`
- !-> PPL %LABEL/nouser 3.6,5.95,0,0,0.08, 1234567891123456789212345678931234567894123456789512345678961234567897123456789812345678991234567890<nl>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+ !-> PPL %LABEL/nouser 3.6,6.2,0,0,0.08, 1234567891123456789212345678931234567894123456789512345678961234567897123456789812345678991234567890<nl>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
! result of COMPRESSK_BY function does not vary in X
GO bn_reset
@@ -47067,15 +47090,15 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.550E+00 0.120 0 SYSTEM @ASLONGITUDE : 179E
+ LAB 1 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLONGITUDE : 179E
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 2 0.000E+00 6.350E+00 0.120 0 SYSTEM @ASLATITUDE : 1S
+ LAB 2 0.000E+00 6.600E+00 0.120 0 SYSTEM @ASLATITUDE : 1S
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 3 7.750E+00 6.290E+00 0.090 0 SYSTEM @ASDATA SET: coads_climatology
+ LAB 3 8.000E+00 6.550E+00 0.090 0 SYSTEM @ASDATA SET: coads_climatology
LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 4 3.880E+00 6.080E+00 0.120 0 SYSTEM @A
+ 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 7.750E+00 6.500E+00 0.071 0 SYSTEM @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
+ LAB 5 8.000E+00 6.750E+00 0.073 0 SYSTEM @ASOPeNDAP URL: http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/
LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
@@ -47130,7 +47153,7 @@ use coads_climatology
shade/set/lev=(-inf),(4,28,2)(inf) sst[l=1]
ppl shakey,1,0,-0.1,,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,,,,,,7.225
+ !-> ppl shakey,1,0,-0.1,,,,,,7.5
ppl shade
can view
@@ -47165,13 +47188,13 @@ can view
set view upper
fill/x=20e:150e/set/lev=(-inf),(4,28,0.5)(inf)/y=0:90 sst[l=1]
ppl shakey,1,0,-0.1,10,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,10,,,,,2.975
+ !-> ppl shakey,1,0,-0.1,10,,,,,3.1
ppl fill
set view lower
shade/set/lev=(-inf),(4,28,0.5)(inf)/y=0:90/key=cont sst[l=1]
ppl shakey,1,0,-0.1,10,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,10,,,,,2.975
+ !-> ppl shakey,1,0,-0.1,10,,,,,3.1
ppl shade
! Some one-sided examples
@@ -47181,7 +47204,7 @@ fill/lev=(-2,28,1)(inf) sst[l=1]
shade/set/lev=(-inf),(4,30,0.5)/key=cont/pal=rainbow sst[l=1]
ppl shakey,1,0,-0.1,10,,,,,`($ppl$ylen)+($ppl$yorg)+0.1`
- !-> ppl shakey,1,0,-0.1,10,,,,,7.225
+ !-> ppl shakey,1,0,-0.1,10,,,,,7.5
ppl shade
let filler = missing(sst[l=1],-999)
@@ -47572,14 +47595,14 @@ set view ll
shade/key=cont/title="cont key with shakey call"/set temp[l=1]
let/quiet x1 = `($ppl$xorg)+0.1`
- !-> DEFINE VARIABLE/quiet x1 = 1.475
+ !-> DEFINE VARIABLE/quiet x1 = 1.3
let/quiet y1 = `($ppl$yorg)+($ppl$ylen)+0.1`
- !-> DEFINE VARIABLE/quiet y1 = 4.735
+ !-> DEFINE VARIABLE/quiet y1 = 4.923
let/quiet y2 = `($ppl$yorg)+($ppl$ylen)+0.5`
- !-> DEFINE VARIABLE/quiet y2 = 5.135
+ !-> DEFINE VARIABLE/quiet y2 = 5.323
ppl shakey ,0,-.12,2,,,`x1`,,`y1`,`y2`
- !-> ppl shakey ,0,-.12,2,,,1.475,,4.735,5.135
+ !-> ppl shakey ,0,-.12,2,,,1.3,,4.923,5.323
go unlabel 4
go unlabel 5
ppl shade
@@ -47590,18 +47613,18 @@ ppl list shakey
X LO X HI Y LO Y HI
- 1.48 6.15 4.74 5.14
+ 1.30 6.31 4.92 5.32
set view lr
let/quiet x1 = `($ppl$xorg)+1`
- !-> DEFINE VARIABLE/quiet x1 = 2.375
+ !-> DEFINE VARIABLE/quiet x1 = 2.2
let/quiet x2 = `($ppl$xorg)+($ppl$xlen)-1`
- !-> DEFINE VARIABLE/quiet x2 = 5.05
+ !-> DEFINE VARIABLE/quiet x2 = 5.212
let/quiet y1 = `($ppl$yorg)`
- !-> DEFINE VARIABLE/quiet y1 = 1.375
+ !-> DEFINE VARIABLE/quiet y1 = 1.4
shade/title="with shakey, restore default key style"/set temp[l=1]
ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
- !-> ppl shakey ,0,-.12,3,,,2.375,5.05,1.375
+ !-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
ppl shade
can view
@@ -47616,14 +47639,14 @@ set view ll
fill/key=cont/title="cont key with shakey call"/set temp[l=1]
let/quiet x1 = `($ppl$xorg)+0.1`
- !-> DEFINE VARIABLE/quiet x1 = 1.475
+ !-> DEFINE VARIABLE/quiet x1 = 1.3
let/quiet y1 = `($ppl$yorg)+($ppl$ylen)+0.1`
- !-> DEFINE VARIABLE/quiet y1 = 4.735
+ !-> DEFINE VARIABLE/quiet y1 = 4.923
let/quiet y2 = `($ppl$yorg)+($ppl$ylen)+0.5`
- !-> DEFINE VARIABLE/quiet y2 = 5.135
+ !-> DEFINE VARIABLE/quiet y2 = 5.323
ppl shakey ,0,-.12,2,,,`x1`,,`y1`,`y2`
- !-> ppl shakey ,0,-.12,2,,,1.475,,4.735,5.135
+ !-> ppl shakey ,0,-.12,2,,,1.3,,4.923,5.323
go unlabel 4
go unlabel 5
ppl fill
@@ -47634,18 +47657,18 @@ ppl list shakey
X LO X HI Y LO Y HI
- 1.48 6.15 4.74 5.14
+ 1.30 6.31 4.92 5.32
set view lr
let/quiet x1 = `($ppl$xorg)+1`
- !-> DEFINE VARIABLE/quiet x1 = 2.375
+ !-> DEFINE VARIABLE/quiet x1 = 2.2
let/quiet x2 = `($ppl$xorg)+($ppl$xlen)-1`
- !-> DEFINE VARIABLE/quiet x2 = 5.05
+ !-> DEFINE VARIABLE/quiet x2 = 5.212
let/quiet y1 = `($ppl$yorg)`
- !-> DEFINE VARIABLE/quiet y1 = 1.375
+ !-> DEFINE VARIABLE/quiet y1 = 1.4
fill/title="with shakey, restore default key style"/set temp[l=1]
ppl shakey ,0,-.12,3,,,`x1`,`x2`,`y1`
- !-> ppl shakey ,0,-.12,3,,,2.375,5.05,1.375
+ !-> ppl shakey ,0,-.12,3,,,2.2,5.212,1.4
ppl fill
*** Running test: bn581_bug_fixes.jnl
! bn581_bug_fixes.jnl
@@ -48146,11 +48169,11 @@ let the_data_var = {4,5,4}
list/format=comma country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY,ID,AA,BB,NEWCOUNTRY,THE_DATA_VAR
1 / 1:"JP",1,4000,1000500,"w",4
@@ -48159,11 +48182,11 @@ list/format=comma country, id, aa, bb, newcountry, the_data_var
list/format=tab/norow country, id, aa, bb, newcountry, the_data_var
X: 0.5 to 3.5
- Column 1: COUNTRY is {"JP", "JP", "US"} BAD FLAG : -1.E+34
+ Column 1: COUNTRY is {"JP", "JP", "US"}
Column 2: ID is {1,2,3} BAD FLAG : -1.E+34
Column 3: AA is 4000* ID BAD FLAG : -1.E+34
Column 4: BB is 1000000* ID + 500 BAD FLAG : -1.E+34
- Column 5: NEWCOUNTRY is {"w", "c", "e"} BAD FLAG : -1.E+34
+ Column 5: NEWCOUNTRY is {"w", "c", "e"}
Column 6: THE_DATA_VAR is {4,5,4} BAD FLAG : -1.E+34
COUNTRY ID AA BB NEWCOUNTRY THE_DATA_VAR
"JP" 1 4000 1000500 "w" 4
@@ -48301,7 +48324,7 @@ list element_index_str_n (axy[k=1:2,j=1:2], {"a10", "a2", "d4", "c5"})
! ferret version
sh sym FERRET_VERSION
-FERRET_VERSION = "6.9"
+FERRET_VERSION = "6.93"
! history attribute
let a = 12
@@ -48319,7 +48342,7 @@ LAB1 = "X : 0.5 to 314.5"
! show commands without an argument, lists version number at the top
sho command
- Commands in Program FERRET (PyFerret 1.0.2) version6.9:
+ Commands in Program FERRET (PyFerret 1.1.0) version6.93:
SET
SET WINDOW/SIZE/NEW/LOCATION/ASPECT/CLEAR/TITLE/QUALITY/ANTIALIA/NOANTIAL
/ENGINE/COLOR/OPACITY/THICKEN/XPIXELS/YPIXELS/XINCHES/YINCHES/TEXTPROM
@@ -48454,7 +48477,7 @@ go ptest
PLOT/VS/LINE/I=1:314 i*cos(i/20),i*sin(i/20)
sh sym win_title
-WIN_TITLE = "31-Mar-14_17:28"
+WIN_TITLE = "5-Nov-14_16:39"
set win/title="set the title"
sho sym win_title
@@ -48472,7 +48495,7 @@ sho sym win_title
WIN_TITLE = "_"
set win/title="($session_date):($session_time)"
- !-> set win/title="31-Mar-14:17:28"
+ !-> set win/title=" 5-Nov-14:16:39"
! If the date or time starts with a blank then we get an extra
! underscore in the window title. Evaluating the symbols into
@@ -48481,16 +48504,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 = 31-Mar-14
+ !-> DEFINE SYMBOL the_date = 5-Nov-14
DEFINE SYMBOL the_time = ($session_time"SESSION_TIME")
- !-> DEFINE SYMBOL the_time = 17:28
+ !-> DEFINE SYMBOL the_time = 16:39
SET WIN/TITLE="($the_date):($the_time)"
- !-> SET WIN/TITLE="31-Mar-14:17:28"
+ !-> SET WIN/TITLE="5-Nov-14:16:39"
can win/all
set win/new
sh sym win_title
-WIN_TITLE = "31-Mar-14:17:28"
+WIN_TITLE = "5-Nov-14:16:39"
*** Running test: bn_last_error.jnl
! bn_last_error.jnl
! acm Nov 2005
@@ -51424,10 +51447,10 @@ ppl list xaxis
XAXIS QUALITIES
- LO= 3.12E+02 HI= 3.12E+02 TIC= 2.00E-02 LEN= 7.75E+00 CSIZE= 1.00E-01
+ LO= 3.12E+02 HI= 3.12E+02 TIC= 2.00E-02 LEN= 8.00E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.38E+00 LABEL FORMAT= (F8.3,'LONE')
+ XORG= 1.20E+00 LABEL FORMAT= (F8.3,'LONE')
! But /HLIM=312.23:312.3801/... works.
fill/hlim=312.23:312.3801/vlim=37.03:40.91 0*x[gx=xfull] * y[gy=yfull]
@@ -51435,10 +51458,10 @@ ppl list xaxis
XAXIS QUALITIES
- LO= 3.12E+02 HI= 3.12E+02 TIC= 2.00E-02 LEN= 7.75E+00 CSIZE= 1.00E-01
+ LO= 3.12E+02 HI= 3.12E+02 TIC= 2.00E-02 LEN= 8.00E+00 CSIZE= 1.00E-01
TOP AXIS= ON BOTTOM AXIS= ON
MANUAL NORMAL NMTC= 0 LINT= 2 LABEL= -1 NSIG= 2 NTIC= 10
- XORG= 1.38E+00 LABEL FORMAT= (F8.2,'LONE')
+ XORG= 1.20E+00 LABEL FORMAT= (F8.2,'LONE')
! Bug 1275 stray characters appear in data lines listing string data
GO bn_reset
@@ -52749,8 +52772,8 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -52794,8 +52817,8 @@ sho dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(PSXT91_108) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -54104,7 +54127,7 @@ set mem/siz=90
sh sym ferret_memory
FERRET_MEMORY = "90"
show memory
- Current size of FERRET memory cache: 90 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 90 MegaWords (1 word = 8 bytes)
set mem/size=0.05
sh sym ferret_memory
@@ -54116,7 +54139,7 @@ FERRET_MEMORY = "0.2"
set mem/siz=25.6 ! return to the default setting
show memory
- Current size of FERRET memory cache: 25.6 MegaWords (1 word = 4 bytes)
+ Current size of FERRET memory cache: 25.6 MegaWords (1 word = 8 bytes)
*** Running test: bn605_bug_fixes.jnl
! bn604_bug_fixes.jnl
! test various fixes that went into version 6.05
@@ -54375,22 +54398,39 @@ EXPND_BY_LEN_STR(var,len,nx)
FC_ISUBSET(index_list,lengths,nx,FullData)
EXPNDI_BY_Z_COUNTS(dat,counts,max_profile_len)
EXPNDI_ID_BY_Z_COUNTS(counts,max profile len)
+EXPNDI_BY_M_COUNTS(dat,counts,max_row_len)
STR_MASK(STRING,MASK,--)
SAMPLEXYT_NRST(DAT_TO_SAMPLE,XPTS,YPTS,TPTS)
+SEPARATE(A,Rowsize,FixLongitudes)
ADD_9(A,B,C,D,E,F,G,H,I)
APPENDE(ENS,VAR)
AVET(A)
DATES(Offsets)
+EFSTRINGS(--)
FACTORIAL(A)
FFT_AMP(A)
FFTA_SAMPLE(A)
FFT_PHAS(A)
+LENGTH_OF_STRINGS(--)
+MAXSTRLEN(A)
PASS_THRU(A)
+PASS_THRU_STRING(A)
PERCENT_GOOD_T(A)
+PICK_A_STRING(A,N)
+PIECEWISE3(V1,V2,V3,Control parameter,Tol1,Tol2,Tol3)
+SAMPLE_FAST_I(V,Indices)
+SEPARATE(A,Rowsize,FixLongitudes)
+SEPARATE_STR(A,Rowsize,FixLongitudes)
STORAGE(A)
STRING_ARG(Flags,NString)
+STRING_CAT3(A,B,C)
+STRING_LEN_SUM(S1,S2)
+STRINGS_AS_ARGS(S1,S2,NCHAR)
+STR_MISSING(MASK,STR,REPL)
STUDENT_T_CUTOFF(P,nf)
SUBTRACT(A,B)
+WRITE_WEBROW_GWT(id,name,Cruise_Mask,filename)
+STATS_HISTOGRAM(VALS,BINS_TEMPLATE)
STATS_BETA_CDF(PTS,ALPHA,BETA)
STATS_BETA_ISF(PTS,ALPHA,BETA)
STATS_BETA_PDF(PTS,ALPHA,BETA)
@@ -54546,7 +54586,6 @@ STATS_TTEST2IND(SAMPLEA,SAMPLEB)
STATS_TTEST2REL(SAMPLEA,SAMPLEB)
STATS_ZSCORE(VALUES)
STATS_HELPER(PDNAME)
-STATS_HISTOGRAM(VALS,BINS_TEMPLATE)
SHAPEFILE_READXY(SHAPEFILE,MAXPTS)
SHAPEFILE_READXYVAL(SHAPEFILE,VALNAME,MAXPTS)
SHAPEFILE_READXYZ(SHAPEFILE,MAXPTS)
@@ -55575,13 +55614,13 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.550E+00 0.120 0 SYSTEM @ASLATITUDE : 39N
+ LAB 1 0.000E+00 6.800E+00 0.120 0 SYSTEM @ASLATITUDE : 39N
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 2 0.000E+00 6.350E+00 0.120 0 SYSTEM @ASTIME : 16-JAN 06:00
+ 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 7.750E+00 6.380E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
+ 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 3.880E+00 6.080E+00 0.120 0 SYSTEM @A
+ LAB 4 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
! and now valid data overlaid with all-missing data
@@ -55594,13 +55633,13 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.550E+00 0.120 0 SYSTEM @ASLATITUDE : 9N
+ 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.350E+00 0.120 0 SYSTEM @ASTIME : 16-JAN 06:00
+ 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 7.750E+00 6.380E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
+ 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 3.880E+00 6.080E+00 0.120 0 SYSTEM @A
+ LAB 4 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
LAB 5 -3.700E-01 -5.500E-01 0.080 0 SYSTEM @ASSST[Y=39N] No Valid Data
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
@@ -55613,17 +55652,17 @@ ppl list labels
@ASDeg C
XPOS YPOS HGT ROT UNITS
- LAB 1 0.000E+00 6.350E+00 0.120 0 SYSTEM @ASTIME : 16-JAN 06:00
+ LAB 1 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 2 7.750E+00 6.380E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
+ LAB 2 8.000E+00 6.630E+00 0.120 0 SYSTEM @ASDATA SET: coads_climatology
LINE PT: 0.000E+00 0.000E+00 NO LINE RIGHT JUSTIFY LABEL
- LAB 3 3.880E+00 6.080E+00 0.120 0 SYSTEM @A
+ LAB 3 4.000E+00 6.330E+00 0.120 0 SYSTEM @A
LINE PT: 0.000E+00 0.000E+00 NO LINE CENTER JUSTIFY LABEL
- LAB 4 2.490E+00 -7.900E-01 0.120 0 SYSTEM @ASSST[Y=9N]
+ LAB 4 2.530E+00 -8.000E-01 0.120 0 SYSTEM @ASSST[Y=9N]
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 5 5.610E+00 -7.900E-01 0.114 0 SYSTEM @ASSST[Y=49N] No Valid Data
+ LAB 5 5.780E+00 -7.900E-01 0.119 0 SYSTEM @ASSST[Y=49N] No Valid Data
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
- LAB 6 2.490E+00 -1.050E+00 0.120 0 SYSTEM @ASSST[Y=19N]
+ LAB 6 2.530E+00 -1.050E+00 0.120 0 SYSTEM @ASSST[Y=19N]
LINE PT: 0.000E+00 0.000E+00 NO LINE LEFT JUSTIFY LABEL
! For 2D plots create a new MODE NODATA_LAB which if on, puts
@@ -57040,7 +57079,7 @@ SORTI(DAT)
T: inherited from argument(s)
E: inherited from argument(s)
F: inherited from argument(s)
- DAT: variable to sort in I
+ DAT: variable to sort in I (FLOAT)
Influence on output axes:
X: no influence (indicate argument limits with "[]")
Y: passed to result grid
@@ -58661,10 +58700,10 @@ SH GRID am
normal F
*** Running test: bn_clock_syms.jnl
SH SYM delta_cpu, clock_secs, current_date, current_time
-DELTA_CPU = "0.527918"
-CLOCK_SECS = "0.307"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "17:28:56"
+DELTA_CPU = "0.525919"
+CLOCK_SECS = "0.309"
+CURRENT_DATE = " 5-Nov-14"
+CURRENT_TIME = "16:40:37"
! test special symbols DELTA_CPU, CLOCK_SECS
!
! NOTE THAT THE VALUES OF THE SYMBOLS WILL VARY FROM ONE
@@ -58673,8 +58712,8 @@ CURRENT_TIME = "17:28:56"
use gt4d011
shade/k=1 temp[L=@ave]
sh sym DELTA_CPU, CLOCK_SECS
-DELTA_CPU = "0.050993"
-CLOCK_SECS = "0.358"
+DELTA_CPU = "0.060991"
+CLOCK_SECS = "0.369"
repeat/k=1:10 shade temp[L=@ave]
!-> REPEAT: K=1
@@ -58688,60 +58727,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.439933
+ !-> DEFINE VARIABLE ten_plots = 0.676897
sh sym DELTA_CPU, CLOCK_SECS
DELTA_CPU = "0"
-CLOCK_SECS = "0.798"
+CLOCK_SECS = "1.047"
let sumclock = 0
let sumcpu = 0
sh sym CLOCK_SECS
-CLOCK_SECS = "0.799"
+CLOCK_SECS = "1.047"
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.036994
- !-> DEFINE VARIABLE sumcpu =0.036994
+ !-> DEFINE VARIABLE dt = 0.042993
+ !-> DEFINE VARIABLE sumcpu =0.042993
!-> REPEAT: K=2
- !-> DEFINE VARIABLE dt = 0.040994
- !-> DEFINE VARIABLE sumcpu =0.077988
+ !-> DEFINE VARIABLE dt = 0.047993
+ !-> DEFINE VARIABLE sumcpu =0.090986
!-> REPEAT: K=3
- !-> DEFINE VARIABLE dt = 0.039994
- !-> DEFINE VARIABLE sumcpu =0.117982
+ !-> DEFINE VARIABLE dt = 0.047993
+ !-> DEFINE VARIABLE sumcpu =0.138979
!-> REPEAT: K=4
- !-> DEFINE VARIABLE dt = 0.041993
- !-> DEFINE VARIABLE sumcpu =0.159975
+ !-> DEFINE VARIABLE dt = 0.048992
+ !-> DEFINE VARIABLE sumcpu =0.187971
!-> REPEAT: K=5
- !-> DEFINE VARIABLE dt = 0.038994
- !-> DEFINE VARIABLE sumcpu =0.198969
+ !-> DEFINE VARIABLE dt = 0.045993
+ !-> DEFINE VARIABLE sumcpu =0.233964
!-> REPEAT: K=6
- !-> DEFINE VARIABLE dt = 0.040994
- !-> DEFINE VARIABLE sumcpu =0.239963
+ !-> DEFINE VARIABLE dt = 0.047993
+ !-> DEFINE VARIABLE sumcpu =0.281957
!-> REPEAT: K=7
- !-> DEFINE VARIABLE dt = 0.037994
- !-> DEFINE VARIABLE sumcpu =0.277957
+ !-> DEFINE VARIABLE dt = 0.043993
+ !-> DEFINE VARIABLE sumcpu =0.32595
!-> REPEAT: K=8
- !-> DEFINE VARIABLE dt = 0.035995
- !-> DEFINE VARIABLE sumcpu =0.313952
+ !-> DEFINE VARIABLE dt = 0.043994
+ !-> DEFINE VARIABLE sumcpu =0.369944
!-> REPEAT: K=9
- !-> DEFINE VARIABLE dt = 0.035995
- !-> DEFINE VARIABLE sumcpu =0.349947
+ !-> DEFINE VARIABLE dt = 0.042993
+ !-> DEFINE VARIABLE sumcpu =0.412937
!-> REPEAT: K=10
- !-> DEFINE VARIABLE dt = 0.035994
- !-> DEFINE VARIABLE sumcpu =0.385941
+ !-> DEFINE VARIABLE dt = 0.041993
+ !-> DEFINE VARIABLE sumcpu =0.45493
say `sumcpu`
- !-> MESSAGE/CONTINUE 0.385941
-0.385941
+ !-> MESSAGE/CONTINUE 0.45493
+0.45493
sh sym CLOCK_SECS
-CLOCK_SECS = "1.187"
+CLOCK_SECS = "1.505"
SH SYM session_date, current_date, session_time, current_time
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "17:28"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "17:28:57"
+SESSION_DATE = " 5-Nov-14"
+SESSION_TIME = "16:40"
+CURRENT_DATE = " 5-Nov-14"
+CURRENT_TIME = "16:40:38"
*** Running test: bn63_bug_fixes.jnl
! bn63_bug_fixes.jnl
! Fixes that go into v6.3 release
@@ -62652,9 +62691,9 @@ list contents
VARIABLE : { SPAWN:"cat redirect_journal.txt" }
SUBSET : 47 points (X)
1 / 1:" ! NOAA/PMEL TMAP"
- 2 / 2:" ! FERRET v6.9 (PyFerret 1.0.2)"
- 3 / 3:" ! Linux 2.6.18-371.4.1.el5 - 03/31/14"
- 4 / 4:" ! 31-Mar-14 17:29 "
+ 2 / 2:" ! FERRET v6.93 (PyFerret 1.1.0)"
+ 3 / 3:" ! Linux 2.6.18-398.el5 - 11/05/14"
+ 4 / 4:" ! 5-Nov-14 16:41 "
5 / 5:""
6 / 6:"! "
7 / 7:"!! --- 22. produce some output to stdout and stderr"
@@ -62713,23 +62752,24 @@ sh trans
variable transforms e.g.SST[T=1-jan:15-mar at DDC]
code description code description
---- ----------- ---- -----------
- @ITP interpolated @SPZ Parzen smoothed
- @AVE averaged @FAV ave-filled
- @VAR variance @FLN linear-filled
- @SUM summed @FNR nearest-filled
- @RSU running sum @NGD number of valid
- @SHF shifted @NBD number flagged bad
- @MIN minimum @LOC location
- @MAX maximum @WEQ weighted equal
- @DDC centered derivative @CDA closest dist above
- @DDF forward derivative @CDB closest dist below
- @DDB backwards derivative @CIA closest index above
- @DIN integrated @CIB closest index below
- @IIN indef. integ. @EVN event mask
- @SBX box smoothed @MED median smoothed
- @SBN binomial smoothed @SMX maximum smoothed
- @SWL Welch smoothed @SMN minimum smoothed
- @SHN Hanning smoothed @STD standard deviation
+ @ITP interpolated @FAV ave-filled
+ @AVE averaged @FLN linear-filled
+ @VAR variance @FNR nearest-filled
+ @SUM summed @NGD number of valid
+ @RSU running sum @NBD number flagged bad
+ @SHF shifted @LOC location
+ @MIN minimum @WEQ weighted equal
+ @MAX maximum @CDA closest dist above
+ @DDC centered derivative @CDB closest dist below
+ @DDF forward derivative @CIA closest index above
+ @DDB backwards derivative @CIB closest index below
+ @DIN integrated @EVN event mask
+ @IIN indef. integ. @MED median smoothed
+ @SBX box smoothed @SMX maximum smoothed
+ @SBN binomial smoothed @SMN minimum smoothed
+ @SWL Welch smoothed @STD standard deviation
+ @SHN Hanning smoothed @WGT weights for avg,int
+ @SPZ Parzen smoothed
regridding transforms e.g.SST[GX=x5deg at AVE]
code description code description
@@ -65087,40 +65127,40 @@ can mode ver
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.099
-randu2_randn2 0.745
-randu2_randn2 0.727
-randu2_randn2 0.806
-randu2_randn2 0.630
+randu2_randn2 0.504
+randu2_randn2 0.458
+randu2_randn2 0.703
+randu2_randn2 0.525
+randu2_randn2 0.621
VARIABLE : RANDU2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 0.272
-randu2_randn2 0.190
-randu2_randn2 0.167
-randu2_randn2 0.600
-randu2_randn2 0.331
+randu2_randn2 0.252
+randu2_randn2 0.687
+randu2_randn2 0.408
+randu2_randn2 0.233
+randu2_randn2 0.062
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.279
-randu2_randn2 0.868
+randu2_randn2 0.859
+randu2_randn2 0.974
+randu2_randn2 0.676
+randu2_randn2 0.288
+randu2_randn2 0.453
randu2_randn2 0.247
-randu2_randn2 0.991
-randu2_randn2 0.796
-randu2_randn2 0.525
VARIABLE : RANDU2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 0.705
-randu2_randn2 0.528
-randu2_randn2 0.876
-randu2_randn2 0.270
-randu2_randn2 0.039
-randu2_randn2 0.279
+randu2_randn2 0.860
+randu2_randn2 0.919
+randu2_randn2 0.914
+randu2_randn2 0.940
+randu2_randn2 0.169
+randu2_randn2 0.241
VARIABLE : RANDU2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -65145,40 +65185,40 @@ randu2_randn2 0.900
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 -0.753
-randu2_randn2 -1.614
-randu2_randn2 0.231
-randu2_randn2 1.101
-randu2_randn2 -1.611
+randu2_randn2 0.823
+randu2_randn2 0.797
+randu2_randn2 -0.547
+randu2_randn2 -0.022
+randu2_randn2 0.989
VARIABLE : RANDN2(XBIG,-1)
BAD FLAG : -1.E+34
SUBSET : 5 points (X)
X : 0.5 to 5.5
-randu2_randn2 -0.920
-randu2_randn2 0.032
-randu2_randn2 -0.271
-randu2_randn2 2.174
-randu2_randn2 0.036
+randu2_randn2 -1.026
+randu2_randn2 0.024
+randu2_randn2 -0.560
+randu2_randn2 0.330
+randu2_randn2 -0.057
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 -0.505
-randu2_randn2 -0.039
-randu2_randn2 1.500
-randu2_randn2 -0.807
-randu2_randn2 -0.832
-randu2_randn2 -0.095
+randu2_randn2 0.205
+randu2_randn2 0.576
+randu2_randn2 -1.683
+randu2_randn2 0.867
+randu2_randn2 -0.172
+randu2_randn2 0.518
VARIABLE : RANDN2(XX,0)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
X : 0.5 to 6.5
-randu2_randn2 1.362
-randu2_randn2 -1.480
-randu2_randn2 -1.408
-randu2_randn2 0.470
-randu2_randn2 0.966
-randu2_randn2 -2.000
+randu2_randn2 -1.766
+randu2_randn2 0.041
+randu2_randn2 -1.355
+randu2_randn2 2.133
+randu2_randn2 -1.568
+randu2_randn2 1.024
VARIABLE : RANDN2(XX,12436)
BAD FLAG : -1.E+34
SUBSET : 6 points (X)
@@ -65203,14 +65243,14 @@ randu2_randn2 -0.124
Column 1: VAR2 is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1)
Column 2: VAR2[Z=@MED:3] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 3 pts on Z)
Column 3: VAR2[Z=@MED:9] is COS(Z[GZ=ZAX]/30) + RANDU2(1+K[GZ=ZAX],-1) (median smoothed by 9 pts on Z)
-randu2_randn2 1.081 1.672 0.732
-randu2_randn2 1.672 1.081 0.732
-randu2_randn2 0.732 0.732 0.483
-randu2_randn2 0.483 0.483 0.483
-randu2_randn2 -0.814 -0.312 0.483
-randu2_randn2 -0.312 -0.312 0.483
-randu2_randn2 0.290 0.290 0.483
-randu2_randn2 0.332 0.332 0.483
+randu2_randn2 1.989 1.989 0.710
+randu2_randn2 0.955 0.955 0.710
+randu2_randn2 0.710 0.710 -0.049
+randu2_randn2 -0.137 -0.137 0.437
+randu2_randn2 -0.462 -0.462 0.437
+randu2_randn2 -0.551 -0.462 0.437
+randu2_randn2 -0.049 -0.049 0.437
+randu2_randn2 0.437 0.437 0.437
*** Running test: bn_axis_cf.jnl
! Ticket 1792: Write axes with CF-compliant units
! and with standard name attributes for geophysical attrs.
@@ -70878,8 +70918,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -70933,8 +70973,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -70977,8 +71017,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71021,8 +71061,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71058,8 +71098,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71096,8 +71136,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71163,8 +71203,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71212,8 +71252,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71273,8 +71313,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71314,8 +71354,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71355,8 +71395,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71396,8 +71436,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71434,8 +71474,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
modulo CHAR 1 T
@@ -71662,8 +71702,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -71700,8 +71740,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) FLOAT units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -71747,8 +71787,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(COADSX140_140) DOUBLE units CHAR 12 T degrees_east
point_spacing CHAR 4 T even
@@ -71791,8 +71831,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -71816,8 +71856,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) INT units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -71841,8 +71881,8 @@ use mytype.nc; sh dat/att mytype.nc; can data mytype
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(MYHOURS1) DOUBLE units CHAR 31 T hours since 1901-01-15 00:00:00
axis CHAR 1 T T
@@ -72270,8 +72310,8 @@ variables:
A:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 366, 1096.485, 1826.97 ;
@@ -72299,8 +72339,8 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 366, 1096.485, 1826.97 ;
@@ -72350,8 +72390,8 @@ variables:
E410:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 366, 1096.485, 1826.97 ;
@@ -72821,6 +72861,54 @@ sh grid sal
normal T
normal E
normal F
+
+! This file from the datset "West Coast Carbon cruises" in our
+! example erdadp, has the cf_role attribute on a coordinate variable.
+! prof, time, latitude, longitude, and rowsize are on the E axis
+! press_db and pco2 are on the X asis
+
+use WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+
+sh dat 2
+ currently SET data sets:
+ 2> ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc (default)
+ name title I J K L M N
+ PROF Prof ... ... ... ... 1:21 ...
+ TIME Time ... ... ... ... 1:21 ...
+ LATITUDE Latitude ... ... ... ... 1:21 ...
+ LONGITUDE
+ Longitude ... ... ... ... 1:21 ...
+ ROWSIZE Number of Observations for this ... ... ... ... 1:21 ...
+ PRESS_DB PRESS_DB 1:373 ... ... ... ... ...
+ PCO2 PCO2 1:373 ... ... ... ... ...
+
+sh att (profile)
+ attributes for dataset: ./WestCoastCarbon_9d9c_f562_77b5_5f8e_5d19_7b1d.nc
+ (profile)._FillValue = -1.E+34
+ (profile).actual_range = 70, 90
+ (profile).cf_role = profile_id
+ (profile).history = From allDataFrom2007-2011-2012WestCoastCarbonCruises-revised3-6-13-1.txt
+ (profile).long_name = profile ID: Cruise and Station
+ (profile).missing_value = -1.E+34
+ (profile).orig_file_axname = profile
+sh grid rowsize
+ GRID GSS1
+ name axis # pts start end
+ normal X
+ normal Y
+ normal Z
+ normal T
+ PROFILE E 21 r 70 90
+ normal F
+sh grid pco2
+ GRID GSS2
+ name axis # pts start end
+ OBS1 X 373 r 1 373
+ normal Y
+ normal Z
+ normal T
+ normal E
+ normal F
*** Running test: bn_nco_append.jnl
! bn_nco_append.jnl
! 5/2013 add a test appending files with ncks
@@ -72866,8 +72954,8 @@ variables:
CYCLE_ORIG:history = "From z2" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_nobounds.jnl
! bn_nobounds.jnl
@@ -72896,8 +72984,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -72927,8 +73015,8 @@ variables:
AVAR:long_name = "X[GX=XIRREG]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XIRREG = 0, 1, 2, 4, 8 ;
@@ -72989,8 +73077,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
! On a SAVE either with /BOUNDS or no bounds qualifier,
@@ -73017,8 +73105,8 @@ variables:
A:history = "From coads" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_write_integer_att.jnl
@@ -74182,8 +74270,8 @@ variables:
LABELS:history = "From http://dunkel.pmel.noaa.gov:8930/thredds/dodsC/data/atmos3.ncml" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
! The behavior is unchanged for user-defined variables
@@ -74205,8 +74293,8 @@ variables:
STRVAR:long_name = "mystrings" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_single_colorlev.jnl
@@ -74227,8 +74315,8 @@ shade/lev=(25)/L=1 INT(sst)
fill/lev=(20,30,10)/L=1 sst
*** Running test: bn69_bug_fixes.jnl
-! bn687_bug_fixes
-! test various fixes that went into version 6.87
+! bn69_bug_fixes
+! test various fixes that went into version 6.9
! 02/2014 ACM
GO bn_reset
@@ -74425,8 +74513,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
! Yet more combinations
@@ -74455,8 +74543,8 @@ variables:
A:history = "From a" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
! We can use /KEEP_AXISNAMES, changes XAXIS_TEST1 to XAXIS_TEST
@@ -74476,8 +74564,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
! Subsets also use XAXIS_TEST1
@@ -74497,8 +74585,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
! Unless we use /KEEP_AXISNAMES - which removes renaming
@@ -74519,8 +74607,8 @@ variables:
B:history = "From b" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
! If we try /KEEP_AXISNAMES but there is a conflict, it's an err
@@ -74627,6 +74715,15 @@ sh var
C = 1
use gt4d011.cdf
+! again, with user-variables and an open dataset the message is as above
+
+let a = 1
+let b = 2
+set var/name=b a
+
+! Intentional error, new name already in file
+
+
! Intentional error, new name already in file
set var/name=temp salt
show dat
@@ -74680,7 +74777,8 @@ show dat
DIFF[D=gt4d011] = TAUX - TAUY
-
+! another error, new name is a user-var
+yes? set var/name=diff w
SET MODE/LAST ignore
*** Running test: bn_bad_axis_bounds.jnl
@@ -74918,8 +75016,8 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
point_spacing CHAR 4 T even
@@ -74934,8 +75032,8 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
point_spacing CHAR 4 T even
@@ -74950,8 +75048,8 @@ sh dat/att
Variable VarType(in dset) AttributeName AttType Size OutFlag AttValue
------------------------------------------------------------------------------------------
- . history CHAR 38 T FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14
- Conventions CHAR 6 F CF-1.0
+ . history CHAR 39 T FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ Conventions CHAR 6 F CF-1.6
(x_in_meters) DOUBLE units CHAR 6 T meters
point_spacing CHAR 4 T even
@@ -74975,6 +75073,2048 @@ set axis/name=45 x_in_meters
set axis/name=.fr x_in_meters
set mode/last ignore
+*** Running test: bn691_bug_fixes.jnl
+! bn691_bug_fixes
+! test various fixes that went into version 6.91
+! 04/2014 ACM
+
+GO bn_reset
+cancel mode verify
+GO err69_arg_type_error
+! err69_arg_type_error
+! See ticket 2169
+!
+set mode ignore
+sh func tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ A: time steps to convert
+ B: variable with reference time axis
+ C: output precision (STRING)
+sh func /detail tax_datestring
+TAX_DATESTRING(A,B,C)
+ Returns date string for time axis coordinate values
+ Axes of result:
+ X: inherited from argument(s)
+ Y: inherited from argument(s)
+ Z: inherited from argument(s)
+ T: inherited from argument(s)
+ E: inherited from argument(s)
+ F: inherited from argument(s)
+ A: time steps to convert (FLOAT)
+ Influence on output axes:
+ X: passed to result grid
+ Y: passed to result grid
+ Z: passed to result grid
+ T: passed to result grid
+ E: passed to result grid
+ F: passed to result grid
+ B: variable with reference time axis (FLOAT)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+ C: output precision (STRING)
+ Influence on output axes:
+ X: no influence (indicate argument limits with "[]")
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+define axis/t=1-jan-2000:31-jan-2000:1/units=days my_tax
+let tt = t[gt=my_tax]
+
+! Intentional errors
+list tax_datestring (tt[L=3], tt, 5)
+list tax_datestring (tt[L=3], tt, "minutes")
+ VARIABLE : TAX_DATESTRING (TT[L=3], TT, "minutes")
+ TIME : 03-JAN-2000 00:00
+ "03-JAN-2000 00:00"
+list tax_datestring (tt[L=3], "my_tax", "minutes")
+
+set mode /last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_bad_bounds
+! err69_bad_bounds.jnl
+! See ticket 2170
+
+set mode ignore
+
+! time axis has a point_spacing=even attribute
+! and an invalid set of bounds.
+! caused Ferret to mis-read the time axis
+use badbounds_even.nc
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same time axis but with a different error in the bounds
+! also has a point-spacing=even attribute
+! caused Ferret to mis-read the time axis
+use badbounds_non_enclose
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 5.000
+11-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 5.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+! Same definition except that the coordinates are irregularly
+! spaced, no point-spacing attribute.
+use badbounds_uneven
+list var, tbox[gt=var]
+ DATA SET: ./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)
+ VAR TBOX
+06-JAN-2000 00 / 1: 1.000 7.000
+13-JAN-2000 00 / 2: 2.000 5.000
+16-JAN-2000 00 / 3: 3.000 4.000
+21-JAN-2000 00 / 4: 4.000 5.000
+26-JAN-2000 00 / 5: 5.000 5.000
+31-JAN-2000 00 / 6: 6.000 5.000
+
+sh axis TAX_BB*
+ name axis # pts start end
+ TAX_BB_IRR TIME 6 i 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 31
+ TAX_BB_EVEN_NOENC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
+ TAX_BB_PTSPAC TIME 6 r 06-JAN-2000 00:00 31-JAN-2000 00:00
+T0 = 01-JAN-2000 00:00:00
+ Axis span (to cell edges) = 30
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_const_array
+! err69_const_array.jnl
+! 5/8/2014 ACM
+! See ticket 2174
+! expressions are not allowed in constant-array definitions.
+
+set mode ignore
+
+! The code to read constant-array definitions into memory was simply doing
+! a read on each comma-separated portion of the command-line defining it.
+! Need to first determine if the buffer represents a simple constant.
+
+! These already returned an error as cos(1) can't be read with a Fortran read.
+list {cos(1), sin(0)}
+
+! Previously the first was read as {0,180} and the second as {0.1,0.2,1}, and
+! the third as {30,2000} !
+! They should be reported as syntax errors
+
+list {0-180, 180}
+list {0.1, 0.2, 1./5.}
+list {5*3+1, 2+3}
+
+! These are ok, and always have been
+list/prec=8 {-0.001, 1.23e-2, -45.e3}
+ VARIABLE : {-0.001, 1.23E-2, -45.E3}
+ SUBSET : 3 points (X)
+ 1 / 1: -0.001
+ 2 / 2: 0.012
+ 3 / 3: -45000.000
+
+set mode/last ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_multi_label_ascii
+! err69_multi_label_ascii.jnl
+! 5/2014 ACM
+! ticket 2176
+! Multi-line labels and ascii fonts.
+
+plot/vs/nolab {0,1},{0,1}
+
+
+label .05 .96 0 0 .12 "@CR at P4Single Line examples. Ascii font with and without escape for new color:"
+label .05 .9 0 0 .16 "@ASNo_escapes at c002good_1@c003friend_2"
+label .05 .83 0 0 .16 "@ASEscape_new_colors@c002red_1@c003green_2"
+
+
+label .05 .65 0 0 .12 "@CR at P4Multi Line ascii examples:"
+
+label .05 .56 0 0 .12 "@CR at P4without escape"
+label .05 .5 0 0 .16 "@ASNo_escapes<NL>@c002good_1<NL>@c003friend_2"
+
+label .55 .56 0 0 .12 "@CR at P4with escape:"
+label .55 .5 0 0 .16 "@ASEscape_new_colors<NL>@c002red_1<NL>@c003green_2"
+
+! escape just the special characters.
+label .05 .26 0 0 .12 "@CR at P4Settings around underscores:"
+label .05 .2 0 0 .16 "hello at AS_@SRthere<NL>@c002good at AS_@SR1<NL>@c003friend at AS_@SR2"
+
+! escape new pen setting, not the font
+label .55 .26 0 0 .12 "@CR at P4Escape just the color changes:"
+label .55 .2 0 0 .16 "@ASEscape_color_not_font<NL>@P2 at SRred_1<NL>@P3 at SRgreen_2"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ens_badvalue
+! err69_ens_badvalue.jnl
+!
+! Datasets have _FillValue but not missing_value attributes.
+! In this case the missing data info was not correctly handled
+! when defining an ensemble.
+
+use maize_1.nc, maize_2.nc, maize_3.nc
+
+! Note the _FillValue, flag
+sho att maize_yield
+ attributes for dataset: ./maize_3.nc
+ MAIZE_YIELD._FillValue = 9.96921E+36
+ MAIZE_YIELD.long_name = Maize harvest
+ MAIZE_YIELD.units = kgC.m-2.yr-1
+ MAIZE_YIELD.history = From new_ORCH_CORD_MIR_B1_maize
+ensemble ens = 1,2,3
+
+! MAIZE_YIELD[M=@NGD] should have values of 0, 2, and 3.
+list/y=29.25 MAIZE_YIELD[d=1], MAIZE_YIELD[d=2], MAIZE_YIELD[d=3], MAIZE_YIELD[m=@ngd]
+ LONGITUDE: 8W(-8) to 6W(-6)
+ LATITUDE: 29.3N
+ E: 0.5 to 3.5 (number of valid)
+ Column 1: MAIZE_YIELD[D=maize_1] is Maize harvest (kgC.m-2.yr-1)
+ Column 2: MAIZE_YIELD[D=maize_2] is Maize harvest (kgC.m-2.yr-1)
+ Column 3: MAIZE_YIELD[D=maize_3] is Maize harvest (kgC.m-2.yr-1)
+ Column 4: MAIZE_YIELD[D=ENS] is Maize harvest (# of points)
+ MAIZE_YIELD MAIZE_YI MAIZE_Y MAIZE_YIELD
+7.75W / 1: .... 0.05247 0.1022 2.000
+7.25W / 2: 0.01818 0.03588 0.0049 3.000
+6.75W / 3: -0.00002 0.02030 -0.0139 3.000
+6.25W / 4: .... .... .... 0.000
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_by_levels
+! err69_ribbon_by_levels.jnl
+! ACM 5/19/2014
+! See ticket 2179
+! colors were not repeating after the first 10.
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels xpts,ypts,var
+
+
+GO bn_reset
+cancel mode verify
+GO err69_ribbon_histogram
+! err69_ribbon_histogram.jnl
+! ACM 5/24/2014
+! Histogram levels with ribbon line plots
+
+
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,1.9,1.1,1.3,1.1,1.2,2.3,\
+2.4,2.4,2.2,2.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+
+! linear levels, then histogram levels
+can view; set v left
+ribbon/vs/line/thick/lev=10 xpts,ypts,var
+set v right
+ribbon/vs/line/thick/lev=10h xpts,ypts,var
+
+GO bn_reset
+cancel mode verify
+GO err69_repl_scinot
+! err69_repl_scinot.jnl
+! ticket 2175
+! The returned number had a bunch of trailing spaces
+
+let a = 1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (1.E-10)
+(1.E-10)
+
+let a = -1.e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.E-10)
+(-1.E-10)
+
+let a = -1.23e-10
+say (`a`)
+ !-> MESSAGE/CONTINUE (-1.23E-10)
+(-1.23E-10)
+
+let a = -1.23e-2
+say (`a`)
+ !-> MESSAGE/CONTINUE (-0.0123)
+(-0.0123)
+
+GO bn_reset
+cancel mode verify
+GO err691_bnds_case
+! err691_bnds_case
+! 6/30/14
+! Ticket 2182 bounds variable incorrectly created with upper-cased axis name
+
+def ax/t tax = {1,2,4,8}
+let tval = t[gt=tax]
+can mode upcase_output
+save/clob/file=tval.nc tval
+
+set mode/last upcase_output
+
+GO bn_reset
+cancel mode verify
+GO err69_plot_vs_labs
+! err69_plot_vs_labs.jnl
+! ticket 2187: the axis labels on the dependent axis
+! for PLOT/VS is wrong. LABX and LABY contain the labels used.
+
+use coads_climatology
+
+let a = sst[L=1]
+let b = a[x=180e:100w at ave]
+let c = a[x=150w:90w at ave]
+let d = a[x=150w:90w at ave]
+set v left; plot/vs b,c; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+set v right; plot/vs c,b; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+
+can view
+plot/vs/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+
+set v left; plot/trans/vs b,c; sh sym labx,laby
+LABX = "A[X=150W:90W at AVE]"
+LABY = "A[X=180E:100W at AVE]"
+set v right; plot/trans/vs c,b; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+
+can view
+plot/vs/trans/ribbon c,b,d; sh sym labx,laby
+LABX = "A[X=180E:100W at AVE]"
+LABY = "A[X=150W:90W at AVE]"
+
+GO bn_reset
+cancel mode verify
+GO err69_levels_v
+! err69_levels_v.jnl
+! Ferret ticket 2186, and LAS ticket 1598
+! the data has values in the range 300 to 500,
+! and several values over 100000. The variance-
+! based levels returned useless levels. Changes
+! made to throw out data outside 3 std when
+! computing the mean and std dev for color levels.
+
+use "lev_v_bug.nc"
+shade/lev=v var2d
+
+! previously the computed levels spanned -8000 to 16000.
+sh sym *lev*
+LEV_TEXT = "V"
+LEV_HISTO_LEVELS = "1.1,1.2,1.6,1.9,2.4,2.5,3.8,5.4,10.2,13.6,14.9"
+LEV_MIN = "-1.E+34"
+LEV_MAX = "5.0000E+32"
+LEV_NUM = "21"
+LEV_DEL = "5.0000E+32"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_letd_dsetnum
+! err69_letd_dsetnum.jnl
+! Ticket 2189. Previously the grave-accent expression didn't get
+! translated, and the let command failed.
+
+use coads_climatology
+let/d=`sst,r=dsetnum` a = 1
+ !-> DEFINE VARIABLE/d=1 a = 1
+sh dat
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+ ------------------------------
+ A[D=coads_climatology] = 1
+
+
+GO bn_reset
+cancel mode verify
+GO err69_long_string_to_xml
+! err69_long_string_to_xml.jnl
+! ticket 2190 8-8-2014
+! previously the string was cut off at 512 characters. For this example
+! it was in the middle of the code AAAAAAAAAAAA
+!
+
+list/clobber/file="out.xml"/nohead/norow 1
+LET longstring = "Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC2004 [...]
+LET status = list_value_xml ("mytag", longstring, 1, "out.xml")
+LOAD status
+
+sp cat out.xml
+ 1.000
+<mytag><![CDATA[Where expocode is 33GG20090204, 33GG20090227, 33GG20090407, 33GG20090419, 33GG20090513, 33GG20090611, 33GG20090701, 33GG20090727, 33GG20090830, 33GG20090915, 33GG20080403, 33GG20080419, 33GG20080512, 33GG20080920, 33GG20081014, 33GG20081028, 33GG20081114, 33GG20091019, 33GG20091101, 332220110627, 332220110716, 332220110802, 332220110820, 332220120220, 332220120327, 332220120717, 332220120905, 33GC20040510, 33GC20040511, 33GC20040512, 33GC20040521, 33GC20040602, 33GC200406 [...]
+
+GO bn_reset
+cancel mode verify
+GO err69_fill_trans
+! err69_fill_trans.jnl
+! ticket 2196. Visible only if bounds-checking is turned on.
+! 9/22/2014
+
+DEFINE AXIS/x=1:15:1 xaxis
+let var = {1,2,3,,,,,,,4,,5,6,7,8}
+LET myvar = var[gx=xaxis at asn]
+
+list myvar
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ SUBSET : 15 points (X)
+ 1 / 1: 1.000
+ 2 / 2: 2.000
+ 3 / 3: 3.000
+ 4 / 4: ....
+ 5 / 5: ....
+ 6 / 6: ....
+ 7 / 7: ....
+ 8 / 8: ....
+ 9 / 9: ....
+ 10 / 10: 4.000
+ 11 / 11: ....
+ 12 / 12: 5.000
+ 13 / 13: 6.000
+ 14 / 14: 7.000
+ 15 / 15: 8.000
+list myvar[x=6 at fnr:2]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 2 pts)
+ ....
+
+! This caused attempt to load variable at index i = -4
+list myvar[x=6 at fnr:10]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (nearest-filled by 10 pts)
+ 3.000
+
+! Likewise the way @FAV is computed, this caused Ferret
+! to try to get data at i=-3
+list myvar[x=6 at fav:18]
+ VARIABLE : VAR[GX=XAXIS at ASN]
+ X : 6 (ave-filled by 18 pts)
+ 4.500
+
+
+GO bn_reset
+cancel mode verify
+GO err69_load_big_grid
+! err69_load_big_grid
+! ticket 1758
+! error about "a negative number of words requested... grid too large"
+! in fact all large grids misreports size. Now computations are done
+! in real numbers and in block not word sizes.
+
+set mode ignore
+
+def axis/x=1:360:1 xaxis
+def axis/y=1:180:1 yaxis
+def axis/z=1:20:1 zaxis
+
+! this gave the error about "a negative number of words requested... grid too large"
+define axis/t=1-jan-2000:1-jan-2005:1/units=days longtime
+let bigvar = x[gx=xaxis]+y[gy=yaxis] + z[gz=zaxis] + t[gt=longtime]
+sh grid bigvar
+ GRID (G004)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 1828 r 01-JAN-2000 00:00 01-JAN-2005 00:00
+ normal E
+ normal F
+load bigvar
+
+! also was an incorrect size.
+define axis/t=1-jan-2000:1-jan-2010:1/units=days longtime
+sh grid bigvar
+ GRID (G004)
+ name axis # pts start end
+ XAXIS X 360 r 1 360
+ YAXIS Y 180 r 1 180
+ ZAXIS Z 20 r 1 20
+ LONGTIME TIME 3654 r 01-JAN-2000 00:00 01-JAN-2010 00:00
+ normal E
+ normal F
+load bigvar
+
+cancel mode ignore
+
+GO bn_reset
+cancel mode verify
+GO err69_write_attribute
+! err69_write_attribute.jnl
+! Bug 1863
+
+use gt4d011.cdf
+sh grid temp
+ GRID PS3DT2
+ name axis # pts start end
+ PSXT LONGITUDE 160mr 130.5E 70.5W
+ PSYT LATITUDE 100 i 28.836S 48.568N
+ PSZT DEPTH (m) 27 i- 5 3824
+ TIME1 TIME 25 r 17-AUG-1982 12:00 10-JAN-1983 12:00
+ normal E
+ normal F
+let a = temp[x=@ave,y=@ave,L=1]
+
+! The attribute we ask not to write is not written for this variable
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (PSZT).point_spacing
+save/q/clob/file="a.nc"/bounds a
+sp ncdump -h a.nc | grep -i "`a,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT"
+ PSZT1_10 = 10 ;
+ double PSZT1_10(PSZT1_10) ;
+ PSZT1_10:units = "meters" ;
+ PSZT1_10:positive = "down" ;
+ PSZT1_10:standard_name = "depth" ;
+ PSZT1_10:bounds = "PSZT1_10_bnds" ;
+ double PSZT1_10_bnds(PSZT1_10, bnds) ;
+ double A(TIME1, PSZT1_10) ;
+
+! But it was being written for this one. It should not.
+let b = temp[x=@ave,y=@ave,L=1,d=1]
+save/q/clob/file="a.nc"/bounds b
+sp ncdump -h a.nc | grep -i "`b,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT"
+ PSZT1_10 = 10 ;
+ double PSZT1_10(PSZT1_10) ;
+ PSZT1_10:units = "meters" ;
+ PSZT1_10:positive = "down" ;
+ PSZT1_10:standard_name = "depth" ;
+ PSZT1_10:bounds = "PSZT1_10_bnds" ;
+ double PSZT1_10_bnds(PSZT1_10, bnds) ;
+ double B(TIME1, PSZT1_10) ;
+
+! A variable that depends on more than one dataset.
+use coads_climatology
+let c = temp[x=@ave,y=@ave,L=1,d=1] + sst[x=@ave,y=@ave,t=@ave,d=2]
+save/q/clob/file="a.nc"/bounds c
+sp ncdump -h a.nc | grep -i "`c,r=zaxis`"
+ !-> sp ncdump -h a.nc | grep -i "PSZT"
+ PSZT1_10 = 10 ;
+ double PSZT1_10(PSZT1_10) ;
+ PSZT1_10:units = "meters" ;
+ PSZT1_10:positive = "down" ;
+ PSZT1_10:standard_name = "depth" ;
+ PSZT1_10:bounds = "PSZT1_10_bnds" ;
+ double PSZT1_10_bnds(PSZT1_10, bnds) ;
+ double C(PSZT1_10) ;
+
+can data/all
+can var/all
+
+! When there are two datasets with the same axis name but different depths,
+! the second axis name is changed internally.
+
+DEFINE AXIS/z/depth zzdep = {0,10,20,30,50,75,100,150,200,300,400,600,800,1000,1200,1500,2000,3000,4000,5000}
+
+LET temp = z[gz=zzdep]
+save/clobber/file=aa.nc temp
+save/clobber/keep/file=bb.nc temp[k=1:15]
+can var/all
+can axis zzdep
+
+use aa
+use bb
+set data 1
+
+show att (`temp,r=zaxis`)
+ !-> show att (ZZDEP)
+ attributes for dataset: ./aa.nc
+ (ZZDEP).point_spacing = uneven
+ (ZZDEP).axis = Z
+ (ZZDEP).bounds = ZZDEP_bnds
+ (ZZDEP).positive = down
+ (ZZDEP).standard_name = depth
+ (ZZDEP).orig_file_axname = ZZDEP
+
+let a = temp[d=1,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+set data 2
+let a = temp[d=2,x=@ave,y=@ave]
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP1).point_spacing
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP1
+ ZZDEP1 = 15 ;
+ double ZZDEP1(ZZDEP1) ;
+ ZZDEP1:axis = "Z" ;
+ ZZDEP1:bounds = "ZZDEP1_bnds" ;
+ ZZDEP1:positive = "down" ;
+ ZZDEP1:standard_name = "depth" ;
+ double ZZDEP1_bnds(ZZDEP1, bnds) ;
+ double A(ZZDEP1) ;
+
+let a = temp[d=2,gz=temp[d=1]]
+
+can att/output (`a,r=zaxis`).point_spacing
+ !-> can att/output (ZZDEP).point_spacing
+
+save/clobber/file=a.nc a
+sp ncdump -h a.nc | grep -i `a,r=zaxis`
+ !-> sp ncdump -h a.nc | grep -i ZZDEP
+ ZZDEP = 20 ;
+ double ZZDEP(ZZDEP) ;
+ ZZDEP:axis = "Z" ;
+ ZZDEP:bounds = "ZZDEP_bnds" ;
+ ZZDEP:positive = "down" ;
+ ZZDEP:standard_name = "depth" ;
+ double ZZDEP_bnds(ZZDEP, bnds) ;
+ double A(ZZDEP) ;
+
+sp rm aa.nc bb.nc
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_status_errmsgs
+! err69_isready_status_errmsgs
+! ticket 2197
+! RETURN=isready or RETURN=status caused error reporting
+! to go silent.
+
+set mode ignore
+list a
+say `a,return=isready`
+ !-> MESSAGE/CONTINUE 0
+0
+say `c,return=status`
+ !-> MESSAGE/CONTINUE UNKNOWN VARIABLE: C
+UNKNOWN VARIABLE: C
+list a
+list b
+shade a
+
+set mode/last ignore
+
+
+GO bn_reset
+cancel mode verify
+GO err69_countervar_context
+! err69_countervar_context.jnl
+! ACM 10/3/2014
+! Ticket 2200. Context from SET REGION should not
+! apply in named-repeat loop. The loop would run,
+! but returned values of 0.
+
+let a = b
+set region/i=20:30
+repeat/name=b/range=1:3 (say `a`)
+!-> REPEAT: B:1
+ !-> MESSAGE/CONTINUE 1
+1
+!-> REPEAT: B:2
+ !-> MESSAGE/CONTINUE 2
+2
+!-> REPEAT: B:3
+ !-> MESSAGE/CONTINUE 3
+3
+
+can region
+
+GO bn_reset
+cancel mode verify
+GO err69_label_backspace
+! err69_label_backspace
+! Ticket 2203: \\ before a character backspaces before
+! making the character. This broke in the 64-bit versions.
+
+plot/vs/nolab {0,1},{0,1}
+label .5 .5 0 0 1 "El Nin\\^@MA45 at SRo\!"
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_and_regridding
+! err69_isready_and_regridding.jnl
+! Ticket 2204: A `var,return=isready` sends Ferret into a hanged
+! state after other contexts have been defined
+
+can dat/all
+
+! create & load a file with a Gregorian time axis
+def ax/t/unit=days/t0=1-jan-1979 tax_g = {15,45,75,105,135}
+let a = t[gt=tax_g]
+save/clob/file=a.nc a
+can var a
+can ax tax_g
+use a.nc
+
+! create a variable on a Julian time axis
+def ax/edge/t=1-feb-1980:1-feb-2003/np=276/cal=julian/unit="hour"/t0=1-jan-1900 tax_j
+let b = t[gt=tax_j]
+
+! put the Gregorian data on the Julian axis
+let a2 = a
+let a2_on_b = a2[gt=b]
+
+! create a climatological axis (Julian)
+def ax/t/unit=days/t0=1-jan-0001/modulo=365.25/cal=julian tax_jc = {15.5,45.125,74.75,105.25,135.75,166.25,196.75,227.75,258.25,288.75,319.25,349.75}
+
+let b_one = missing(1+0*b,1) !set everything to 1
+let nyr = b_one[gl=tax_jc at modsum] !# years that include each month
+
+! Execute some commands which put things into context storage
+
+say `a2_on_b,r=title`
+ !-> MESSAGE/CONTINUE A2[GT=B]
+A2[GT=B]
+say `nyr[l=1]`
+ !-> MESSAGE/CONTINUE 23
+23
+
+! This got us into a weird hanged state
+IF `a2_on_b,r=isready` THEN
+ !-> IF 1 THEN
+ENDIF
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_and_uvar_regrid
+! err69_vtree_and_uvar_regrid.jnl
+! Ticket 2206: This lead to a crash.
+! 10/9/2014
+
+let a = t[gt=1:2:1]
+let b2 = a
+let c = b2[gt=a]
+GO bn_vtree.sub c
+/TREE=ALL
+ C = B2[GT=A]
+ B2 = A
+ A = T[GT=1:2:1]
+/TREE=USER
+ C = B2[GT=A]
+ B2 = A
+ A = T[GT=1:2:1]
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+
+GO bn_reset
+cancel mode verify
+GO err69_vtree_cancel_axis
+! err69_vtree_cancel_axis
+! Ticket 2201: After a return=isready,
+! cannot cancel the axis used by the var
+! 10-Oct-2014
+
+define axis/x=0:360:1 xax1
+define axis/x=0:360:10 xax2
+
+let a = x[gx=xax1]
+say `a,return=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX1]
+X[GX=XAX1]
+
+let b = a[gx=xax2]
+say `b,return=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+cancel var a b
+cancel axis xax1
+cancel axis xax2
+
+
+
+GO bn_reset
+cancel mode verify
+GO err69_isready_bugs
+! err69_isready_bugs.jnl
+! Tickets 2201 and 2215
+
+! ticket 2201: isready operation meant we couldn't cancel the second axis
+
+def ax/x=0:360:1 xax_isready_1
+def ax/x=0:360:10 xax_isready_2
+let a = x[gx=xax_isready_1]
+say `a,r=title`
+ !-> MESSAGE/CONTINUE X[GX=XAX_ISREADY_1]
+X[GX=XAX_ISREADY_1]
+let b = a[gx=xax_isready_2]
+load b
+say `b,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+
+can var a
+can axis xax_isready_1
+can var b
+can axis xax_isready_2
+
+! Ticket 2215, only with an unreleased Ferret; the first fix to 2201.
+
+let a = x[gx=1:3:1]
+let b = a - a[gx=a]
+let c = 1
+let/unit="m" f = b*c
+say `f,r=isready`
+ !-> MESSAGE/CONTINUE 1
+1
+
+say `f,r=unit`
+ !-> MESSAGE/CONTINUE m
+m
+*** Running test: bn_append_dsg.jnl
+! bn_append_dsg.jnl
+!From SOCAT 3: appending to a dsg file where the new variable is on the obs
+! dimension. THe file has no coordinate variable, and we want to keep it that way.
+! Ferret needs to detect the dimension-only axis and keep it as-is. Do not upcase,
+! do not write a coordinate variable.
+!
+! Contains the metadata variables, global attributes, and incoming variables.
+! Where we recompute some of the incoming variables and append them to the file,
+! the values in the file are replaced.
+!
+! Argument is a file name; the single-cruise dsg file from the data entry
+!
+! We append more variables to the file, using the same obs dimension.
+
+sp rm test_save_dsg.nc
+sp cp test_save_dsg_in.nc test_save_dsg.nc
+
+use test_save_dsg.nc
+
+! Lon in 0-360
+let/title="longitude"/units="degrees_east" lon360 = IF longitude LT 0 THEN longitude+360 else longitude
+define attribute/output lon360.ioos_category = "Location"
+define attribute/output lon360.standard_name = "Longitude"
+define attribute/output lon360.history = "added to test_save_dsg.nc"
+
+save/quiet/append/file=test_save_dsg.nc lon360
+
+! The longitude and lon360 variables should have the same lowercase (obs) dimension.
+
+sp ncdump -h test_save_dsg.nc
+netcdf test_save_dsg {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :History = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "CF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+}
+*** Running test: bn_global_atts.jnl
+ ! NOAA/PMEL TMAP
+ ! FERRET v6.91 (beta)
+ ! Linux 2.6.32-431.5.1.el6.x86_64 64-bit - 04/07/14
+ ! 7-Apr-14 16:41
+
+sp cp 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
+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
+netcdf global {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventions" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+sp ncdump -h global_copy.nc
+netcdf global_copy {
+dimensions:
+ trajectory = 1 ;
+ string_length = 33 ;
+ obs = 25 ;
+ char_length = 1 ;
+variables:
+ char expocode(trajectory, string_length) ;
+ expocode:cf_role = "trajectory_id" ;
+ char cruiseName(trajectory, string_length) ;
+ char vesselName(trajectory, string_length) ;
+ char scienceGroup(trajectory, string_length) ;
+ char origDataRef(trajectory, string_length) ;
+ char socatDOI(trajectory, string_length) ;
+ char socatDOIHRef(trajectory, string_length) ;
+ double rowSize(trajectory) ;
+ rowSize:sample_dimension = "obs" ;
+ rowSize:long_name = "Number of Observations" ;
+ double longitude(obs) ;
+ longitude:missing_value = -1.e+34 ;
+ longitude:_FillValue = -1.e+34 ;
+ longitude:units = "degrees_east" ;
+ longitude:long_name = "longitude" ;
+ longitude:standard_name = "longitude" ;
+ longitude:ioos_category = "Location" ;
+ double LON360(obs) ;
+ LON360:missing_value = -1.e+34 ;
+ LON360:_FillValue = -1.e+34 ;
+ LON360:long_name = "longitude" ;
+ LON360:units = "degrees_east" ;
+ LON360:ioos_category = "Location" ;
+ LON360:standard_name = "Longitude" ;
+ LON360:history = "added to test_save_dsg.nc" ;
+
+// global attributes:
+ :history = "CruiseDsgNcFile 1.0FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :featureType = "Trajectory" ;
+ :Conventions = "Some other conventionsCF-1.6" ;
+ :geospatial_lon_min = -92.77 ;
+ :geospatial_lon_max = -92.74 ;
+ :geospatial_lat_min = 20.04 ;
+ :geospatial_lat_max = 29.07 ;
+ :time_coverage_start = "2006-06-10T23:48:00Z" ;
+ :time_converage_end = "2006-06-11T00:12:00Z" ;
+}
+
+! This dataset has global attributes history and Conventions that include
+! a Ferret version and CF version that Ferret will replace.
+
+sp ncgen -o anew_global.nc anew_global.cdl
+use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.71 9-May-14
+ ..Conventions = Existing conventions note, CF-1.0
+let var = 8
+save/append/file=anew_global.nc var
+can dat/all; use anew_global.nc
+sh att .
+ attributes for dataset: ./anew_global.nc
+ ..history = Subset of etopo20,
+ FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ ..Conventions = Existing conventions note, , CF-1.6
+
+
+
+*** Running test: bn_conventions_history.jnl
+! bn_conventions_history.jnl
+! ticket 2169:
+! Write conventions CF-1.6
+! When appending to the Conventions and history
+! attribute, add the new stuff with a comma and newline.
+
+sp cp conventions_history_in.nc conventions_history.nc
+use conventions_history
+!
+! The existing global attributes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the file
+ ..Conventions = Conventions for variables named V2
+!
+! Write to the file
+let v3 = v1+v2
+save/append/file=conventions_history.nc v3
+can dat/all; use conventions_history
+!
+! The new attibutes
+sh att .
+ attributes for dataset: ./conventions_history.nc
+ ..history = The history of the fileFERRET V6.93 (PyFerret 1.1.0) 5-Nov-14
+ ..Conventions = Conventions for variables named V2CF-1.6
+*** Running test: bn_center_key_labels.jnl
+! bn_center_key_labels
+! 6/2014
+!
+! Arguments to /KEY qualifier on color plots
+! /CENTERLABEL for label between lines on colorbar
+! /HORIZONTAL for horizontal key
+
+use levitus_climatology.cdf
+shade/lev=10/key=cent,horiz temp
+fill/lev=10v/key=cent temp
+
+! Ribbon plots and all three keywords: centerlab, horizontal, continuous
+let/title=xpts xpts = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,\
+16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}
+let/title=ypts ypts = { 9.04,8.67,8.96,9.29,9.18,9.42,9.43,\
+9.33,9.19,9.22,9.12,9.36,9.22,9.04,8.92,9.00,8.59,8.31,8.69,\
+8.20,8.86,7.98,7.80,8.29,7.94,8.05,7.85,7.55,7.56,6.82,7.04,\
+6.66,6.56,7.36,6.52}
+let/title=colors var = {\
+1.5,1.6,1.8,2.5,2.6,3.7,3.8,14.9,14.1,5.3,16.1,16.2,17.3,\
+17.4,8.4,8.2,9.5,9.1,10.1,10.2,12.2,12.6,1.7,1.1,5.2,5.3,\
+5.4,13.6,13.7,14.8,14.2,14.9,14.7,14.6,14.5}
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key=center,horiz,cont xpts,ypts,var
+
+! Automatically restore non-continuous key, non-center, vertical
+RIBBON/vs/line/thick/lev=(1,20,1)/fast/pal=ten_by_levels/key xpts,ypts,var
+
+! Polygons: the polymark script needs multiple key qualifiers to be in quotes.
+use coads_climatology
+def axis/x=0:360:5 xq
+def axis/y=-90:90:4 yq
+let fsst = sst[l=1,gx=xq,gy=yq]
+
+let lon = xsequence(x[gx=xq] + 0*y[gy=yq])
+let lat = xsequence(0*x[gx=xq] + y[gy=yq])
+shade/nokey/pal=white/nolab/axes=0,0,0,0 fsst ! set up
+
+go polymark poly/key="horiz,center"/title="polygons"/lev=(-inf)(4,26,1)(inf), lon, lat, xsequence(fsst), square, 0.4
+
+can data coads_climatology
+
+! Automatically restore regular handling of levels
+shade temp
+
+*** Running test: bn_wgt_transform.jnl
+! bn_wgt_transform.jnl test new @WGT transform,
+! returns weights used in the equiv. average or integral transform
+! ACM 7/2014
+
+! Define an XYT grid
+
+def axis/x=2:360:2/units=degrees_east x2
+def axis/y=-89:89:2/units=degrees_north y2
+let var = x[gx=x2] + y[gy=y2] + t[gt=month_irreg]
+let weights= var[x=@wgt,y=@wgt,t=@wgt]
+
+! Varies in y with latitude correction
+shade/l=1 weights
+
+! Sum of xy transform is the surface area of the earth, meters
+let weights= var[x=@wgt,y=@wgt]
+list/l=1 weights[i=@sum,j=@sum]
+ VARIABLE : VAR[X=@WGT,Y=@WGT]
+ LONGITUDE: 1E to 1E(361) (XY summed)
+ LATITUDE : 90S to 90N (XY summed)
+ TIME : 16-JAN 12:00
+ 5.101E+14
+
+! Varies in T because of irregular t axis
+shade/x=1 weights
+
+
+! The result t=@WGT returned in seconds
+let mywt = var[t=@wgt]
+
+let secperday = 24*3600
+list/x=1/y=1 mywt, mywt/secperday
+ TIME: 01-JAN 00:00 to 31-DEC 05:49
+ LONGITUDE: 2E
+ LATITUDE: 1N
+ Column 1: MYWT is VAR[T=@WGT]
+ Column 2: EX#2 is MYWT/SECPERDAY
+ MYWT EX#2
+16-JAN 12 / 1: 2678400. 31.00
+15-FEB 02 / 2: 2440152. 28.24
+15-MAR 17 / 3: 2678400. 31.00
+15-APR 05 / 4: 2592000. 30.00
+15-MAY 17 / 5: 2678400. 31.00
+15-JUN 05 / 6: 2592000. 30.00
+15-JUL 17 / 7: 2678400. 31.00
+15-AUG 17 / 8: 2678400. 31.00
+15-SEP 05 / 9: 2592000. 30.00
+15-OCT 17 / 10: 2678400. 31.00
+15-NOV 05 / 11: 2592000. 30.00
+15-DEC 17 / 12: 2678400. 31.00
+
+! Test reusing results. (ticket 2183)
+use gt4d011.cdf
+! The last value is a partial grid cell
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ TIME : 29-AUG-1982 16:00
+ 130.5W
+ 100
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+
+! Now load the result over a larger region
+list/y=1.5/x=130w/z=0:82/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 9 points (DEPTH (m))
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ TIME : 29-AUG-1982 16:00
+ 130.5W
+ 100
+ 5 / 1: 10.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 10.00
+ 55 / 6: 10.00
+ 65 / 7: 10.00
+ 75 / 8: 10.00
+ 85 / 9: 2.00
+
+! This finds the previous result in memory - needs to
+! reuse the correct one.
+
+list/y=1.5/x=130w/z=8:43.5/t=1-sep-1982 temp[z=@wgt]
+ VARIABLE : TEMPERATURE (deg. C)
+ weights for avg,int on Z
+ FILENAME : gt4d011.cdf
+ SUBSET : 5 points (DEPTH (m))
+ LONGITUDE: 130.5W
+ LATITUDE : 1.5N
+ TIME : 29-AUG-1982 16:00
+ 130.5W
+ 100
+ 5 / 1: 2.00
+ 15 / 2: 10.00
+ 25 / 3: 10.00
+ 35 / 4: 10.00
+ 45 / 5: 3.50
+*** Running test: bn_show_outfile.jnl
+! bn_show_outfile
+! Adding tests for SHOW/OUTFILE=
+! Previously only tests when SHOW/XML/OUTFILE=
+! Bugs in SHOW/OUTFILE reported in ticket 2194
+! 8/18/2014
+
+! test various combinations of /append and /clobber
+
+!can mode verify
+
+! show axis/outfile
+
+
+sho ax/clobber/outfile=a.txt month_irreg
+sho ax/clobber/outfile=a.txt month_irreg
+
+SAY ---------------- Just axis month_irreg
+---------------- Just axis month_irreg
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+
+show axis/append/outfile=a.txt PS*
+
+SAY ---------------- appending all axes starting with PS
+---------------- appending all axes starting with PS
+sp cat a.txt
+ name axis # pts start end
+ MONTH_IRREG TIME 12mi 16-JAN 12:00 15-DEC 17:49
+T0 = 01-JAN-0000 00:00:00
+ Axis span (to cell edges) = 365.2425 (modulo length = axis span)
+ name axis # pts start end
+ PSXT LONGITUDE 160mr 130.5E 70.5W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSXU LONGITUDE 160mr 131E 70W
+ Axis span (to cell edges) = 160 (modulo length = 360)
+ PSYT LATITUDE 100 i 28.836S 48.568N
+ Axis span (to cell edges) = 80.00004
+ PSYU LATITUDE 100 i 27.672S 50N
+ Axis span (to cell edges) = 80.2682
+ PSZT DEPTH (m) 27 i- 5 3824
+ Axis span (to cell edges) = 4149
+ PSZW DEPTH (m) 27 i- 10 4149
+ Axis span (to cell edges) = 4144
+
+! show grid/outfile
+
+use coads_climatology
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just the grid of sst
+---------------- Just the grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+! show var/outfile
+
+use coads_climatology
+let two = 2
+let myvar = sst*2
+show var/clobber/outfile=a.txt myvar, two
+
+SAY ---------------- show var output from two user vars
+---------------- show var output from two user vars
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+cancel var/all
+
+! show data/outfile
+
+show data/append/outfile=a.txt
+
+SAY ---------------- appending show data
+---------------- appending show data
+sp cat a.txt
+ MYVAR = SST*2
+ TWO = 2
+ currently SET data sets:
+ 1> ./coads_climatology.cdf (default)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+! combinations of /append and /clobber
+
+show data/clobber/outfile=a.txt
+show data/clobber/outfile=a.txt
+
+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)
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show grid/clobber/outfile=a.txt sst
+
+SAY ---------------- Just grid of sst
+---------------- Just grid of sst
+sp cat a.txt
+ GRID GSQ1
+ name axis # pts start end
+ COADSX LONGITUDE 180mr 21E 19E(379)
+ COADSY LATITUDE 90 r 89S 89N
+ normal Z
+ TIME TIME 3mr 16-JAN 06:00 17-MAR 02:58
+ normal E
+ normal F
+
+use coads_climatology
+use levitus_climatology
+
+show data/clobber/outfile=a.txt 1
+
+SAY ---------------- Just dataset 1
+---------------- Just dataset 1
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+
+show data/append/outfile=a.txt levitus_climatology
+
+SAY ---------------- appending datset 2 by name
+---------------- appending datset 2 by name
+sp cat a.txt
+ currently SET data sets:
+ 1> ./coads_climatology.cdf
+ name title I J K L M N
+ SST SEA SURFACE TEMPERATURE 1:180 1:90 ... 1:3 ... ...
+
+ currently SET data sets:
+ 2> ./levitus_climatology.cdf (default)
+ name title I J K L M N
+ TEMP TEMPERATURE 1:160 1:90 1:1 ... ... ...
+
+show grid/clobber/outfile=a.txt PS3*
+
+SAY ---------------- only showing all grids starting with PS3
+---------------- only showing all grids starting with PS3
+sp cat a.txt
+ PS3DT
+ PS3DU
+ PS3DW
+
+SAY ---------------- tests sending output of vtree to a file
+---------------- tests sending output of vtree to a file
+GO bn_vtree_outfile
+! bn_tree_outfile.jnl
+
+! 8/2014 -- demonstrate SHOW VARIABLE/TREE/OUTFILE
+
+CANCEL DATA/ALL
+! pure abstract variable -- no dataset
+let a = 1
+
+!
+show var/tree/outfile=a.txt/clobber a
+show var/tree/outfile=a.txt/clobber a
+sp cat a.txt
+ A = 1
+
+let b = 1
+let c = SIN(b)
+show var/tree/outfile=a.txt/clobber c
+sp cat a.txt
+ C = SIN(B)
+ B = 1
+
+! create dummy datasets so we'll have named file variables to play with
+let fv1 = 1
+let fvx = x[i=1:3]
+let fvz = Z[k=1:3]
+SAVE/CLOBBER/QUIET/FILE=my_file_vars.nc fv1, fvx, fvz
+SAVE/CLOBBER/QUIET/FILE=other_file_vars.nc fv1
+SAVE/CLOBBER/QUIET/FILE=another_file_vars.nc fv1
+CAN VAR/ALL
+use my_file_vars, other_file_vars, another_file_vars
+set data 1
+
+! ================
+
+! more pure abstract variables
+let a = 1
+let b = 1
+let c = SIN(b)
+go bn_vtree_outfile.sub c
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+c is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+ in default dataset my_file_vars
+ C = SIN(B)
+ B = 1
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1
+ FV1[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+a is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1
+ FVX
+ in default dataset my_file_vars
+ A = FV1 + FVX
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset my_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1
+ FV1[d=other_file_var]
+ in default dataset other_file_vars
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1
+********************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: V[D=NOEXIST]
+************************
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ V[D=NOEXIST] ?? <== UNKNOWN DATASET ******
+ V[D=NOEXIST] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN DATASET: NOVAR[D=NODSET]
+************************
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ in default dataset my_file_vars
+ NOVAR[D=NODSET] ?? <== UNKNOWN DATASET ******
+ NOVAR[D=NODSET] (unknown dataset)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ in default dataset my_file_vars
+ B = NOEXIST
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ NOEXIST (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+RESHAPE(fvx,fvz) is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FVX
+ FVZ
+ FVX[d=my_file_vars]
+ FVZ[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(FVZ)=ZPTS] + FVX
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]
+ FV1[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1z is ready and AVAILABLE
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ FV1
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(DEPTH)=ZPTS] + FVX
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FV1[d=my_file_vars]
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN AUXILIARY VARIABLE: NOEXIST
+************************
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = FV1[GZ(NOEXIST)=ZPTS] + FVX
+ NOEXIST (unknown auxiliary variable)
+ NOEXIST (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(DEPTH)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ FVZ
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(DEPTH)=ZPTS] + FVX
+ NOEXIST[GZ(DEPTH)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ DEPTH = Z[G=FVZ]+ 0*FVZ[K=1]
+ NOEXIST[GZ(DEPTH)=ZPTS] (unknown variable)
+ FVZ[d=my_file_vars]
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: NOEXIST[GZ(UNKNOWN_AUX)=ZPTS]
+************************
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX
+ in default dataset my_file_vars
+ FV1Z = NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] + FVX
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] ?? <== UNKNOWN VARIABLE ******
+ UNKNOWN_AUX (unknown auxiliary variable)
+ NOEXIST[GZ(UNKNOWN_AUX)=ZPTS] (unknown variable)
+ UNKNOWN_AUX (unknown auxiliary variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fv1 is ready and AVAILABLE
+************************
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ FV1[d=another_file_var]
+ in default dataset MY_AGG
+ FV1 (aggregate variable)
+
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+fvx is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=my_file_var]
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=other_file_var]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+ FV1[d=another_file_var]
+ in default dataset MY_UVAR_AGG
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+
+ FVX[d=my_file_vars]
+ FV1[d=other_file_vars]
+ FV1[d=another_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ILLEGAL RECURSIVE VARIABLES: P1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = P1 + S3
+ P1 = *** WARNING: RECURSIVE DEFINITION. See above
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S3 (unknown variable)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: S1
+************************
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ in default dataset MY_UVAR_AGG
+ P0 = S1 + P1
+ S1 ?? <== UNKNOWN VARIABLE ******
+ P1 = S2 + P2
+ S2 ?? <== UNKNOWN VARIABLE ******
+ P2 = S3 + P3
+ S3 ?? <== UNKNOWN VARIABLE ******
+ P3 = S1 + S3
+ S1 ?? <== UNKNOWN VARIABLE ******
+ S3 ?? <== UNKNOWN VARIABLE ******
+ S1 (unknown variable)
+ S2 (unknown variable)
+ S3 (unknown variable)
+ S1 (unknown variable)
+ S3 (unknown variable)
+ in default dataset my_file_vars
+ FV = FV1 + FV1 + FV1
+ in default dataset MY_UVAR_AGG
+ FV = FV1 + FV1 + FV1
+ FV1 (aggregate variable)
+ in default dataset other_file_vars
+ UV = FVX + FVX + FVX
+ FVX = FV1 + X[GX=FVX[D=1],I=1:3]
+ in default dataset MY_UVAR_AGG
+ UV = FVX + FVX + FVX
+ FVX (aggregate variable)
+ FVX[d=other_file_var] = FV1 + X[GX=FVX[D=1],I=1:3]
+ FVX[d=another_file_var] = 2*FV1 + X[GX=FVX[D=1],I=1:3]
+***************************
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v2 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ in default dataset MY_UVAR_AGG
+ V2 = V1 + B + A + A
+ V1 = A + B + B^2
+ A = FV1[D=1] - FV1[D=2]
+ B = C
+ C = 1
+ B = (defined above)
+ A = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+v3 is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ FV1[d=my_file_var]
+ FV1[d=other_file_var]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ in default dataset MY_UVAR_AGG
+ V3 = A + V1 + B + A + A
+ A = FV1[D=1] - FV1[D=2]
+ V1 = A + B + B^2
+ A = (defined above)
+ B = C
+ C = 1
+ B = (defined above)
+ FV1[d=my_file_vars]
+ FV1[d=other_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN VARIABLE: F
+************************
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ FV1[d=my_file_var]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ FVX[d=my_file_var]
+ in default dataset MY_UVAR_AGG
+ D = B + C
+ B = FV1[D=MY_FILE_VARS]
+ C = 1
+ A = F
+ F ?? <== UNKNOWN VARIABLE ******
+ NOEXIST ?? <== UNKNOWN VARIABLE ******
+ E = 1
+ F (unknown variable)
+ FV1[d=my_file_vars]
+ NOEXIST (unknown variable)
+ FVX[d=my_file_vars]
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is UNKNOWN GRID: A[G=NOEXIST]
+************************
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ in default dataset MY_UVAR_AGG
+ B = A[G=NOEXIST]
+ A[G=NOEXIST] (unknown grid)
+ A[G=NOEXIST] (unknown grid)
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[X=45S]
+************************
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ C = A[X=45S]
+ A[X=45S] *** WARNING: ERROR IN DEFINITION
+ A[X=45S] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[I=1,,J=2]
+************************
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ D = A[I=1,,J=2]
+ A[I=1,,J=2] *** WARNING: ERROR IN DEFINITION
+ A[I=1,,J=2] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+the problem is ERROR IN EXPRESSION: A[P=1]
+************************
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ in default dataset MY_UVAR_AGG
+ E = A[P=1]
+ A[P=1] *** WARNING: ERROR IN DEFINITION
+ A[P=1] *** WARNING: SYNTAX ERROR
+/TREE=ALL
+/TREE=USER
+/TREE=FILE
+f is ready and AVAILABLE
+************************
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ F = A[I=10]
+ A = I[I=1:5]
+ in default dataset MY_UVAR_AGG
+ A = FVZ.LONG_NAME[D=1]
+ in default dataset MY_UVAR_AGG
+ A = ..HISTORY[D=1]
+
+
+*** Running test: bn_date1900_array.jnl
+! bn_date1900_array.jnl
+! Let date1900 accept an array of date strings, returning a list
+! of coordinate values, days since 1-jan-1900.
+
+
+sh func/details date1900
+DATE1900(formatted date)
+ Convert date strings into Julian days since 1-Jan-1900
+ Axes of result:
+ X: inherited from argument(s)
+ Y: NORMAL (no axis)
+ Z: NORMAL (no axis)
+ T: NORMAL (no axis)
+ E: NORMAL (no axis)
+ F: NORMAL (no axis)
+ formatted date: dd-MMM-yy or dd-MMM-yyyy (e.g. "20-Dec-00") (none) (STRING)
+ Influence on output axes:
+ X: passed to result grid
+ Y: no influence (indicate argument limits with "[]")
+ Z: no influence (indicate argument limits with "[]")
+ T: no influence (indicate argument limits with "[]")
+ E: no influence (indicate argument limits with "[]")
+ F: no influence (indicate argument limits with "[]")
+
+! Function always worked just on one date string.
+list date1900("01-jan-2001")
+ VARIABLE : DATE1900("01-jan-2001")
+ 36890.
+
+
+! Now the argument can be an array
+let datestrings = {"01-jan-2001", "02-jan-2001", "30-Jul-2002"}
+list date1900(datestrings)
+ VARIABLE : DATE1900(DATESTRINGS)
+ SUBSET : 3 points (X)
+ 1 / 1: 36890.
+ 2 / 2: 36891.
+ 3 / 3: 37465.
+
+def axis/t/units=days/t0=1-jan-1900 taxis = date1900(datestrings)
+list t[gt=taxis]
+ VARIABLE : T
+ axis TAXIS
+ SUBSET : 3 points (TIME)
+ 01-JAN-2001 00 / 1: 36890.
+ 02-JAN-2001 00 / 2: 36891.
+ 30-JUL-2002 00 / 3: 37465.
+
+*** Running test: bn_spawn_size.jnl
+! bn_spawn_size.jnl
+! Return the size of the result of a spawn, not
+! the nominalabstract axis length.
+
+! ticket 981
+
+let files = {spawn:"ls *cdf*.jnl"}
+list files
+ VARIABLE : {SPAWN:"ls *cdf*.jnl"}
+ SUBSET : 8 points (X)
+ 1 / 1:"bn_cdf_errmsg.jnl"
+ 2 / 2:"bn_cdf.jnl"
+ 3 / 3:"bn_cdf_keepax.jnl"
+ 4 / 4:"bn_netcdf4.jnl"
+ 5 / 5:"err490_cdf_childax.jnl"
+ 6 / 6:"err491_cdf_childax.jnl"
+ 7 / 7:"err65_read_epic_cdf.jnl"
+ 8 / 8:"err667_5d_netcdf.jnl"
+say `files,return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+
+! Evaluate size without loading the variable first
+let datfiles = {spawn:"ls *.dat"}
+say `datfiles,return=isize`
+ !-> MESSAGE/CONTINUE 36
+36
+
+! expression syntax
+say `{spawn:"ls xml*.jnl"},return=isize`
+ !-> MESSAGE/CONTINUE 3
+3
+list {spawn:"ls xml*.jnl"}
+ VARIABLE : {SPAWN:"ls xml*.jnl"}
+ SUBSET : 3 points (X)
+ 1 / 1:"xml_header_script.jnl"
+ 2 / 2:"xml_use_coads.jnl"
+ 3 / 3:"xml_use_numstring.jnl"
+
+! Test variables based on output of a spawn.
+! These already worked correctly, has a grid-changing function.
+
+LET filesets = xcat({spawn:"ls *.nc"}, {spawn:"ls *.jnl"})
+say `filesets, return=isize`
+ !-> MESSAGE/CONTINUE 827
+827
+
+let files = {spawn:"ls *cdf*.jnl"}
+let name_len = strindex(files, ".sub")
+say `name_len, return=isize`
+ !-> MESSAGE/CONTINUE 8
+8
+*** Running test: bn_polygon_log.jnl
+! bn_polygon_log.jnl
+! polygon plots on a log axis need tests
+
+let xsqr = YSEQUENCE({0,.1,.1,0})
+let ysqr = YSEQUENCE({0,0,.1,.1})
+let xpts = cos(x/10) + 2
+let ypts = x/10+1
+
+! Polygon plot
+
+set view ul
+polygon/title="NOT LOG"/i=1:100 xpts+xsqr, ypts+ysqr, x*x/10
+
+! Poly/vlog and /hlog
+! (known bug: Whats up with the colorbar labels?)
+set view ur; poly/title=VLOG/i=1:100/vlog xpts+xsqr,ypts+ysqr,x*x/10
+set view ll; poly/title=HLOG/i=1:100/hlog xpts+xsqr,ypts+ysqr,x*x/10
+set view lr;poly/title=BOTH/i=1:100/vlog/hlog xpts+xsqr,ypts+ysqr,x*x/10
+
+! These are errors - log of negative values on axis
+
+set mode ignore
+
+let ybad = x/10 - 1
+let xbad = cos(x/10) + 0.8
+
+can view
+polygon/i=1:100/nolab xbad+xsqr,ybad+ysqr,x*x/10
+
+poly/i=1:100/vlog xbad+xsqr,ybad+ysqr,x*x/10
+poly/i=1:100/hlog xbad+xsqr,ybad+ysqr,x*x/10
+
+set mode/last ignore
*** Running test: bn_all_ef.jnl
SET MODE VERIFY
! bn_all_ef.jnl
@@ -75808,34 +77948,34 @@ exit
exit/command
*** Running test: bn_startupfile.jnl
- Current size of FERRET memory cache: 31 MegaWords (1 word = 4 bytes)
-PPL$XPIXEL = "1008"
-PPL$YPIXEL = "816"
+ Current size of FERRET memory cache: 31 MegaWords (1 word = 8 bytes)
+PPL$XPIXEL = "979"
+PPL$YPIXEL = "844"
BYTEORDER = "LITTLE"
-FERRET_VERSION = "6.9"
-FERRET_PLATFORM = "Linux 2.6.18-371.4.1.el5"
+FERRET_VERSION = "6.93"
+FERRET_PLATFORM = "Linux 2.6.18-398.el5"
FERRET_PRECISION = "double"
NETCDF_VERSION = "4.3.1.1 of Feb 25 2014 11:38:15 $"
FERRET_MEMORY = "31"
-SESSION_DATE = "31-Mar-14"
-SESSION_TIME = "17:30"
-SESSION_PID = "25931"
-DELTA_CPU = "0.540917"
-CLOCK_SECS = "0.32"
-CURRENT_DATE = "31-Mar-14"
-CURRENT_TIME = "17:30:10"
+SESSION_DATE = " 5-Nov-14"
+SESSION_TIME = "16:42"
+SESSION_PID = "14705"
+DELTA_CPU = "0.537918"
+CLOCK_SECS = "0.335"
+CURRENT_DATE = " 5-Nov-14"
+CURRENT_TIME = "16:42:11"
N_OPEN_DSETS = "0"
PROGRAM_NAME = "PyFerret"
LAST_GO_FILE = "./bn_startupfile.jnl"
PPL$FORMAT = "(3F10.2)"
PPL$PLTNME = "ferret.png"
PPL$TEKNME = "/dev/tty"
-PPL$XLEN = "7.750"
-PPL$YLEN = "5.750"
-PPL$XORG = "1.375"
-PPL$YORG = "1.375"
-PPL$WIDTH = "10.50"
-PPL$HEIGHT = "8.500"
+PPL$XLEN = "8.000"
+PPL$YLEN = "6.000"
+PPL$XORG = "1.200"
+PPL$YORG = "1.400"
+PPL$WIDTH = "10.20"
+PPL$HEIGHT = "8.800"
PPL$LINE_COUNT = "0"
PPL$XFACT1 = "1.000"
PPL$XOFF1 = "0.000"
@@ -75845,13 +77985,13 @@ PPL$VIEW_X = "0.000"
PPL$VIEW_Y = "0.000"
PPL$VIEW_Z = "0.000"
PPL$COMMAND_FILE = "$$MEMBUF$$"
-VP_WIDTH = "10.5"
-VP_HEIGHT = "8.5"
+VP_WIDTH = "10.2"
+VP_HEIGHT = "8.8"
PPL$SCALE = "1.0000"
-WIN_TITLE = "31-Mar-14_17:30"
+WIN_TITLE = "5-Nov-14_16:42"
VP_SCALE = "1"
-VP_RT_MARGIN = "1.375"
-VP_TOP_MARGIN = "1.375"
+VP_RT_MARGIN = "1"
+VP_TOP_MARGIN = "1.4"
VP_XLO = "0"
VP_XHI = "1"
VP_YLO = "0"
@@ -75899,4 +78039,4 @@ VP_YHI = "1"
TAUY MERIDIONAL WIND STRESS 69:71 1:100 ... 1:3 ... ...
PSI STREAM FUNCTION 69:73 1:100 ... 1:3 ... ...
-Ended at Mon Mar 31 17:30:10 PDT 2014
+Ended at Wed Nov 5 16:42:11 PST 2014
diff --git a/bench/test_results/pyferret_run_tests_ncdump b/bench/test_results/pyferret_run_tests_ncdump
index 92f2bbe..6407e3a 100644
--- a/bench/test_results/pyferret_run_tests_ncdump
+++ b/bench/test_results/pyferret_run_tests_ncdump
@@ -50,8 +50,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969 ;
@@ -75,8 +75,8 @@ variables:
MY_VAR:long_name = "T[GT=T5]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
T5 = 50757969, 50757974 ;
@@ -112,8 +112,8 @@ variables:
B:long_name = "\"one line of text\"" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -151,8 +151,8 @@ variables:
D:history = "From test_string" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
GFP3 = "" ;
@@ -186,8 +186,8 @@ variables:
B:long_name = "SAMPLEJ(YSEQUENCE({\"a\",\"b\",,\"d\",\"e\",\"f\"}),{2,,1})" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_4 = 1, 2, 3, 4 ;
@@ -256,8 +256,8 @@ variables:
V:long_name = "T[GT=MONTH_IRREG]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
MONTH_IRREG = 15.5, 45.12125, 74.7425, 105.2425, 135.7425, 166.2425,
@@ -313,8 +313,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -370,8 +370,8 @@ variables:
V:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_90 = 199 ;
@@ -425,8 +425,8 @@ variables:
T2:long_name = "Z[GZ=ZIRR]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
ZIRR = 0, 10, 40, 70 ;
@@ -473,8 +473,8 @@ variables:
V:history = "From coads_climatology" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_83 = 181, 183, 185 ;
@@ -567,8 +567,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -637,8 +637,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -688,8 +688,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -779,8 +779,8 @@ variables:
A:long_name = "T[GT=TIME]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
TIME = 0.5, 2 ;
@@ -806,8 +806,8 @@ variables:
X_:long_name_mod = "axis ABSTRACT" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title longer than 80 characters a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789" ;
data:
@@ -830,8 +830,8 @@ variables:
A:history = "From x" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
:title = "a long title, longer than the previous limit of 80 characters. Previously various buffers were set to 80, and storage in ds_title was also too short." ;
data:
@@ -857,14 +857,14 @@ variables:
A:history = "From t0_cdc" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_tab_comma_multivar.jnl
*** Running test: bn_element_functions.jnl
*** Running test: bn_long_revision_num.jnl
bn_long_revision_num.jnl --- history attribute
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
*** Running test: bn_window_title.jnl
*** Running test: bn_last_error.jnl
*** Running test: bn_deg_min.jnl
@@ -900,8 +900,8 @@ variables:
V:long_name = "X[GX=XAX] +Z[GZ=ZAX] + T[GT=TAX]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1, 2, 5, 6, 7, 8 ;
@@ -973,8 +973,8 @@ variables:
VAR_B:long_name = "my strings" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -1017,8 +1017,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX105_105 = 229 ;
@@ -1059,8 +1059,8 @@ variables:
SST:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX81_81 = 181 ;
@@ -1167,8 +1167,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 6 after CANCEL MODE upcase_output
netcdf a {
@@ -1208,8 +1208,8 @@ variables:
Elev:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 7 outtput flags to control attribute output
netcdf a {
@@ -1231,8 +1231,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -1257,8 +1257,8 @@ variables:
BB:another_attr = 6.f ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -1277,8 +1277,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -1298,8 +1298,8 @@ variables:
BB:long_name = "{3,4.5,6,7,4}" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_5 = 1, 2, 3, 4, 5 ;
@@ -1341,8 +1341,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 12 Check that settings hold for child axis.
netcdf a {
@@ -1381,8 +1381,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 13 cancel output of attributes of the variable.
netcdf a {
@@ -1419,40 +1419,40 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 14 attributes of data from ez data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX011 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float A1(XAX1_5) ;
+ double AX011(AX011) ;
+ AX011:point_spacing = "even" ;
+ AX011:axis = "X" ;
+ float A1(AX011) ;
A1:missing_value = -1.e+34f ;
A1:_FillValue = -1.e+34f ;
A1:long_name = "A1" ;
A1:three = 1.f, 2.f, 3.f ;
A1:history = "From EZ.DAT" ;
- float A2(XAX1_5) ;
+ float A2(AX011) ;
A2:missing_value = -1.e+34f ;
A2:_FillValue = -1.e+34f ;
A2:long_name = "A2" ;
A2:history = "From EZ.DAT" ;
- float A3(XAX1_5) ;
+ float A3(AX011) ;
A3:missing_value = -1.e+34f ;
A3:_FillValue = -1.e+34f ;
A3:long_name = "A3" ;
A3:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX011 = 1, 2, 3, 4, 5 ;
A1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -1463,29 +1463,29 @@ data:
bn_attributes.jnl --- 15 attributes of data from delimited data.
netcdf a {
dimensions:
- XAX1_5 = 5 ;
+ AX008 = 5 ;
variables:
- double XAX1_5(XAX1_5) ;
- XAX1_5:point_spacing = "even" ;
- XAX1_5:axis = "X" ;
- float V1(XAX1_5) ;
+ double AX008(AX008) ;
+ AX008:point_spacing = "even" ;
+ AX008:axis = "X" ;
+ float V1(AX008) ;
V1:missing_value = -1.e+34f ;
V1:_FillValue = -1.e+34f ;
V1:long_name = "V1" ;
V1:strval = "2" ;
V1:history = "From EZ.DAT" ;
- float V4(XAX1_5) ;
+ float V4(AX008) ;
V4:missing_value = -1.e+34f ;
V4:_FillValue = -1.e+34f ;
V4:long_name = "V4" ;
V4:history = "From EZ.DAT" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
- XAX1_5 = 1, 2, 3, 4, 5 ;
+ AX008 = 1, 2, 3, 4, 5 ;
V1 = 0.006, 0.355, 0.41, 0.435, 0.478 ;
@@ -1507,8 +1507,8 @@ variables:
A:four = "theory" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -1553,8 +1553,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
:simulation = "K-Bay OAR3d model (200m)" ;
:start_date = "980105000000" ;
:option = 0 ;
@@ -1660,8 +1660,8 @@ variables:
TEMP:units = "deg. C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
:dt_internal = 15. ;
}
bn_attributes.jnl --- 19 scale and offset attr.
@@ -1702,8 +1702,8 @@ variables:
ELEV:history = "From err491_attval" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XC = -135.50957036625, -135.496120344706, -135.482670323162,
@@ -1785,8 +1785,8 @@ variables:
RIGUE:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
J = 2, 4, 6 ;
@@ -1822,8 +1822,8 @@ variables:
B:long_name = "hello" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
B = 1 ;
@@ -1862,8 +1862,8 @@ variables:
VWND:units = "M/S" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -1913,8 +1913,8 @@ variables:
T2:history = "From coads_vwnd" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
COADSX90_91 = 199, 201 ;
@@ -1972,8 +1972,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2017,8 +2017,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2060,8 +2060,8 @@ variables:
T2:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2095,8 +2095,8 @@ variables:
TEMP:units = "DEG C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2129,8 +2129,8 @@ variables:
TWO:history = "From levitus_climatology" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 27 attributes of user-defined axes
netcdf string4d {
@@ -2159,8 +2159,8 @@ variables:
AXY:long_name = "RESHAPE (A,RVAR)" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- 28 Define a new global attribute
bn_attributes.jnl --- 29 SET ATT/OUTPUT=all for global attrs and a var
@@ -2188,8 +2188,8 @@ variables:
BROILED:history = "From test0" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
:glob = "Global attribute" ;
:FERRET_comment = "File written via LAS. Attributes are inherited from originating dataset" ;
data:
@@ -2249,8 +2249,8 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2294,8 +2294,8 @@ variables:
FAREN:history = "From gt4d011" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_transforms.jnl
*** Running test: bn_variance.jnl
@@ -2335,8 +2335,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -2365,8 +2365,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -2395,8 +2395,8 @@ variables:
A:long_name = "X[GX=XAX]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX = 1.5, 3, 6, 8.5 ;
@@ -2448,8 +2448,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2490,8 +2490,8 @@ variables:
TEMP:units = "Deg C" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
@@ -2508,8 +2508,8 @@ variables:
V:long_name = "Y[GY=YAXIS]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_no_valid_on_plot.jnl
*** Running test: bn_median.jnl
@@ -2517,12 +2517,12 @@ variables:
err611_set_var_ez.jnl ---
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX002 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_ASC(XAX1_3) ;
+ double AX002(AX002) ;
+ AX002:point_spacing = "even" ;
+ AX002:axis = "X" ;
+ float MY_ASC(AX002) ;
MY_ASC:missing_value = 3.f ;
MY_ASC:_FillValue = 3.f ;
MY_ASC:long_name = "chlorophyll" ;
@@ -2530,17 +2530,17 @@ variables:
MY_ASC:history = "From dat.dat" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
netcdf a {
dimensions:
- XAX1_3 = 3 ;
+ AX002 = 3 ;
variables:
- double XAX1_3(XAX1_3) ;
- XAX1_3:point_spacing = "even" ;
- XAX1_3:axis = "X" ;
- float MY_UNF(XAX1_3) ;
+ double AX002(AX002) ;
+ AX002:point_spacing = "even" ;
+ AX002:axis = "X" ;
+ float MY_UNF(AX002) ;
MY_UNF:missing_value = 5.f ;
MY_UNF:_FillValue = 5.f ;
MY_UNF:long_name = "Some Unformatted input" ;
@@ -2548,8 +2548,8 @@ variables:
MY_UNF:history = "From unf.dat" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_attributes.jnl --- SET VAR/OUTTYPE for user variable
netcdf a {
@@ -2565,8 +2565,8 @@ variables:
A:long_name = "{1.1,2.2,3.3}" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_3 = 1, 2, 3 ;
@@ -2586,8 +2586,8 @@ variables:
A:long_name = "{ 3.77, 4.00, 4.10, 4.33, 4.38, 4.27, 4.31, 4.40, 4.75, 5.01, 5.27, 5.52}" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
data:
XAX1_12 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ;
@@ -2605,50 +2605,51 @@ data:
netcdf a {
dimensions:
XAX1_10 = 10 ;
- TDAY = UNLIMITED ; // (31 currently)
- LON1_5 = 5 ;
- LAT1_5 = 5 ;
+ tday = UNLIMITED ; // (31 currently)
+ lon1_5 = 5 ;
+ lat1_5 = 5 ;
bnds = 2 ;
- ZT = 10 ;
- TIME1478 = 3 ;
+ zt = 10 ;
+ time1478 = 3 ;
variables:
double XAX1_10(XAX1_10) ;
XAX1_10:point_spacing = "even" ;
XAX1_10:axis = "X" ;
- double TDAY(TDAY) ;
- TDAY:units = "days since 1998-12-31 00:00:00" ;
- TDAY:axis = "T" ;
- TDAY:calendar = "GREGORIAN" ;
- TDAY:time_origin = "31-DEC-1998" ;
- TDAY:standard_name = "time" ;
- double MyUpperLowerCaseVar(TDAY, XAX1_10) ;
+ double tday(tday) ;
+ tday:units = "days since 1998-12-31 00:00:00" ;
+ tday:axis = "T" ;
+ tday:calendar = "GREGORIAN" ;
+ tday:time_origin = "31-DEC-1998" ;
+ tday:standard_name = "time" ;
+ double MyUpperLowerCaseVar(tday, XAX1_10) ;
MyUpperLowerCaseVar:missing_value = -1.e+34 ;
MyUpperLowerCaseVar:_FillValue = -1.e+34 ;
MyUpperLowerCaseVar:long_name = "X[X=1:10] + T[GT=TDAY]" ;
- double LON1_5(LON1_5) ;
- LON1_5:point_spacing = "even" ;
- LON1_5:axis = "X" ;
- LON1_5:standard_name = "longitude" ;
- double LAT1_5(LAT1_5) ;
- LAT1_5:point_spacing = "uneven" ;
- LAT1_5:axis = "Y" ;
- LAT1_5:standard_name = "latitude" ;
- LAT1_5:bounds = "LAT1_5_bnds" ;
- double LAT1_5_bnds(LAT1_5, bnds) ;
- float ZT(ZT) ;
- ZT:units = "meters" ;
- ZT:positive = "down" ;
- ZT:point_spacing = "uneven" ;
- ZT:axis = "Z" ;
- ZT:standard_name = "depth" ;
- ZT:bounds = "ZT_bnds" ;
- float ZT_bnds(ZT, bnds) ;
- double TIME1478(TIME1478) ;
- TIME1478:calendar = "NOLEAP" ;
- TIME1478:point_spacing = "even" ;
- TIME1478:axis = "T" ;
- TIME1478:standard_name = "time" ;
- double newvar(TIME1478, ZT, LAT1_5, LON1_5) ;
+ double lon1_5(lon1_5) ;
+ lon1_5:point_spacing = "even" ;
+ lon1_5:axis = "X" ;
+ lon1_5:standard_name = "longitude" ;
+ double lat1_5(lat1_5) ;
+ lat1_5:point_spacing = "uneven" ;
+ lat1_5:axis = "Y" ;
+ lat1_5:standard_name = "latitude" ;
+ lat1_5:bounds = "lat1_5_bnds" ;
+ double lat1_5_bnds(lat1_5, bnds) ;
+ float zt(zt) ;
+ zt:long_name = "zt" ;
+ zt:units = "meters" ;
+ zt:positive = "down" ;
+ zt:point_spacing = "uneven" ;
+ zt:axis = "Z" ;
+ zt:standard_name = "depth" ;
+ zt:bounds = "zt_bnds" ;
+ float zt_bnds(zt, bnds) ;
+ double time1478(time1478) ;
+ time1478:calendar = "NOLEAP" ;
+ time1478:axis = "T" ;
+ time1478:point_spacing = "even" ;
+ time1478:standard_name = "time" ;
+ double newvar(time1478, zt, lat1_5, lon1_5) ;
newvar:missing_value = -999. ;
newvar:_FillValue = -999. ;
newvar:long_name = "outgoing longwave radiation" ;
@@ -2656,8 +2657,8 @@ variables:
newvar:history = "From a" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_cdf_keepax.jnl
*** Running test: bn_keep_axisnames.jnl
@@ -2685,8 +2686,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_keep_axisnames.jnl --- without /KEEP_AXISNAMES
netcdf a {
@@ -2712,8 +2713,8 @@ variables:
A:long_name = "X[GX=X100] + T[GT=T31]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_key_label_minmax.jnl
*** Running test: bn62_bug_fixes.jnl
@@ -2817,8 +2818,8 @@ variables:
ZUP:long_name = "Z[GZ=ZAXUP]" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Convert forms of DEG, degrees to degrees_east:
netcdf a {
@@ -2849,8 +2850,8 @@ variables:
Y_:long_name_mod = "axis YFIFTEEN" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
bn_axis_cf.jnl, Downcase units, e.g. in time axis DAYS since
netcdf a {
@@ -2882,8 +2883,8 @@ variables:
XYTVAR:history = "From bn_strides" ;
// global attributes:
- :history = "FERRET V6.9 (PyFerret 1.0.2) 31-Mar-14" ;
- :Conventions = "CF-1.0" ;
+ :history = "FERRET V6.93 (PyFerret 1.1.0) 5-Nov-14" ;
+ :Conventions = "CF-1.6" ;
}
*** Running test: bn_repeated_coords.jnl
*** Running test: bn_xml_header.jnl
@@ -2922,5 +2923,15 @@ variables:
*** Running test: bn_enter_exit_GO.jnl
*** Running test: bn_stddev.jnl
*** Running test: bn_set_axis_name.jnl
+*** Running test: bn691_bug_fixes.jnl
+*** Running test: bn_append_dsg.jnl
+*** Running test: bn_global_atts.jnl
+*** Running test: bn_conventions_history.jnl
+*** Running test: bn_center_key_labels.jnl
+*** Running test: bn_wgt_transform.jnl
+*** Running test: bn_show_outfile.jnl
+*** Running test: bn_date1900_array.jnl
+*** Running test: bn_spawn_size.jnl
+*** Running test: bn_polygon_log.jnl
*** Running test: bn_all_ef.jnl
*** Running test: bn_startupfile.jnl
diff --git a/bench/test_results/startup_tests2.pdf b/bench/test_results/startup_tests2.pdf
index 48b5c14..365c8a5 100644
Binary files a/bench/test_results/startup_tests2.pdf and b/bench/test_results/startup_tests2.pdf differ
diff --git a/bench/test_results/timetics.pdf b/bench/test_results/timetics.pdf
index 1461827..0f6cd34 100644
Binary files a/bench/test_results/timetics.pdf and b/bench/test_results/timetics.pdf differ
diff --git a/bench/test_results/timetics2.pdf b/bench/test_results/timetics2.pdf
index d02be64..1824830 100644
Binary files a/bench/test_results/timetics2.pdf and b/bench/test_results/timetics2.pdf differ
diff --git a/bench/test_results/vec_curv.pdf b/bench/test_results/vec_curv.pdf
index d6756a0..d6ccf4b 100644
Binary files a/bench/test_results/vec_curv.pdf and b/bench/test_results/vec_curv.pdf differ
diff --git a/bench/test_results/vec_curv2.pdf b/bench/test_results/vec_curv2.pdf
index be1b9c6..1e5a8e8 100644
Binary files a/bench/test_results/vec_curv2.pdf and b/bench/test_results/vec_curv2.pdf differ
diff --git a/bench/test_results/viewaxes.pdf b/bench/test_results/viewaxes.pdf
index 459e835..b37aa16 100644
Binary files a/bench/test_results/viewaxes.pdf and b/bench/test_results/viewaxes.pdf differ
diff --git a/bench/test_save_dsg_in.nc b/bench/test_save_dsg_in.nc
new file mode 100644
index 0000000..948e1d1
Binary files /dev/null and b/bench/test_save_dsg_in.nc differ
diff --git a/bin/Finstall b/bin/Finstall
index 23f7b47..5b16ec4 100755
--- a/bin/Finstall
+++ b/bin/Finstall
@@ -210,6 +210,7 @@ get_python_vars() {
write_log_message() {
# Sanity check
if [ -z "${fer_dir}" ]; then
+ echo " "
echo " Unexpected script error: fer_dir not defined in write_log_message "
exit 1
fi
@@ -217,11 +218,12 @@ write_log_message() {
# Create Finstall.log file if it does not exist
logfile="${fer_dir}/bin/Finstall.log"
if [ ! -f "${logfile}" ]; then
- echo " Creating Finstall.log in ${fer_dir}/bin "
timestamp=`/bin/date +' %D %T'`
if ! echo "${timestamp} Created Finstall.log " > "${logfile}" ; then
return 1
fi
+ echo " "
+ echo " Created Finstall.log in ${fer_dir}/bin "
fi
timestamp=`/bin/date +' %D %T'`
@@ -232,16 +234,16 @@ write_log_message() {
### Edit the ferret_paths_template.{csh,sh} files to create the ferret_paths.{csh,sh} files
-### and edit the pyferret_template.{csh,sh} files to create the pyferret.{csh.sh} files.
+### and edit the pyferret_template file to create the pyferret file.
create_ferret_paths_and_pyferret() {
# Check for existing ferret_paths.csh
if [ -f "${ferpaths_dir}/ferret_paths.csh" ]; then
if mv -f "${ferpaths_dir}/ferret_paths.csh" "${ferpaths_dir}/ferret_paths.csh.old"; then
+ write_log_message "Renamed existing ${ferpaths_dir}/ferret_paths.csh"
+ write_log_message " to ${ferpaths_dir}/ferret_paths.csh.old"
echo " "
echo " Renamed existing ${ferpaths_dir}/ferret_paths.csh "
echo " to ${ferpaths_dir}/ferret_paths.csh.old "
- write_log_message "Renamed existing ${ferpaths_dir}/ferret_paths.csh"
- write_log_message " to ${ferpaths_dir}/ferret_paths.csh.old"
fi
fi
# Create new ferret_paths.csh
@@ -249,24 +251,28 @@ create_ferret_paths_and_pyferret() {
setenv FER_DIR \"${fer_dir}\"" \
-e "/setenv FER_DSETS/c\\
setenv FER_DSETS \"${fer_dsets}\"" \
+ -e "/set python_exe = /c\\
+set python_exe = \"${python_executable}\"" \
+ -e "/set python_subdir = /c\\
+set python_subdir = \"${python_subdirectory}\"" \
"${fer_dir}/bin/ferret_paths_template.csh" \
> "${ferpaths_dir}/ferret_paths.csh" ; then
+ write_log_message "Created ${ferpaths_dir}/ferret_paths.csh"
echo " "
echo " Created ${ferpaths_dir}/ferret_paths.csh "
- write_log_message "Created ${ferpaths_dir}/ferret_paths.csh"
else
+ write_log_message "Unable to create ${ferpaths_dir}/ferret_paths.csh"
echo " "
echo " Unable to create ${ferpaths_dir}/ferret_paths.csh "
- write_log_message "Unable to create ${ferpaths_dir}/ferret_paths.csh"
fi
# Check for existing ferret_paths.sh
if [ -f "${ferpaths_dir}/ferret_paths.sh" ]; then
if mv -f "${ferpaths_dir}/ferret_paths.sh" "${ferpaths_dir}/ferret_paths.sh.old"; then
+ write_log_message "Renamed existing ${ferpaths_dir}/ferret_paths.sh"
+ write_log_message " to ${ferpaths_dir}/ferret_paths.sh.old"
echo " "
echo " Renamed existing ${ferpaths_dir}/ferret_paths.sh "
echo " to ${ferpaths_dir}/ferret_paths.sh.old "
- write_log_message "Renamed existing ${ferpaths_dir}/ferret_paths.sh"
- write_log_message " to ${ferpaths_dir}/ferret_paths.sh.old"
fi
fi
# Create new ferret_paths.sh
@@ -274,112 +280,89 @@ setenv FER_DSETS \"${fer_dsets}\"" \
export FER_DIR=\"${fer_dir}\"" \
-e "/export FER_DSETS=/c\\
export FER_DSETS=\"${fer_dsets}\"" \
+ -e "/python_exe=/c\\
+python_exe=\"${python_executable}\"" \
+ -e "/python_subdir=/c\\
+python_subdir=\"${python_subdirectory}\"" \
"${fer_dir}/bin/ferret_paths_template.sh" \
> "${ferpaths_dir}/ferret_paths.sh" ; then
+ write_log_message "Created ${ferpaths_dir}/ferret_paths.sh"
echo " "
echo " Created ${ferpaths_dir}/ferret_paths.sh "
- write_log_message "Created ${ferpaths_dir}/ferret_paths.sh"
else
+ write_log_message "Unable to create ${ferpaths_dir}/ferret_paths.sh"
echo " "
echo " Unable to create ${ferpaths_dir}/ferret_paths.sh"
- write_log_message "Unable to create ${ferpaths_dir}/ferret_paths.sh"
fi
# Check for existing ferret_paths
if [ -f "${ferpaths_dir}/ferret_paths" ]; then
if mv -f "${ferpaths_dir}/ferret_paths" "${ferpaths_dir}/ferret_paths.old"; then
+ write_log_message "Renamed existing ${ferpaths_dir}/ferret_paths"
+ write_log_message " to ${ferpaths_dir}/ferret_paths.old"
echo " "
echo " Renamed existing ${ferpaths_dir}/ferret_paths "
echo " to ${ferpaths_dir}/ferret_paths.old "
- write_log_message "Renamed existing ${ferpaths_dir}/ferret_paths"
- write_log_message " to ${ferpaths_dir}/ferret_paths.old"
fi
fi
# Link ferret_paths to the appropriate file
if [ -n "${ferpaths_link}" ]; then
if ( cd "${ferpaths_dir}" ; ln -s "${ferpaths_link}" "ferret_paths" ) ; then
+ write_log_message "Created ${ferpaths_dir}/ferret_paths"
+ write_log_message " as a link to ${ferpaths_link}"
echo " "
echo " Created ${ferpaths_dir}/ferret_paths "
echo " as a link to ${ferpaths_link} "
- write_log_message "Created ${ferpaths_dir}/ferret_paths"
- write_log_message " as a link to ${ferpaths_link}"
else
+ write_log_message "Unable to create ${ferpaths_dir}/ferret_paths"
echo " "
echo " Unable to create ${ferpaths_dir}/ferret_paths "
- write_log_message "Unable to create ${ferpaths_dir}/ferret_paths"
fi
fi
-# Check for existing pyferret.csh
+# Check for existing pyferret.csh and move it out of the way
if [ -f "${fer_dir}/bin/pyferret.csh" ]; then
if mv -f "${fer_dir}/bin/pyferret.csh" "${fer_dir}/bin/pyferret.csh.old"; then
+ write_log_message "Renamed existing ${fer_dir}/bin/pyferret.csh"
+ write_log_message " to ${fer_dir}/bin/pyferret.csh.old"
echo " "
echo " Renamed existing ${fer_dir}/bin/pyferret.csh "
echo " to ${fer_dir}/bin/pyferret.csh.old "
- write_log_message "Renamed existing ${fer_dir}/bin/pyferret.csh"
- write_log_message " to ${fer_dir}/bin/pyferret.csh.old"
fi
fi
-# Create new pyferret.csh
- if sed -e "/set python_exe = /c\\
-set python_exe = \"${python_executable}\"" \
- -e "/set python_subdir = /c\\
-set python_subdir = \"${python_subdirectory}\"" \
- "${fer_dir}/bin/pyferret_template.csh" \
- > "${fer_dir}/bin/pyferret.csh" ; then
- chmod +x "${fer_dir}/bin/pyferret.csh"
- echo " "
- echo " Created executable script ${fer_dir}/bin/pyferret.csh "
- write_log_message "Created executable script ${fer_dir}/bin/pyferret.csh"
- else
- echo " "
- echo " Unable to create ${fer_dir}/bin/pyferret.csh "
- write_log_message "Unable to create ${fer_dir}/bin/pyferret.csh"
- fi
-# Check for existing pyferret.sh
+# Check for existing pyferret.sh and move it out of the way
if [ -f "${fer_dir}/bin/pyferret.sh" ]; then
if mv -f "${fer_dir}/bin/pyferret.sh" "${fer_dir}/bin/pyferret.sh.old"; then
+ write_log_message "Renamed existing ${fer_dir}/bin/pyferret.sh"
+ write_log_message " to ${fer_dir}/bin/pyferret.sh.old"
echo " "
echo " Renamed existing ${fer_dir}/bin/pyferret.sh "
echo " to ${fer_dir}/bin/pyferret.sh.old "
- write_log_message "Renamed existing ${fer_dir}/bin/pyferret.sh"
- write_log_message " to ${fer_dir}/bin/pyferret.sh.old"
fi
fi
-# Create new pyferret.sh
- if sed -e "/python_exe=/c\\
-python_exe=\"${python_executable}\"" \
- -e "/python_subdir=/c\\
-python_subdir=\"${python_subdirectory}\"" \
- "${fer_dir}/bin/pyferret_template.sh" \
- > "${fer_dir}/bin/pyferret.sh" ; then
- chmod +x "${fer_dir}/bin/pyferret.sh"
- echo " "
- echo " Created executable script ${fer_dir}/bin/pyferret.sh "
- write_log_message "Created executable script ${fer_dir}/bin/pyferret.sh"
- else
- echo " "
- echo " Unable to create ${fer_dir}/bin/pyferret.sh"
- write_log_message "Unable to create ${fer_dir}/bin/pyferret.sh"
- fi
# Check for existing pyferret
if [ -f "${fer_dir}/bin/pyferret" ]; then
if mv -f "${fer_dir}/bin/pyferret" "${fer_dir}/bin/pyferret.old"; then
+ write_log_message "Renamed existing ${fer_dir}/bin/pyferret"
+ write_log_message " to ${fer_dir}/bin/pyferret.old"
echo " "
echo " Renamed existing ${fer_dir}/bin/pyferret "
echo " to ${fer_dir}/bin/pyferret.old "
- write_log_message "Renamed existing ${fer_dir}/bin/pyferret"
- write_log_message " to ${fer_dir}/bin/pyferret.old"
fi
fi
-# Link pyferret to pyferret.sh, regardless of user's shell,
-# since it is run as an executable script
- if ( cd "${fer_dir}/bin" ; ln -s "pyferret.sh" "pyferret" ) ; then
+# Create new pyferret
+ if sed -e "/python_exe=/c\\
+python_exe=\"${python_executable}\"" \
+ -e "/python_subdir=/c\\
+python_subdir=\"${python_subdirectory}\"" \
+ "${fer_dir}/bin/pyferret_template" \
+ > "${fer_dir}/bin/pyferret" ; then
+ chmod +x "${fer_dir}/bin/pyferret"
+ write_log_message "Created executable script ${fer_dir}/bin/pyferret"
echo " "
- echo " Created executable script ${fer_dir}/bin/pyferret "
- write_log_message "Created executable script ${fer_dir}/bin/pyferret "
+ echo " Created executable script ${fer_dir}/bin/pyferret"
else
+ write_log_message "Unable to create ${fer_dir}/bin/pyferret"
echo " "
- echo " Unable to create executable script ${fer_dir}/bin/pyferret "
- write_log_message "Unable to create executable script ${fer_dir}/bin/pyferret "
+ echo " Unable to create ${fer_dir}/bin/pyferret"
fi
}
@@ -416,16 +399,18 @@ install_execs() {
exetar_files=`tar tzf ${ferexec_dir}/fer_executables.tar.gz`
if [ -z "${exetar_files}" ]; then
# tar should have already printed a more appropriate error message
- echo " No files found in ${ferexec_dir}/fer_executables.tar.gz "
write_log_message "No files found in ${ferexec_dir}/fer_executables.tar.gz"
+ echo " "
+ echo " No files found in ${ferexec_dir}/fer_executables.tar.gz "
return 1
fi
# Make sure the tar file is the right format
lib_files=`tar tzf ${ferexec_dir}/fer_executables.tar.gz lib`
if [ -z "${lib_files}" ]; then
- echo " Aborting - old style fer_executables.tar.gz "
write_log_message "Aborting - old style fer_executables.tar.gz"
+ echo " "
+ echo " Aborting - old style fer_executables.tar.gz "
return 1
fi
@@ -437,8 +422,9 @@ install_execs() {
if mv -f "${fer_dir}/${exefile}" "${fer_dir}/${exefile}.old" ; then
write_log_message "Renamed existing ${exefile} to ${exefile}.old"
else
- echo " Aborting - unable to rename ${fer_dir}/${exefile} "
write_log_message "Aborting - unable to rename ${exefile}"
+ echo " "
+ echo " Aborting - unable to rename ${fer_dir}/${exefile} "
return 1
fi
fi
diff --git a/bin/ferret_paths_template.csh b/bin/ferret_paths_template.csh
index 519e754..8e4d14c 100644
--- a/bin/ferret_paths_template.csh
+++ b/bin/ferret_paths_template.csh
@@ -11,26 +11,37 @@ 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"
+## set python_exe to the (optionally full-path) python executable to use
+set python_exe = PYTHON_EXECUTABLE
+
+## set python_subdir to 'python2.6' or 'python2.7'
+## whichever is appropriate for the above python executable
+set python_subdir = PYTHON_SUBDIRECTORY
+
## 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 -version" does not run from the command prompt, or
+## does not report a java 1.6.x or later (e.g., 1.7.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
+## in the bin subdirectory (ie, bin/java).
if ( ! $?JAVA_HOME ) then
- ## try some common locations;
+ ## 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"
+ else if ( -x "/usr/lib/jvm/java-1.7.0/bin/java" ) then
+ setenv JAVA_HOME "/usr/lib/jvm/java-1.7.0"
+ else if ( -x "/usr/lib/jvm/java-7/bin/java" ) then
+ setenv JAVA_HOME "/usr/lib/jvm/java-7"
+ else if ( -x "/usr/lib/jvm/java-1.6.0/bin/java" ) then
+ setenv JAVA_HOME "/usr/lib/jvm/java-1.6.0"
+ else if ( -x "/usr/lib/jvm/java-6/bin/java" ) then
+ setenv JAVA_HOME "/usr/lib/jvm/java-6"
endif
## or comment the above out and just set your own location
- # setenv JAVA_HOME "/my/java-1.6/home"
+ # setenv JAVA_HOME "/my/java/home"
endif
## =========== The remainder of this file should not need modification ===========
@@ -80,6 +91,29 @@ setenv FER_LIBS "${FER_DIR}/lib"
setenv FER_DAT "${FER_DIR}"
+## Assign the directory containing the pyferret Python package (directory)
+set pysite = "${FER_LIBS}/${python_subdir}/site-packages"
+
+## Add $pysite to the Python search path given by PYTHONPATH
+## so the pyferret package will be found.
+if ( ! $?PYTHONPATH ) then
+ setenv PYTHONPATH "${pysite}"
+else
+ if ( "${PYTHONPATH}" !~ "*${pysite}*" ) then
+ setenv PYTHONPATH "${pysite}:${PYTHONPATH}"
+ endif
+endif
+
+## Add $pysite/pyferret to the shared-object library search path given
+## by LD_LIBRARY_PATH so libpyferret.so will be found.
+if ( ! $?LD_LIBRARY_PATH ) then
+ setenv LD_LIBRARY_PATH "${pysite}/pyferret"
+else
+ if ( "${LD_LIBRARY_PATH}" !~ "*${pysite}/pyferret*" ) then
+ setenv LD_LIBRARY_PATH "${pysite}/pyferret:${LD_LIBRARY_PATH}"
+ endif
+endif
+
## 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 37bebc4..4d585d8 100644
--- a/bin/ferret_paths_template.sh
+++ b/bin/ferret_paths_template.sh
@@ -11,26 +11,37 @@ 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"
+## set python_exe to the (optionally full-path) python executable to use
+python_exe=PYTHON_EXECUTABLE
+
+## set python_subdir to 'python2.6' or 'python2.7'
+## whichever is appropriate for the above python executable
+python_subdir=PYTHON_SUBDIRECTORY
+
## 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 "java -version" does not run from the command prompt, or
+## does not report a java 1.6.x or later (e.g., 1.7.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
+## 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"
+ elif [ -x "/usr/lib/jvm/java-1.7.0/bin/java" ]; then
+ export JAVA_HOME="/usr/lib/jvm/java-1.7.0"
+ elif [ -x "/usr/lib/jvm/java-7/bin/java" ]; then
+ export JAVA_HOME="/usr/lib/jvm/java-7"
+ elif [ -x "/usr/lib/jvm/java-1.6.0/bin/java" ]; then
+ export JAVA_HOME="/usr/lib/jvm/java-1.6.0"
+ elif [ -x "/usr/lib/jvm/java-6/bin/java" ]; then
+ export JAVA_HOME="/usr/lib/jvm/java-6"
fi
## or comment the above out and just set your own location
- # export JAVA_HOME="/my/java-1.6/home"
+ # export JAVA_HOME="/my/java/home"
fi
@@ -76,11 +87,35 @@ export FER_FONTS="${FER_DIR}/ppl/fonts"
export PLOTFONTS="${FER_DIR}/ppl/fonts"
## Directory containing threddsBrowser.jar and toolsUI.jar for ThreddsBrowser
+## as well as the python2.x/site-packages directory for PyFerret Python packages
export FER_LIBS="${FER_DIR}/lib"
## Ferret directory (old)
export FER_DAT="${FER_DIR}"
+## Assign the directory containing the pyferret Python package (directory)
+pysite="${FER_LIBS}/${python_subdir}/site-packages"
+
+## Add pysite to the Python search path given by PYTHONPATH
+## so the pyferret package will be found.
+if [ -z "${PYTHONPATH}" ]; then
+ export PYTHONPATH="${pysite}"
+else
+ if ! echo "${PYTHONPATH}" | grep -q "${pysite}"; then
+ export PYTHONPATH="${pysite}:${PYTHONPATH}"
+ fi
+fi
+
+## Add $pysite/pyferret to the shared-object library search path given
+## by LD_LIBRARY_PATH so libpyferret.so will be found.
+if [ -z "${LD_LIBRARY_PATH}" ]; then
+ export LD_LIBRARY_PATH="${pysite}/pyferret"
+else
+ if ! echo "${LD_LIBRARY_PATH}" | grep -q "${pysite}/pyferret"; then
+ export LD_LIBRARY_PATH="${pysite}/pyferret:${LD_LIBRARY_PATH}"
+ fi
+fi
+
## Faddpath: a tool to quickly add paths to the search lists
Faddpath() { if [ -n "$*" ]
then
diff --git a/bin/make_executable_tar b/bin/make_executable_tar
index 6290664..dec1cde 100755
--- a/bin/make_executable_tar
+++ b/bin/make_executable_tar
@@ -2,7 +2,7 @@
# mycp needs to recursively copy subdirectories for the lib/python* directories
# verbose flag used to create info messages when running this script
-mycp="/bin/cp -v -r --preserve=timestamp"
+mycp="/bin/cp -v -R -p"
mylns="/bin/ln -v -s"
echo ""
diff --git a/bin/pyferret_template.sh b/bin/pyferret_template
similarity index 53%
rename from bin/pyferret_template.sh
rename to bin/pyferret_template
index 66a7285..a43806a 100644
--- a/bin/pyferret_template.sh
+++ b/bin/pyferret_template
@@ -6,10 +6,6 @@
## set python_exe to the (optionally full-path) python executable to use
python_exe=PYTHON_EXECUTABLE
-## set python_subdir to 'python2.6' or 'python2.7'
-## whichever is appropriate for the above python executable
-python_subdir=PYTHON_SUBDIRECTORY
-
## Make sure the FER_* environment variables are assigned
if [ -z "${FER_LIBS}" ]; then
## Either source the ferret_paths script to assign the environment variables
@@ -25,29 +21,8 @@ fi
## ==== The following should not need any modifications ====
##
-
-## Assign the directory containing the pyferret Python package (directory)
-pysite="${FER_LIBS}/${python_subdir}/site-packages"
-
-## Add pysite to the Python search path given by PYTHONPATH
-## so the pyferret package will be found.
-if [ -z "${PYTHONPATH}" ]; then
- export PYTHONPATH="${pysite}"
-else
- if ! echo "${PYTHONPATH}" | grep -q "${pysite}"; then
- export PYTHONPATH="${pysite}:${PYTHONPATH}"
- fi
-fi
-
-## Add $pysite/pyferret to the shared-object library search path given
-## by LD_LIBRARY_PATH so libpyferret.so will be found.
-if [ -z "${LD_LIBRARY_PATH}" ]; then
- export LD_LIBRARY_PATH="${pysite}/pyferret"
-else
- if ! echo "${LD_LIBRARY_PATH}" | grep -q "${pysite}/pyferret"; then
- export LD_LIBRARY_PATH="${pysite}/pyferret:${LD_LIBRARY_PATH}"
- fi
-fi
+## The pyferret assignment to PYTHONPATH and LD_LIBRARY_PATH
+## is now done in the ferret_paths script.
## Finally, execute an in-line Python script to run Ferret using the pyferret
## module. The init method explicity processes the $PYTHONSTARTUP file, if it
diff --git a/bin/pyferret_template.csh b/bin/pyferret_template.csh
deleted file mode 100644
index c8fa14f..0000000
--- a/bin/pyferret_template.csh
+++ /dev/null
@@ -1,55 +0,0 @@
-#! /bin/csh
-## This C-shell script is used to initialize and run Ferret using the
-## pyferret Python module. The intent of this script is to provide a
-## traditional Ferret interface through the pyferret module.
-
-## set python_exe to the (optionally full-path) python executable to use
-set python_exe = PYTHON_EXECUTABLE
-
-## set python_subdir to 'python2.6' or 'python2.7'
-## whichever is appropriate for the above python executable
-set python_subdir = PYTHON_SUBDIRECTORY
-
-## Make sure the FER_* environment variables are assigned
-if ( ! $?FER_LIBS ) then
-## Either source the ferret_paths script to assign the environment variables
-# source "/my/path/to/ferret_paths.csh"
-## or just throw an error if they should have already been defined
- echo "**ERROR: Ferret environment variables are not defined"
- exit 1
-##
-endif
-
-##
-## ==== The following should not need any modifications ====
-##
-
-
-## Assign the directory containing the pyferret Python package (directory)
-set pysite = "${FER_LIBS}/${python_subdir}/site-packages"
-
-## Add $pysite to the Python search path given by PYTHONPATH
-## so the pyferret package will be found.
-if ( ! $?PYTHONPATH ) then
- setenv PYTHONPATH "${pysite}"
-else
- if ( "${PYTHONPATH}" !~ "*${pysite}*" ) then
- setenv PYTHONPATH "${pysite}:${PYTHONPATH}"
- endif
-endif
-
-## Add $pysite/pyferret to the shared-object library search path given
-## by LD_LIBRARY_PATH so libpyferret.so will be found.
-if ( ! $?LD_LIBRARY_PATH ) then
- setenv LD_LIBRARY_PATH "${pysite}/pyferret"
-else
- if ( "${LD_LIBRARY_PATH}" !~ "*${pysite}/pyferret*" ) then
- setenv LD_LIBRARY_PATH "${pysite}/pyferret:${LD_LIBRARY_PATH}"
- endif
-endif
-
-## Finally, execute an in-line Python script to run Ferret using the pyferret
-## module. The init method explicity processes the $PYTHONSTARTUP file, if it
-## exists and if '-secure' was not given as a command-line argument.
-${python_exe} -i -c "import sys; import pyferret; (errval, errmsg) = pyferret.init(sys.argv[1:], True)" $*
-
diff --git a/external_functions/Makefile b/external_functions/Makefile
index 136f0a7..3228070 100644
--- a/external_functions/Makefile
+++ b/external_functions/Makefile
@@ -24,8 +24,8 @@ include ../platform_specific.mk.$(BUILDTYPE)
# Macro Definitions
#
-DIRS = contributed examples fft statistics
-MOREDIRS = contributed cmprsi_by decimate examples extrema featurecollections gridding fft las statistics tax_times
+DIRS = contributed decimate examples fft las statistics stringfcns
+MOREDIRS = contributed cmprsi_by decimate examples extrema featurecollections gridding fft las statistics stringfcns tax_times
# DIRS = contributed examples fft sort cflib closest_in_list hinterp featurecollections romea odd_formats cat statistics tax_times gridding zaxr
#
diff --git a/external_functions/cmprsi_by/Makefile b/external_functions/cmprsi_by/Makefile
index 7dcd0eb..74747b4 100644
--- a/external_functions/cmprsi_by/Makefile
+++ b/external_functions/cmprsi_by/Makefile
@@ -6,6 +6,7 @@
# *sh* 2/02 -- updated to add expndi_by_z
# *acm*2/02 -- cmprsi_by has been replaced by family of compress_by
# functions, which are internally linked.
+# acm* 4/13 -- new expndi_by_m_counts
#
#
@@ -37,7 +38,7 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
#
# all: expndi_by.so expndi_by_z.so expndi_by_t.so cmprsi_by.so expndi_by_z_counts.so
-all:
+all: expndi_by_m_counts.so
debug:
$(MAKE) "FFLAGS = $(FFLAGS) $(FFLAGS_DEBUG)" "CFLAGS = $(CFLAGS) $(CFLAGS_DEBUG)" all
diff --git a/external_functions/cmprsi_by/expndi_by_m_counts.F b/external_functions/cmprsi_by/expndi_by_m_counts.F
new file mode 100644
index 0000000..4eaf74d
--- /dev/null
+++ b/external_functions/cmprsi_by/expndi_by_m_counts.F
@@ -0,0 +1,292 @@
+*
+* expndi_by_m_counts.F
+*
+* Ansley Manke (from expndi_by_m_counts)
+* 4/2014
+*
+* Expand argument 1 by creating a 2D XE structure from it with the
+* separation between X rows given by the lengths specified in
+* argument 2. Argument 2 is a list of length N, where N is the number of
+* X rows to create, and each item in the list is the length of that
+* column (the length of the cruise or profile). Thus the X rows created
+* are "ragged" Typical use is that arg 1 is a collection of vertical casts
+* appended end-to-end and that arg 2 is the number of values in each cast.
+* The sum of the values in arg 2 is the length of argument 1.
+
+* Args 3 and 4 are constants -- the size of the X and E axes, respectively
+
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_Z_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_Z_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE expndi_by_m_counts_init(id)
+
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+
+ INTEGER id, arg
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CALL ef_set_desc(id,
+ . 'Expand arg1 into an XE grid. (split I variable into E-Rows)' )
+
+ CALL ef_set_num_args(id, 3)
+ CALL ef_set_has_vari_args(id, NO)
+ CALL ef_set_axis_inheritance_6d(id, CUSTOM, NORMAL, NORMAL,
+ . NORMAL, CUSTOM, NORMAL)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'dat')
+ CALL ef_set_arg_desc(id, arg, '1-D variable to expand')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'counts')
+ CALL ef_set_arg_desc(id, arg,
+ . '1-D list: count of values in each profile')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+ arg = 3
+ CALL ef_set_arg_name(id, arg, 'max_profile_len')
+ CALL ef_set_arg_desc(id, arg,
+ . 'I size of result (constant)')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+
+*
+* In this subroutine we define limits for custom axes.
+*
+* lo_ss lo subscript for an axis
+*
+* hi_ss hi subscript for an axis
+*
+
+ SUBROUTINE expndi_by_m_counts_custom_axes(id)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ REAL size, ene
+ integer arg, idim, ilen, ndim
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+*
+* Use utility functions to get context information about the arguments.
+*
+* output E axis size
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ ndim = 6
+ arg = 2
+ ene = 1
+ DO idim = 1, ndim
+ ilen = arg_hi_ss(idim,arg) - arg_lo_ss(idim,arg) + 1
+ IF (ene.GT.1 .AND. ilen.GT.1)
+ . CALL EF_BAIL_OUT(id, 'Arg 1 must be a 1D list')
+
+ ene = MAX(ene, FLOAT(ilen))
+ ENDDO
+
+ CALL ef_set_custom_axis(id, E_AXIS, 1.0, ene, 1.0, 'Row', NO)
+
+
+* output X axis size
+ CALL ef_get_one_val(id, ARG3, size)
+ CALL ef_set_custom_axis(id, X_AXIS, 1, size, 1., 'Obs', NO)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+*
+* In this subroutine we compute the result
+*
+ SUBROUTINE expndi_by_m_counts_compute(id, arg_1, arg_2, arg_3,
+ . result)
+
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
+
+ INTEGER id
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy,
+ . mem1loz:mem1hiz, mem1lot:mem1hit,
+ . mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy,
+ . mem2loz:mem2hiz, mem2lot:mem2hit,
+ . mem2loe:mem2hie, mem2lof:mem2hif)
+ REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy,
+ . mem3loz:mem3hiz, mem3lot:mem3hit,
+ . mem3loe:mem3hie, mem3lof:mem3hif)
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(6), res_hi_ss(6), res_incr(6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr(6,EF_MAX_ARGS)
+
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER i,j,k,l,m,n
+ INTEGER i1, j1, k1, l1, m1, n1
+ INTEGER i2, j2, k2, l2, m2, n2
+ INTEGER imax, mmax, iout, isum, mrow
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* limits on output arrays
+ imax = res_hi_ss(X_AXIS)
+ mmax = res_hi_ss(E_AXIS)
+
+* sum of counts in arg 2 must be length of x-dimension of arg1
+
+ do 20 i2 = arg_lo_ss(X_AXIS,ARG2), arg_hi_ss(X_AXIS,ARG2)
+ do 20 j2 = arg_lo_ss(Y_AXIS,ARG2), arg_hi_ss(Y_AXIS,ARG2)
+ do 20 k2 = arg_lo_ss(Z_AXIS,ARG2), arg_hi_ss(Z_AXIS,ARG2)
+ do 20 L2 = arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2)
+ do 20 n2 = arg_lo_ss(F_AXIS,ARG2), arg_hi_ss(F_AXIS,ARG2)
+ isum = 0
+ DO 10 m2 = arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS,ARG2)
+ IF (arg_2(i2,j2,k2,l2,m2,n2) .EQ. bad_flag(ARG2) .OR.
+ . INT(arg_2(i2,j2,k2,l2,m2,n2)) .LT. 0)
+ . CALL EF_BAIL_OUT(id, 'arg 2 must be non-missing counts GE zero')
+ isum = isum + INT(arg_2(i2,j2,k2,l2,m2,n2))
+ 10 CONTINUE
+ IF (isum .NE. (arg_hi_ss(X_AXIS,ARG1)-arg_lo_ss(X_AXIS,ARG1)+1) )
+ . CALL EF_BAIL_OUT(id,
+ . 'arg 2 values (counts) must sum to x-dimension length of of arg1 ')
+ 20 CONTINUE
+
+* pre-fill the entire output result with missing value flags
+* (since length of each profile may have different number of pts)
+ DO 100 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+ DO 100 m=res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ DO 100 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ DO 100 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+ DO 100 k=res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+ DO 100 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ result(i,j,k,l,m,n) = bad_flag_result
+ 100 CONTINUE
+
+* fill in the points as specified by the counts
+
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ n2 = arg_lo_ss(F_AXIS,ARG2)
+ DO 400 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ l2 = arg_lo_ss(T_AXIS,ARG2)
+ DO 400 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ k2 = arg_lo_ss(Z_AXIS,ARG2)
+ DO 400 k=res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ j2 = arg_lo_ss(Y_AXIS,ARG2)
+ DO 400 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ i2 = arg_lo_ss(X_AXIS,ARG2)
+
+ m1 = arg_lo_ss(E_AXIS,ARG1)
+ m2 = arg_lo_ss(E_AXIS,ARG2)
+
+ DO 300 m=res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+ mrow = INT( arg_2(i2,j2,k2,l2,m2,n2) )
+ DO 200 iout = 1, mrow
+ result(iout,j,k,l,m,n) = arg_1(i1,j1,k1,l1,m1,n1)
+ i1 = i1 + 1
+ 200 CONTINUE
+
+ m2 = m2 + 1
+ 300 CONTINUE
+
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ l2 = l2 + arg_incr(T_AXIS,ARG2)
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
+ n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 400 CONTINUE
+
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
diff --git a/external_functions/decimate/Makefile b/external_functions/decimate/Makefile
index d767c4c..62e4cc8 100644
--- a/external_functions/decimate/Makefile
+++ b/external_functions/decimate/Makefile
@@ -12,6 +12,7 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
#
.SUFFIXES: .so
+SUB_OBJS = piecewise_subs.o
#
# Rules
@@ -19,13 +20,14 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
.F.so:
$(F77) $(FFLAGS) -c $<
- $(LD) $(LD_DYN_FLAGS) $(SYSLIBS) $*.o -o $*.so
+ $(LD) $(LD_DYN_FLAGS) $(SUB_OBJS) $*.o $(SYSLIBS) -o $*.so
#
# Targets
#
-all: piecewise.so piecewise3.so piecewise3_z.so separate.so sample_fast_i.so sample_rows.so apply_qc.so
+#all: $(SUB_OBJS) piecewise.so piecewise3.so piecewise1.so piecewise2.so separate.so sample_fast_i.so sample_rows.so apply_qc.so sample_fast_i_str.so sample_rows.so
+all: $(SUB_OBJS) piecewise3.so separate.so separate_str.so sample_fast_i.so
debug:
$(MAKE) "FFLAGS = $(FFLAGS) -g -Ddebug" "CFLAGS = $(CFLAGS) -g -Ddebug" all
diff --git a/external_functions/decimate/separate.F b/external_functions/decimate/piecewise1.F
similarity index 51%
copy from external_functions/decimate/separate.F
copy to external_functions/decimate/piecewise1.F
index 48b3b29..8012ee0 100644
--- a/external_functions/decimate/separate.F
+++ b/external_functions/decimate/piecewise1.F
@@ -1,4 +1,4 @@
-* separate.F
+* piecewise1.F
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,8 +33,10 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
* Ansley Manke June 2013
-* Given a data variable and a ROWSIZE indicating trajectory length,
-* Insert a bad-value between trajectories.
+* implements stl2, Piecewise linear approximations of fewest line segments
+* described in http://www.computer.org/csdl/proceedings/afips/1972/5079/00/50790187.pdf
+* and a somewhat later version of the code, found at
+* http://www.netlib.org/toms/510
*
*
* In this subroutine we provide information about
@@ -72,7 +74,7 @@
*
- SUBROUTINE separate_init(id)
+ SUBROUTINE piecewise1_init(id)
IMPLICIT NONE
INCLUDE 'ferret_cmn/EF_Util.cmn'
@@ -85,30 +87,31 @@
* V
CALL ef_set_desc(id,
- . 'Insert a bad-value between features' )
+ . 'Return indices to sample from piecewise linear interpolation of 1 var' )
- CALL ef_set_num_args(id, 3)
+ CALL ef_set_num_args(id, 3)
CALL ef_set_has_vari_args(id, NO)
- CALL ef_set_axis_inheritance_6d(id, ABSTRACT, NORMAL, NORMAL,
- . NORMAL, NORMAL, NORMAL)
- CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_axis_inheritance(id, ABSTRACT, NORMAL,
+ . NORMAL, NORMAL)
+ CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
+ CALL ef_set_num_work_arrays(id, 4)
arg = 1
- CALL ef_set_arg_name(id, arg, 'A')
- CALL ef_set_arg_desc(id, arg, 'variable to sample on I axis')
- CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
+ CALL ef_set_arg_name(id, arg, 'V1')
+ CALL ef_set_arg_desc(id, arg, 'variable to sample')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
arg = 2
- CALL ef_set_arg_name(id, arg, 'Rowsize')
+ CALL ef_set_arg_name(id, arg, 'Control parameter')
CALL ef_set_arg_desc(id, arg,
- . 'array with per-feature row lengths')
- CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+ . 'Control parameter (e.g. 6 for ntol=rest=cont=1)')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
arg = 3
- CALL ef_set_arg_name(id, arg, 'FixLongitudes')
- CALL ef_set_arg_desc(id, arg,
- . '1 if A is longitudes needing modulo fixes, 0 otherwise')
- CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_arg_name(id, arg, 'Tol1')
+ CALL ef_set_arg_desc(id, arg, 'Tolerance for V1')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
* ^
* |
@@ -119,55 +122,118 @@
END
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis. The user
+* configurable information consists of the following:
+*
+* lo_ss lo subscript for an axis
+*
+* hi_ss hi subscript for an axis
+*
+ SUBROUTINE piecewise1_result_limits(id)
- SUBROUTINE separate_result_limits(id)
-
+ IMPLICIT NONE
INCLUDE 'ferret_cmn/EF_Util.cmn'
INTEGER id
* **********************************************************************
-* USER CONFIGURABLE PORTION |
-* |
-* V
+* USER CONFIGURABLE PORTION |
+* |
+* V
-* Use utility functions to get context information about the arguments.
-* indices.
+ INTEGER my_hi_i
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
+*
+* Use utility functions to get context information about the arguments.
+*
- INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr(6,EF_MAX_ARGS)
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
- INTEGER nx, nr, lo_lim, hi_lim
+ my_hi_i = arg_hi_ss(X_AXIS,1) - arg_lo_ss(X_AXIS,1) + 1
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
- nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+ CALL ef_set_axis_limits(id, X_AXIS, 1, my_hi_i)
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
-* will add a point for each row
+ RETURN
+ END
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
- nr = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1
+
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+ SUBROUTINE piecewise1_work_size(id)
- lo_lim = 1
- hi_lim = nx + nr - 1
- CALL ef_set_axis_limits(id, X_AXIS, lo_lim, hi_lim)
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INTEGER id
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+*
+* Set the work arrays, X/Y/Z/T/E/F dimensions
+*
+* ef_set_work_array_dims(id, array #,
+* xlo, ylo, zlo, tlo,
+* xhi, yhi, zhi, thi)
+*
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
+ INTEGER npts, iwork
+
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ npts = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+
+* input x-axis coordinates
+ iwork = 1
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts, 1, 1, 1)
+
+* internal computation, u1 for y1
+ iwork = 2
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts, 1, 1, 1)
+
+* internal computation, v
+ iwork = 3
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . 2*npts, 1, 1, 1)
+
+* internal computation, w
+ iwork = 4
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . 2*npts, 1, 1, 1)
* ^
* |
* USER CONFIGURABLE PORTION |
* **********************************************************************
- RETURN
+ RETURN
END
-
* In this subroutine we compute the result
*
- SUBROUTINE separate_compute(id, arg_1, arg_2, arg_3, result)
+ SUBROUTINE piecewise1_compute(id, arg_1, arg_2, arg_3,
+ . result, xpts, u1, v, w)
IMPLICIT NONE
INCLUDE 'ferret_cmn/EF_Util.cmn'
@@ -176,23 +242,34 @@
INTEGER id
REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
- . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+ . mem1lot:mem1hit)
REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
- . mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+ . mem2lot:mem2hit)
REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
- . mem3lot:mem3hit, mem3loe:mem3hie, mem3lof:mem3hif)
+ . mem3lot:mem3hit)
+
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit)
-! We just know this is on the X axis and will be passed in and out correct.y.
- REAL result(memreslox:memreshix)
+* Ignore the Y/Z/T/E/F dimensions in the work array since
+* they are not used and Fortran is column major
+
+ REAL xpts(wrk1lox:wrk1hix)
+
+ REAL u1(wrk2lox:wrk2hix)
+ REAL v(wrk3lox:wrk3hix)
+ REAL w(wrk4lox:wrk4hix)
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
* information for each variable's axes.
- INTEGER res_lo_ss(6), res_hi_ss(6), res_incr (6)
- INTEGER arg_lo_ss(6,EF_MAX_ARGS),
- . arg_hi_ss(6,EF_MAX_ARGS),
- . arg_incr (6,EF_MAX_ARGS)
+ INTEGER res_lo_ss(4),
+ . res_hi_ss(4),
+ . res_incr (4)
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
REAL bad_flag(EF_MAX_ARGS), bad_flag_result
@@ -202,53 +279,49 @@
* |
* V
- INTEGER i, i1, ir, k, m
- INTEGER nx, ne, msum, rend
- REAL fixlon, tol, nothing
- LOGICAL ifix
+ INTEGER i, k
+ INTEGER nx, nout1, ip
+ REAL val, tol, bad_y
+ CHARACTER*100 errtxt
- CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
- CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- k = res_lo_ss(Z_AXIS) ! index for unused dimensions
+* Control parameter IP
+
+ CALL ef_get_one_val(id, ARG2, val)
+ IP = INT(val)
+
+* Tolerances
+
+ CALL ef_get_one_val(id, ARG3, tol)
+
+* Set x coordinate - abstract axis.
nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
- ne = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss(E_AXIS, ARG2) + 1
-
- CALL ef_get_one_val(id, arg3, fixlon)
- ifix = (fixlon .GT. 0.8)
- tol = 200.
-
- i1 = 1
- ir = 1
- msum = 0
- DO m = arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS, ARG2)
- rend = arg_2(k,k,k,k,m,k)
- msum = msum + rend
- IF (msum .GT. nx) msum = nx+1
- DO i = i1, msum
- result(ir) = arg_1(i,k,k,k,k,k)
- IF (ir.GT.1 .AND. ifix .AND.
- . result(ir ).NE.bad_flag_result .AND.
- . result(ir-1).NE.bad_flag_result) THEN
- IF ( result(ir)-result(ir-1) .GT. tol)
- . result(ir) = result(ir) - 360.
- IF ( result(ir)-result(ir-1) .LT. -1*tol)
- . result(ir) = result(ir) + 360.
-
- ENDIF
- ir = ir + 1
- IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
- ENDDO
- i1 = msum+1
- result(ir) = bad_flag_result
- ir = ir + 1
- IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
- ENDDO
-
- 9000 RETURN
-c 999 CALL EF_BAIL_OUT(id, errtxt)
+ DO 50 i = 1, nx
+ xpts(i) = i
+ 50 CONTINUE
+
+ k = res_lo_ss(Z_AXIS) ! index for unused dimensions
+
+* STL2 modified to truncate result to next lowest integer
+
+ bad_y = bad_flag(ARG1)
+ CALL STL2(xpts, arg_1, tol, nx, bad_y, bad_flag_result,
+ . result, v, w, nout1, IP)
+ IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
+ write (errtxt,*) 'call to STL2 returns too many data', nout1
+ GOTO 999
+ ENDIF
+
+ DO 100 i = nout1+1, res_hi_ss(X_AXIS)
+ result(i,k,k,k) = bad_flag_result
+ 100 CONTINUE
+
+ RETURN
+ 999 CALL EF_BAIL_OUT(id, errtxt)
RETURN
END
diff --git a/external_functions/decimate/piecewise2.F b/external_functions/decimate/piecewise2.F
new file mode 100644
index 0000000..8c51c3d
--- /dev/null
+++ b/external_functions/decimate/piecewise2.F
@@ -0,0 +1,403 @@
+* piecewise2.F
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+
+* Ansley Manke June 2013
+* implements stl2, Piecewise linear approximations of fewest line segments
+* described in http://www.computer.org/csdl/proceedings/afips/1972/5079/00/50790187.pdf
+* and a somewhat later version of the code, found at
+* http://www.netlib.org/toms/510
+*
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE piecewise2_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+
+ INTEGER id, arg
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CALL ef_set_desc(id,
+ . 'Return indices to sample from piecewise linear interpolation of 2 vars' )
+
+ CALL ef_set_num_args(id, 5)
+ CALL ef_set_has_vari_args(id, NO)
+ CALL ef_set_axis_inheritance(id, ABSTRACT, NORMAL,
+ . NORMAL, NORMAL)
+ CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
+ CALL ef_set_num_work_arrays(id, 5)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'V1')
+ CALL ef_set_arg_desc(id, arg, '1st variable to sample')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'V2')
+ CALL ef_set_arg_desc(id, arg, '2nd variable to sample')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 3
+ CALL ef_set_arg_name(id, arg, 'Control parameter')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Control parameter (e.g. 6 for ntol=rest=cont=1)')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 4
+ CALL ef_set_arg_name(id, arg, 'Tol1')
+ CALL ef_set_arg_desc(id, arg, 'Tolerance for V1')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+ arg = 5
+ CALL ef_set_arg_name(id, arg, 'Tol2')
+ CALL ef_set_arg_desc(id, arg, 'Tolerance for V2')
+ CALL ef_set_axis_influence(id, arg, NO, NO, NO, NO)
+
+
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis. The user
+* configurable information consists of the following:
+*
+* lo_ss lo subscript for an axis
+*
+* hi_ss hi subscript for an axis
+*
+
+ SUBROUTINE piecewise2_result_limits(id)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER my_hi_i
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
+
+*
+* Use utility functions to get context information about the arguments.
+*
+
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ my_hi_i = arg_hi_ss(X_AXIS,1) - arg_lo_ss(X_AXIS,1) + 1
+
+ CALL ef_set_axis_limits(id, X_AXIS, 1, my_hi_i)
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+ SUBROUTINE piecewise2_work_size(id)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+*
+* Set the work arrays, X/Y/Z/T/E/F dimensions
+*
+* ef_set_work_array_dims(id, array #,
+* xlo, ylo, zlo, tlo,
+* xhi, yhi, zhi, thi)
+*
+
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
+ INTEGER npts, iwork
+
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ npts = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+
+* input x-axis coordinates
+ iwork = 1
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts+10, 1, 1, 1)
+
+* internal computation, u1 for y1
+ iwork = 2
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts+10, 1, 1, 1)
+
+* internal computation, u2 for y2
+ iwork = 3
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts+10, 1, 1, 1)
+
+* internal computation, v
+ iwork = 4
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . 2*npts+10, 1, 1, 1)
+
+* internal computation, w
+ iwork = 5
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . 2*npts+10, 1, 1, 1)
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+* In this subroutine we compute the result
+*
+ SUBROUTINE piecewise2_compute(id, arg_1, arg_2, arg_3, arg_4,
+ . arg_5, result, xpts, u1, u2, v, w)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
+
+ INTEGER id
+
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit)
+ REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy, mem3loz:mem3hiz,
+ . mem3lot:mem3hit)
+ REAL arg_4(mem4lox:mem4hix, mem4loy:mem4hiy, mem4loz:mem4hiz,
+ . mem4lot:mem4hit)
+ REAL arg_5(mem5lox:mem5hix, mem5loy:mem5hiy, mem5loz:mem5hiz,
+ . mem5lot:mem5hit)
+
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit)
+
+* Ignore the Y/Z/T/E/F dimensions in the work array since
+* they are not used and Fortran is column major
+
+ REAL xpts(wrk1lox:wrk1hix)
+
+ REAL u1(wrk2lox:wrk2hix)
+ REAL u2(wrk3lox:wrk3hix)
+ REAL v(wrk4lox:wrk4hix)
+ REAL w(wrk5lox:wrk5hix)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(4),
+ . res_hi_ss(4),
+ . res_incr (4)
+ INTEGER arg_lo_ss(4,EF_MAX_ARGS),
+ . arg_hi_ss(4,EF_MAX_ARGS),
+ . arg_incr (4,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER i, k
+ INTEGER nx, nout1, nout2, nmerge1, ip
+ REAL val, tol(2), bad_y
+ CHARACTER*100 errtxt
+
+ CALL ef_get_res_subscripts(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* Initialize
+ nx = 0
+ nout1 = 0
+ nout2 = 0
+ nmerge1 = 0
+
+* Control parameter IP
+
+ CALL ef_get_one_val(id, ARG3, val)
+ IP = INT(val)
+
+* Tolerances
+
+ CALL ef_get_one_val(id, ARG4, tol(1))
+
+ CALL ef_get_one_val(id, ARG5, tol(2))
+
+* Set x coordinate - abstract axis.
+
+ nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+ DO 50 i = 1, nx
+ xpts(i) = i
+ 50 CONTINUE
+
+ k = res_lo_ss(Z_AXIS) ! index for unused dimensions
+
+* Find piecewise fit for each array then merge the indices
+* Set the work arrays to 0's so we arent using spurious data.
+* If the function returns too many points, just return all indices
+
+* STL2 modified to truncate result to next lowest integer
+
+ bad_y = bad_flag(ARG1)
+ CALL STL2(xpts, arg_1, tol(1), nx, bad_y, bad_flag_result,
+ . u1, v, w, nout1, IP)
+ IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
+ nout1 = nx
+ DO 100 i = 1, nx
+ u1(i) = FLOAT(i)
+ 100 CONTINUE
+ ENDIF
+
+ DO 110 i = nout1+1, wrk2hix
+ u1(i) = 0.
+ 110 CONTINUE
+
+ bad_y = bad_flag(ARG2)
+ CALL STL2(xpts, arg_2, tol(2), nx, bad_y, bad_flag_result,
+ . u2, v, w, nout2, IP)
+ IF (nout2 .GT. res_hi_ss(X_AXIS)) THEN
+ nout2 = nx
+ DO 200 i = 1, nx
+ u2(i) = FLOAT(i)
+ 200 CONTINUE
+ ENDIF
+
+ DO 210 i = nout2+1, wrk3hix
+ u2(i) = 0.
+ 210 CONTINUE
+
+* Truncate result(j=1) to next lowest integer - its going to be
+* the set of coordinate values to sample at.
+
+ DO 300 i = 1, nout1+nout2
+ w(i) = 0.
+ 300 CONTINUE
+
+ CALL merge (u1,nout1,u2,nout2,w,nmerge1,wrk5hix)
+
+ IF ((nmerge1 .EQ. res_hi_ss(X_AXIS)) .OR.
+ . (nmerge1 .EQ. res_hi_ss(X_AXIS)+1) ) THEN
+ nmerge1 = res_hi_ss(X_AXIS) ! Returning all the data
+
+ ELSE IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
+ write (errtxt,*) 'nmerge1 too large', nmerge1
+ GOTO 999
+ ENDIF
+
+ DO 400 i = 1, nmerge1
+ result(i,k,k,k) = w(i)
+ 400 CONTINUE
+
+ DO 500 i = nmerge1+1, res_hi_ss(X_AXIS)
+ result(i,k,k,k) = bad_flag_result
+ 500 CONTINUE
+
+ RETURN
+ 999 CALL EF_BAIL_OUT(id, errtxt)
+ RETURN
+
+ END
diff --git a/external_functions/decimate/piecewise3.F b/external_functions/decimate/piecewise3.F
index f034d37..3322572 100644
--- a/external_functions/decimate/piecewise3.F
+++ b/external_functions/decimate/piecewise3.F
@@ -87,14 +87,14 @@
* V
CALL ef_set_desc(id,
- . 'Return indices to sample from piecewise linear interpolation' )
+ . 'Return indices to sample from piecewise linear interpolation of 3 vars' )
CALL ef_set_num_args(id, 7)
CALL ef_set_has_vari_args(id, NO)
CALL ef_set_axis_inheritance(id, ABSTRACT, NORMAL,
. NORMAL, NORMAL)
CALL ef_set_piecemeal_ok(id, NO, NO, NO, NO)
- CALL ef_set_num_work_arrays(id, 6)
+ CALL ef_set_num_work_arrays(id, 7)
arg = 1
CALL ef_set_arg_name(id, arg, 'V1')
@@ -218,42 +218,49 @@
CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
npts = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
-
+ npts = 2*npts
+
* input x-axis coordinates
iwork = 1
CALL ef_set_work_array_dims(id, iwork,
. 1, 1, 1, 1,
- . npts, 1, 1, 1)
+ . npts+10, 1, 1, 1)
* internal computation, u1 for y1
iwork = 2
CALL ef_set_work_array_dims(id, iwork,
. 1, 1, 1, 1,
- . npts, 1, 1, 1)
+ . npts+10, 1, 1, 1)
* internal computation, u2 for y2
iwork = 3
CALL ef_set_work_array_dims(id, iwork,
. 1, 1, 1, 1,
- . npts, 1, 1, 1)
+ . npts+10, 1, 1, 1)
* internal computation, u3 for y3
iwork = 4
CALL ef_set_work_array_dims(id, iwork,
. 1, 1, 1, 1,
- . npts, 1, 1, 1)
+ . npts+10, 1, 1, 1)
* internal computation, v
iwork = 5
CALL ef_set_work_array_dims(id, iwork,
. 1, 1, 1, 1,
- . 2*npts, 1, 1, 1)
+ . 2*npts+10, 1, 1, 1)
* internal computation, w
iwork = 6
CALL ef_set_work_array_dims(id, iwork,
. 1, 1, 1, 1,
- . 2*npts, 1, 1, 1)
+ . 2*npts+10, 1, 1, 1)
+
+* data w/o gaps
+ iwork = 7
+ CALL ef_set_work_array_dims(id, iwork,
+ . 1, 1, 1, 1,
+ . npts+10, 1, 1, 1)
* ^
* |
* USER CONFIGURABLE PORTION |
@@ -266,7 +273,7 @@
* In this subroutine we compute the result
*
SUBROUTINE piecewise3_compute(id, arg_1, arg_2, arg_3, arg_4,
- . arg_5, arg_6, arg_7, result, xpts, u1, u2, u3, v, w)
+ . arg_5, arg_6, arg_7, result, xpts, u1, u2, u3, v, w, yf)
IMPLICIT NONE
INCLUDE 'ferret_cmn/EF_Util.cmn'
@@ -302,6 +309,7 @@
REAL u3(wrk4lox:wrk4hix)
REAL v(wrk5lox:wrk5hix)
REAL w(wrk6lox:wrk6hix)
+ REAL yf(wrk7lox:wrk7hix)
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
@@ -322,8 +330,8 @@
* |
* V
- INTEGER i, k
- INTEGER nx, nout1, nout2, nout3, nmerge1, nmerge2, ip
+ INTEGER i, j, k, l
+ INTEGER nx, nout1, nout2, nout3, nmerge1, nmerge2, ip, icount
REAL val, tol(3), bad_y
CHARACTER*100 errtxt
@@ -331,6 +339,14 @@
CALL ef_get_arg_subscripts(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+* Initialize
+ nx = 0
+ nout1 = 0
+ nout2 = 0
+ nout3 = 0
+ nmerge1 = 0
+ nmerge2 = 0
+
* Control parameter IP
CALL ef_get_one_val(id, ARG4, val)
@@ -353,539 +369,111 @@
k = res_lo_ss(Z_AXIS) ! index for unused dimensions
+* Find piecewise fit for each array then merge the indices
+* Set the work arrays to 0's so we arent using spurious data
+* If the function returns too many points, just return all indices
+
+
* STL2 modified to truncate result to next lowest integer
bad_y = bad_flag(ARG1)
CALL STL2(xpts, arg_1, tol(1), nx, bad_y, bad_flag_result,
. u1, v, w, nout1, IP)
IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
- write (errtxt,*) 'first call to STL2 returns too many data', nout1
- GOTO 999
+ nout1 = nx
+ DO 100 i = 1, nx
+ u1(i) = FLOAT(i)
+ 100 CONTINUE
ENDIF
+
+ DO 110 i = nout1+1, wrk2hix
+ u1(i) = 0.
+ 110 CONTINUE
bad_y = bad_flag(ARG2)
CALL STL2(xpts, arg_2, tol(2), nx, bad_y, bad_flag_result,
. u2, v, w, nout2, IP)
- IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
- write (errtxt,*) 'second call to STL2 returns too many data', nout2
- GOTO 999
+ IF (nout2 .GT. res_hi_ss(X_AXIS)) THEN
+ nout2 = nx
+ DO 200 i = 1, nx
+ u2(i) = FLOAT(i)
+ 200 CONTINUE
ENDIF
+ DO 210 i = nout2+1, wrk3hix
+ u2(i) = 0.
+ 210 CONTINUE
+
+
+* Skip over gaps in the data array, keeping good data and indices where
+* good data lies. Decimate this instead.
+
bad_y = bad_flag(ARG3)
- CALL STL2(xpts, arg_3, tol(3), nx, bad_y, bad_flag_result,
+
+ j = arg_lo_ss(Y_AXIS, ARG3)
+ k = arg_lo_ss(Z_AXIS, ARG3)
+ l = arg_lo_ss(T_AXIS, ARG3)
+
+ icount = 0
+ DO 220 i = 1, nx
+ IF (arg_3(i,j,k,l) .NE. bad_y) THEN
+ icount = icount + 1
+ xpts(icount) = xpts(i)
+ yf(icount) = arg_3(i,j,k,l)
+ ENDIF
+ 220 CONTINUE
+
+ CALL STL2(xpts, yf, tol(3), icount, bad_y, bad_flag_result,
. u3, v, w, nout3, IP)
- IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
- write (errtxt,*) 'third call to STL2 returns too many data', nout3
- GOTO 999
+ IF (nout3 .GT. res_hi_ss(X_AXIS)) THEN
+ nout3 = nx
+ DO 300 i = 1, nx
+ u3(i) = FLOAT(i)
+ 300 CONTINUE
ENDIF
+ DO 310 i = nout3+1, wrk4hix
+ u3(i) = 0.
+ 310 CONTINUE
+
* Truncate result(j=1) to next lowest integer - its going to be
* the set of coordinate values to sample at.
- DO 100 i = 1, nout1+nout2
+ DO 400 i = 1, wrk6hix
w(i) = 0.
- 100 CONTINUE
+ 400 CONTINUE
- CALL merge (u1,nout1,u2,nout2,w,nmerge1)
- IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
+ CALL merge (u1,nout1,u2,nout2,w,nmerge1,wrk6hix)
+ IF (nmerge1 .GT. res_hi_ss(X_AXIS)) THEN
write (errtxt,*) 'nmerge1 too large', nmerge1
GOTO 999
ENDIF
- DO 200 i = 1, nout1+nout2
+ DO 500 i = 1, wrk5hix
v(i) = 0.
- 200 CONTINUE
+ 500 CONTINUE
+ DO 510 i = nmerge1+1, wrk6hix
+ w(i) = 0.
+ 510 CONTINUE
- CALL merge (w,nmerge1,u3,nout3,v,nmerge2)
- IF (nout1 .GT. res_hi_ss(X_AXIS)) THEN
- write (errtxt,*) 'nmerge2 too large', nmerge2
+ CALL merge (w,nmerge1,u3,nout3,v,nmerge2,wrk5hix)
+ IF ((nmerge2 .EQ. res_hi_ss(X_AXIS)) .OR.
+ . (nmerge2 .EQ. res_hi_ss(X_AXIS)+1) ) THEN
+ nmerge2 = res_hi_ss(X_AXIS) ! Returning all the data
+ ELSE IF (nmerge2 .GT. res_hi_ss(X_AXIS)) THEN
GOTO 999
ENDIF
- DO 300 i = 1, nmerge2
+ DO 600 i = 1, nmerge2
result(i,k,k,k) = v(i)
- 300 CONTINUE
+ 600 CONTINUE
- DO 400 i = nmerge2+1, res_hi_ss(X_AXIS)
+ DO 700 i = nmerge2+1, res_hi_ss(X_AXIS)
result(i,k,k,k) = bad_flag_result
- 400 CONTINUE
+ 700 CONTINUE
RETURN
999 CALL EF_BAIL_OUT(id, errtxt)
RETURN
END
-
- SUBROUTINE STL2(X, Y, E, M, bad_y, bad_out, U, V, W, K, IP)
-
-C PIECEWISE LINEAR APPROXIMATIONS OF FEWEST
-C LINE SEGMENTS WITHIN GIVEN TOLERANCES.
-
-C X,Y,E AND M CONTAIN INPUT DATA.
-C U,V,K AND POSSIBLY W CONTAIN OUTPUT.
-
-C IP IS A PARAMETER DETERMINING THE OPERATION
-C OF THE PROGRAM.
-
-C X AND Y ARE INPUT DATA ARRAYS OF M ELEMENTS
-C X(I),Y(I) CONTAINS THE ITH DATA POINT.
-
-C E MAY BE A SINGLE TOLERANCE OR A TABLE OF
-C TOLERANCES DEPENDING ON THE VALUE OF IP.
-C IF E IS AN ARRAY, THEN E(I) IS THE TOLERANCE
-C ASSOCIATED WITH X(I),Y(I) AND E MUST CONTAIN
-C M NONNEGATIVE ELEMENTS.
-
-C U AND V ARE OUTPUT ARRAYS OF K+1 ELEMENTS.
-C U IS A PARTITION OF THE INTERVAL (X(1),X(N))
-C WITH U(1)=X(1) AND U(K+1)=X(N).
-C V(I) IS AN ORDINATE TO BE ASSOCIATED WITH
-C U(I) IN THE APPROXIMATION. (IF A CONTINUOUS
-C APPROXIMATION IS REQUESTED, THEN V(I) IS
-C 'THE' ORDINATE TO BE ASSOCIATED WITH U(I).)
-
-C IF A CONTINUOUS APPROXIMATION IS REQUESTED,
-C THEN W IS NOT USED. IN THIS CASE THE ITH
-C APPROXIMATING SEGMENT IS THE STRAIGHT LINE
-C FROM U(I),V(I) TO U(I+1),V(I+1).
-
-C IF A CONTINUOUS APPROXIMATION IS NOT
-C REQUESTED, THEN W IS A K-ELEMENT OUTPUT
-C ARRAY. IN THIS CASE THE ITH APPROXIMATING
-C SEGMENT IS THE STRAIGHT LINE FROM
-C U(I),W(I) TO U(I+1),V(I+1), AND V(1) IS
-C SET EQUAL TO W(1).
-
-C K IS THE NUMBER OF SEGMENTS IN THE PIECE-
-C WISE LINEAR APPROXIMATION GENERATED. IN
-C CASE OF AN ERROR RETURN, K WILL BE SET TO
-C ZERO.
-
-C THE CONTROL PARAMETER IP IS THE PRODUCT
-C OF THREE INDICATORS I1,I2 AND I3.
-C I1 INDICATES WHETHER OR NOT E IS AN
-C ARRAY OF TOLERANCES.
-C I1 = -1 INDICATES E IS AN ARRAY
-C I1 = +1 INDICATES E IS A SINGLE NUMBER.
-C I2 INDICATES WHETHER OR NOT THE
-C APPROXIMATION IS TO BE RESTRICTED TO
-C THE 'TOLERANCE BAND' ABOUT THE DATA.
-C I2 = 1 INDICATES NO BAND RESTRICTION
-C I2 = 2 INDICATES APPLY THIS RESTRICTION
-C (THE 'TOLERANCE BAND' IS A PIECEWISE
-C LINEAR BAND CENTERED AT THE DATA WHOSE
-C WIDTH IS DETERMINED BY THE TOLERANCES
-C AT THE DATA POINTS.)
-C I3 INDICATES WHETHER OR NOT THE
-C APPROXIMATION MUST BE CONTINUOUS.
-C I3 = 1 INDICATES CONTINUITY NOT REQUIRED
-C I3 = 3 INDICATES CONTINUITY IS REQUIRED
-
-C CALL STL2 (X,Y,E,M,X,Y,E,M,IP) WILL NOT
-C CAUSE PROBLEMS PROVIDED THAT
-C EITHER A CONTINUOUS APPROXIMATION IS
-C REQUESTED, OR E IS A SUFFICIENTLY LARGE
-C ARRAY.
-
-C THE PROGRAM PERFORMS THE FOLLOWING DATA
-C CHECKS. ARE THE X-VALUES IN INCREASING
-C ORDER. ARE THE TOLERANCE(S) NONNEGATIVE.
-C IS THE NUMBER OF DATA POINTS GREATER THAN
-C ONE. IF ANY CHECK FAILS, THE PROGRAM
-C RETURNS WITH K SET EQUAL TO 0. IN THIS
-C CASE NO FURTHER PROCESSING IS ATTEMPTED.
-
- IMPLICIT NONE
-* Calling arguments
- REAL X(*), Y(*), E(*), U(*), V(*), W(*), bad_y, bad_out
- INTEGER M, K, IP
-
-* Local declarations
- LOGICAL skipbad
- INTEGER N, ITCH, I, J, L, KEEP, INIT, INDC, IGRAZE,
- . IDIOT, IT, IPIV, KP
- REAL EPSLN, SGN, XEYE, YEYE, TEMP1, SMIN, DX,
- . SVX, SVY, SVMN, TEMP2, XINIT, YINIT, SLOPE, SMAX,
- . SVMX, TEST
-
- N = M
- ITCH = IP
- J = 1
-C ERROR CHECKS
- IF (N.LE.1) GO TO 400
- IF (E(1).LT.0.0) GO TO 400
- DO 10 L=2,N
- IF (X(L-1).GE.X(L)) GO TO 400
- IF (ITCH.GE.0) GO TO 10
- IF (E(L).LT.0.0) GO TO 400
- 10 CONTINUE
-C INITIALIZATION FOR ENTIRE PROGRAM
- EPSLN = E(1)
- SGN = 1.0
- KEEP = 1
- I = 1
-
- CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
- IF (skipbad) GOTO 30
-
- U(i) = X(i)
- J = 2
- INIT = 1
- INDC = 0
- GO TO 30
-C INITIALIZATION FOR EACH SEGMENT
- 20 CONTINUE
- J = J + 1
- INIT = I
- INDC = 0
- IF (IABS(ITCH).LT.3) KEEP = I
- IF (IABS(IABS(ITCH)-4).NE.2) GO TO 30
-C RESTRICTED TO TOLERANCE BAND
- XEYE = U(J-1)
- YEYE = V(J-1)
- TEMP1 = EPSLN
- IF (ITCH.LT.0) TEMP1 = TEMP1 + (SGN*E(I-1)-EPSLN)*(X(I)-U(J-1)
- * )/(X(I)-X(I-1))
- YINIT = YEYE - TEMP1 - TEMP1
- GO TO 40
- 30 CONTINUE
-C NOT RESTRICTED TO TOLERANCE BAND
- XEYE = X(I)
- YEYE = Y(I) + EPSLN
- YINIT = Y(I) - EPSLN
- IF (IABS(ITCH).EQ.1 .OR. I.EQ.1) GO TO 40
- TEMP1 = EPSLN
- IF (ITCH.LT.0) TEMP1 = SGN*E(I+1)
- SMIN = (Y(I+1)-YEYE-TEMP1)/(X(I+1)-XEYE)
- IF (ITCH.LT.0) TEMP1 = SGN*E(I-1)
- SMAX = (YEYE-Y(I-1)+TEMP1)/(XEYE-X(I-1))
-
- IF (KEEP.EQ.I-1) GO TO 50
- IT = I - 2
- XINIT = XEYE
- IPIV = I
- IGRAZE = I
- I = I + 1
-
- CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
- IF (skipbad) GOTO 30
-
- GO TO 150
- 40 CONTINUE
- IF (XEYE.GE.X(I)) I = I + 1
- IF (ITCH.LT.0) EPSLN = SGN*E(I)
- DX = X(I) - XEYE
- SMAX = (Y(I)+EPSLN-YEYE)/DX
- SMIN = (Y(I)-EPSLN-YEYE)/DX
- 50 CONTINUE
- XINIT = XEYE
- IPIV = I
- IGRAZE = I
-C DETERMINATION OF INDIVIDUAL SEGMENT
- 60 CONTINUE
- IF (I.EQ.N) GO TO 260
- I = I + 1
-
-C New i, so does it point to a bad-val?
-
- CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
- IF (skipbad) GOTO 30
-
- 70 CONTINUE
-
-C TEST FOR NEW *MAX* SLOPE
- DX = X(I) - XEYE
- IF (ITCH.LT.0) EPSLN = SGN*E(I)
- TEMP1 = (Y(I)+EPSLN-YEYE)/DX
- TEST = TEMP1 - SMAX
- IF (SGN.LE.0.0) TEST = -TEST
- IF (TEST) 80, 90, 100
- 80 CONTINUE
-C TEST FOR END OF CANDIDATE SEGMENT
- TEST = TEMP1 - SMIN
- IF (SGN.LE.0.0) TEST = -TEST
- IF (TEST.LT.0.0) GO TO 210
- SMAX = TEMP1
- 90 CONTINUE
-C TEST FOR NEW *MIN* SLOPE
- IPIV = I
- 100 CONTINUE
- TEMP2 = (Y(I)-EPSLN-YEYE)/DX
- TEST = TEMP2 - SMAX
- IF (SGN.LE.0.0) TEST = -TEST
- IF (TEST) 110, 120, 140
- 110 CONTINUE
- TEST = SMIN - TEMP2
- IF (SGN.LE.0.0) TEST = -TEST
- IF (TEST) 120, 130, 60
- 120 CONTINUE
- SMIN = TEMP2
- 130 CONTINUE
- IGRAZE = I
- GO TO 60
-C CHECK FOR PIVOT AT NEW EYE POINT
- 140 CONTINUE
- IF (XEYE.EQ.X(IPIV)) GO TO 220
- IF (ITCH.LT.0) EPSLN = SGN*E(IPIV)
- INDC = 1
- SVX = XEYE
- SVY = YEYE
- SVMN = SMIN
- SVMX = SMAX
- XEYE = X(IPIV)
- YEYE = Y(IPIV) + EPSLN
- SMIN = SMAX
- SMAX = (YINIT-YEYE)/(XINIT-XEYE)
- IF (KEEP.GE.IPIV) GO TO 170
- IT = IPIV - 1
- 150 CONTINUE
- TEMP2 = YEYE + EPSLN
- DO 160 L=KEEP,IT
- IF (ITCH.LT.0) TEMP2 = YEYE + SGN*E(L)
- TEMP1 = (Y(L)-TEMP2)/(X(L)-XEYE)
- TEST = TEMP1 - SMAX
- IF (SGN.LE.0.0) TEST = -TEST
- IF (TEST.LT.0.0) SMAX = TEMP1
- 160 CONTINUE
- 170 CONTINUE
- IF (IPIV.GE.I-1) GO TO 70
- IT = I - 2
- TEMP2 = YEYE - EPSLN
- IDIOT = IPIV
- DO 200 L=IDIOT,IT
- DX = X(L+1) - XEYE
- IF (ITCH.LT.0) TEMP2 = YEYE - SGN*E(L+1)
- TEMP1 = (Y(L+1)-TEMP2)/DX
- TEST = TEMP1 - SMAX
- IF (SGN.LE.0.0) TEST = -TEST
- IF (TEST) 180, 190, 200
- 180 CONTINUE
- SMAX = TEMP1
- 190 CONTINUE
- IPIV = L + 1
- 200 CONTINUE
- GO TO 70
-C END OF CURRENT SEGMENT
- 210 CONTINUE
- TEMP2 = SMIN
- IF (I.EQ.N) GO TO 240
- KEEP = IGRAZE
- GO TO 250
- 220 CONTINUE
- TEMP2 = SMAX
- IF (I.EQ.N) GO TO 230
- SGN = -SGN
- EPSLN = -EPSLN
- KEEP = IPIV
- GO TO 250
- 230 CONTINUE
- IF (INDC.EQ.0 .OR. XEYE.NE.X(N-1)) GO TO 240
- XEYE = SVX
- YEYE = SVY
- SMIN = SVMN
- SMAX = SVMX
- 240 CONTINUE
- U(J) = X(N-1)
- YINIT = Y(N-1)
- GO TO 270
- 250 CONTINUE
- IF (IABS(IABS(ITCH)-4).NE.2) GO TO 300
-C DETERMINE KNOT ON EDGE OF TOLERANCE BAND
- TEMP1 = 0.0
- IF (ITCH.LT.0) TEMP1 = EPSLN - SGN*E(I-1)
- TEMP1 = (Y(I)-Y(I-1)+TEMP1)/(X(I)-X(I-1))
-
- U(J) = (Y(I)+EPSLN-YEYE-TEMP1*X(I)+TEMP2*XEYE)/(TEMP2-TEMP1)
-
- GO TO 310
- 260 CONTINUE
- U(J) = X(N)
- YINIT = Y(N)
- 270 CONTINUE
-C CONTINUITY CHECK FOR LAST SEGMENT
- IF (IABS(ITCH).GE.3 .OR. INIT.EQ.1) GO TO 290
- IT = INIT - 1
- SVMX = SMAX + SGN
- TEMP2 = YEYE + EPSLN
- DO 280 L=KP,IT
- IF (ITCH.LT.0) TEMP2 = YEYE + SGN*E(L)
- TEMP1 = (Y(L)-TEMP2)/(X(L)-XEYE)
- TEST = TEMP1 - SVMX
- IF (SGN.LE.0.0) TEST = -TEST
- IF (TEST.LT.0.0) SVMX = TEMP1
- 280 CONTINUE
- IF (ABS(SVMX-SMAX+SVMX-SMIN).LE.ABS(SMAX-SMIN)) SMAX = SVMX
- 290 CONTINUE
-C NEARNESS CHECK FOR LAST SEGMENT
- TEMP2 = SMAX
- TEMP1 = YEYE + SMAX*(U(J)-XEYE)
- TEST = YINIT - TEMP1
- IF (SGN.LT.0.0) TEST = -TEST
- IF (TEST.GT.0.0) GO TO 310
- TEMP2 = SMIN
- TEMP1 = YEYE + SMIN*(U(J)-XEYE)
- TEST = YINIT - TEMP1
- IF (SGN.LT.0.0) TEST = -TEST
- IF (TEST.LT.0.0) GO TO 310
- TEMP2 = (YINIT-YEYE)/(U(J)-XEYE)
- V(J) = YINIT
- GO TO 320
- 300 CONTINUE
- IF (IABS(ITCH).GE.3) GO TO 330
- U(J) = 0.5*(X(I)+X(I-1))
- 310 CONTINUE
- V(J) = YEYE + TEMP2*(U(J)-XEYE)
- 320 CONTINUE
- IF (XEYE.NE.XINIT) GO TO 330
- IF (IABS(ITCH).EQ.2) GO TO 360
- IF (IABS(ITCH).NE.6) GO TO 330
- IF (J.LE.2) GO TO 380
- GO TO 390
- 330 CONTINUE
-C RECOMPUTATION OF KNOT FOR CONTINUITY
- IF (J.LE.2) GO TO 370
- IF (SLOPE.EQ.TEMP2) GO TO 360
- YINIT = V(J-2)
- IF (IABS(ITCH).LT.3) YINIT = W(J-2)
- TEMP1 = (XEYE*TEMP2-U(J-2)*SLOPE+YINIT-YEYE)/(TEMP2-SLOPE)
- IF (IABS(ITCH).GE.3) GO TO 350
- IF (TEMP1.GT.XINIT) GO TO 360
- TEST = ABS(EPSLN)
- IDIOT = INIT - KP
- DO 340 L=1,IDIOT
- IT = INIT - L
- IF (TEMP1.GE.X(IT)) GO TO 350
- DX = Y(IT) - YEYE - TEMP2*(X(IT)-XEYE)
- IF (ITCH.LT.0) TEST = E(IT)
- IF (ABS(DX).GT.TEST) GO TO 360
- 340 CONTINUE
- 350 CONTINUE
- U(J-1) = TEMP1
- V(J-1) = YEYE + TEMP2*(U(J-1)-XEYE)
- IF (IABS(ITCH).LT.3) W(J-1) = V(J-1)
- GO TO 390
- 360 CONTINUE
- W(J-1) = YEYE + TEMP2*(U(J-1)-XEYE)
- GO TO 390
- 370 CONTINUE
- IF (IABS(ITCH).LT.3) GO TO 360
- 380 CONTINUE
- V(1) = YEYE + TEMP2*(U(1)-XEYE)
- 390 CONTINUE
- SLOPE = TEMP2
- KP = KEEP
- IF (I.LT.N) GO TO 20
- IF (X(N).EQ.U(J)) GO TO 400
- IF (IABS(ITCH).LT.3) W(J) = V(J)
- J = J + 1
- U(J) = X(N)
- V(J) = Y(N)
- 400 CONTINUE
- IF (J.GE.2 .AND. IABS(ITCH).LT.3) V(1) = W(1)
- K = J
-
-* Truncate to integer values: indices at which to sample
-
- DO 500 I = 1, K
- u(i) = INT(u(i))
- 500 CONTINUE
-
- RETURN
- END
-
- SUBROUTINE PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j,
- . n, skipbad)
- REAL Y(*), bad_y, x(*), u(*)
- INTEGER i, j, n
- LOGICAL skipbad
-
- skipbad = .FALSE.
-
- IF ( Y(i).EQ.bad_y ) THEN
- IF (i.GT.2) THEN
- u(j) = x(i-1)
-
- IF ( j .gt. 1 .and. INT(u(j)) .LT. INT(u(j-1)) ) then
- j = j - 1
- DO WHILE (INT(u(j)) .LE. INT(u(j-1)) )
- j = j - 1
- ENDDO
- u(j) = x(i-1)
- ENDIF
- IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
-
- j = j + 1
- ENDIF
- DO WHILE ( Y(i).EQ.bad_y .AND. i.LT.n)
- i = i + 1
- ENDDO
-
- IF (i.GT.1) u(j) = x(i-1)
- IF (i.GE.n) THEN
- i = n
- u(j) = x(n)
- ENDIF
- IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
-
- j = j + 1
- u(j) = x(i)
- IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
-
- j = j + 1
- skipbad = .TRUE.
- ENDIF
-
- RETURN
- END
-
-
- subroutine merge(a,na,b,nb,c,nout)
-c http://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting/Merge_sort#Fortran
-! Normal usage: NA+NB = NC
-! B overlays C(NA+1:NC)
-
-! modified to return nout instead of assuming treating NC, length of C as known.
-
- integer NA,NB,NC
- REAL A(*), B(*), C(*)
-
- integer I,J,K
-
- I = 1
- J = 1
- K = 1
- do while(I .LE. NA .and. J .LE. NB)
- if (A(I) .LE. B(J)) then
- C(K) = A(I)
- I = I+1
- else
- C(K) = B(J)
- J = J+1
- endif
- K = K + 1
- enddo
- do while (I .LE. NA)
- C(K) = A(I)
- I = I + 1
- K = K + 1
- enddo
- do while (J .LE. NB)
- C(K) = B(J)
- J = J+1
- K = K + 1
- enddo
-
-* remove duplicates
-
- j = 1
- do i = 2, k
- IF (c(i) .GT. c(i-1)) then
- j = j + 1
- c(j) = c(i)
- endif
- enddo
- nout = j
-
- return
-
- end ! subroutine merge
diff --git a/external_functions/decimate/piecewise_subs.F b/external_functions/decimate/piecewise_subs.F
new file mode 100644
index 0000000..ba62f8d
--- /dev/null
+++ b/external_functions/decimate/piecewise_subs.F
@@ -0,0 +1,510 @@
+
+ SUBROUTINE STL2(X, Y, E, M, bad_y, bad_out, U, V, W, K, IP)
+
+C PIECEWISE LINEAR APPROXIMATIONS OF FEWEST
+C LINE SEGMENTS WITHIN GIVEN TOLERANCES.
+
+C X,Y,E AND M CONTAIN INPUT DATA.
+C U,V,K AND POSSIBLY W CONTAIN OUTPUT.
+
+C IP IS A PARAMETER DETERMINING THE OPERATION
+C OF THE PROGRAM.
+
+C X AND Y ARE INPUT DATA ARRAYS OF M ELEMENTS
+C X(I),Y(I) CONTAINS THE ITH DATA POINT.
+
+C E MAY BE A SINGLE TOLERANCE OR A TABLE OF
+C TOLERANCES DEPENDING ON THE VALUE OF IP.
+C IF E IS AN ARRAY, THEN E(I) IS THE TOLERANCE
+C ASSOCIATED WITH X(I),Y(I) AND E MUST CONTAIN
+C M NONNEGATIVE ELEMENTS.
+
+C U AND V ARE OUTPUT ARRAYS OF K+1 ELEMENTS.
+C U IS A PARTITION OF THE INTERVAL (X(1),X(N))
+C WITH U(1)=X(1) AND U(K+1)=X(N).
+C V(I) IS AN ORDINATE TO BE ASSOCIATED WITH
+C U(I) IN THE APPROXIMATION. (IF A CONTINUOUS
+C APPROXIMATION IS REQUESTED, THEN V(I) IS
+C 'THE' ORDINATE TO BE ASSOCIATED WITH U(I).)
+
+C IF A CONTINUOUS APPROXIMATION IS REQUESTED,
+C THEN W IS NOT USED. IN THIS CASE THE ITH
+C APPROXIMATING SEGMENT IS THE STRAIGHT LINE
+C FROM U(I),V(I) TO U(I+1),V(I+1).
+
+C IF A CONTINUOUS APPROXIMATION IS NOT
+C REQUESTED, THEN W IS A K-ELEMENT OUTPUT
+C ARRAY. IN THIS CASE THE ITH APPROXIMATING
+C SEGMENT IS THE STRAIGHT LINE FROM
+C U(I),W(I) TO U(I+1),V(I+1), AND V(1) IS
+C SET EQUAL TO W(1).
+
+C K IS THE NUMBER OF SEGMENTS IN THE PIECE-
+C WISE LINEAR APPROXIMATION GENERATED. IN
+C CASE OF AN ERROR RETURN, K WILL BE SET TO
+C ZERO.
+
+C THE CONTROL PARAMETER IP IS THE PRODUCT
+C OF THREE INDICATORS I1,I2 AND I3.
+C I1 INDICATES WHETHER OR NOT E IS AN
+C ARRAY OF TOLERANCES.
+C I1 = -1 INDICATES E IS AN ARRAY
+C I1 = +1 INDICATES E IS A SINGLE NUMBER.
+C I2 INDICATES WHETHER OR NOT THE
+C APPROXIMATION IS TO BE RESTRICTED TO
+C THE 'TOLERANCE BAND' ABOUT THE DATA.
+C I2 = 1 INDICATES NO BAND RESTRICTION
+C I2 = 2 INDICATES APPLY THIS RESTRICTION
+C (THE 'TOLERANCE BAND' IS A PIECEWISE
+C LINEAR BAND CENTERED AT THE DATA WHOSE
+C WIDTH IS DETERMINED BY THE TOLERANCES
+C AT THE DATA POINTS.)
+C I3 INDICATES WHETHER OR NOT THE
+C APPROXIMATION MUST BE CONTINUOUS.
+C I3 = 1 INDICATES CONTINUITY NOT REQUIRED
+C I3 = 3 INDICATES CONTINUITY IS REQUIRED
+
+C CALL STL2 (X,Y,E,M,X,Y,E,M,IP) WILL NOT
+C CAUSE PROBLEMS PROVIDED THAT
+C EITHER A CONTINUOUS APPROXIMATION IS
+C REQUESTED, OR E IS A SUFFICIENTLY LARGE
+C ARRAY.
+
+C THE PROGRAM PERFORMS THE FOLLOWING DATA
+C CHECKS. ARE THE X-VALUES IN INCREASING
+C ORDER. ARE THE TOLERANCE(S) NONNEGATIVE.
+C IS THE NUMBER OF DATA POINTS GREATER THAN
+C ONE. IF ANY CHECK FAILS, THE PROGRAM
+C RETURNS WITH K SET EQUAL TO 0. IN THIS
+C CASE NO FURTHER PROCESSING IS ATTEMPTED.
+
+ IMPLICIT NONE
+* Calling arguments
+ REAL X(*), Y(*), E(*), U(*), V(*), W(*), bad_y, bad_out
+ INTEGER M, K, IP
+
+* Local declarations
+ LOGICAL skipbad
+ INTEGER N, ITCH, I, J, L, KEEP, INIT, INDC, IGRAZE,
+ . IDIOT, IT, IPIV, KP, ilo, ihi, icount
+ REAL EPSLN, SGN, XEYE, YEYE, TEMP1, SMIN, DX,
+ . SVX, SVY, SVMN, TEMP2, XINIT, YINIT, SLOPE, SMAX,
+ . SVMX, TEST
+
+* If there is a trivial amount of data in the input array then we are done
+ ilo = 0
+ ihi = 0
+ icount = 0
+ DO i = 1, m
+ IF (y(i) .NE. bad_y) THEN
+ icount = icount + 1
+ IF (ilo .EQ. 0) ilo = i
+ ihi = i
+ ENDIF
+ ENDDO
+
+ IF (icount .LE. 2) THEN
+ k = icount
+ IF (ilo .GT. 0) u(1) = ilo
+ IF (ihi .GT. 0) u(icount) = ihi
+ GOTO 600
+ ENDIF
+
+ N = M
+ ITCH = IP
+ J = 1
+C ERROR CHECKS
+ IF (N.LE.1) GO TO 400
+ IF (E(1).LT.0.0) GO TO 400
+ DO 10 L=2,N
+ IF (X(L-1).GE.X(L)) GO TO 400
+ IF (ITCH.GE.0) GO TO 10
+ IF (E(L).LT.0.0) GO TO 400
+ 10 CONTINUE
+C INITIALIZATION FOR ENTIRE PROGRAM
+ EPSLN = E(1)
+ SGN = 1.0
+ KEEP = 1
+ I = 1
+
+ CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
+ IF (I.EQ.N) GOTO 260
+ IF (skipbad) GOTO 30
+
+ U(i) = X(i)
+ J = 2
+ INIT = 1
+ INDC = 0
+ GO TO 30
+C INITIALIZATION FOR EACH SEGMENT
+ 20 CONTINUE
+ J = J + 1
+ INIT = I
+ INDC = 0
+ IF (IABS(ITCH).LT.3) KEEP = I
+ IF (IABS(IABS(ITCH)-4).NE.2) GO TO 30
+C RESTRICTED TO TOLERANCE BAND
+ XEYE = U(J-1)
+ YEYE = V(J-1)
+ TEMP1 = EPSLN
+ IF (ITCH.LT.0) TEMP1 = TEMP1 + (SGN*E(I-1)-EPSLN)*(X(I)-U(J-1)
+ * )/(X(I)-X(I-1))
+ YINIT = YEYE - TEMP1 - TEMP1
+ GO TO 40
+ 30 CONTINUE
+C NOT RESTRICTED TO TOLERANCE BAND
+ XEYE = X(I)
+ YEYE = Y(I) + EPSLN
+ YINIT = Y(I) - EPSLN
+ IF (IABS(ITCH).EQ.1 .OR. I.EQ.1) GO TO 40
+ TEMP1 = EPSLN
+ IF (ITCH.LT.0) TEMP1 = SGN*E(I+1)
+ SMIN = (Y(I+1)-YEYE-TEMP1)/(X(I+1)-XEYE)
+ IF (ITCH.LT.0) TEMP1 = SGN*E(I-1)
+ SMAX = (YEYE-Y(I-1)+TEMP1)/(XEYE-X(I-1))
+
+ IF (KEEP.EQ.I-1) GO TO 50
+ IT = I - 2
+ XINIT = XEYE
+ IPIV = I
+ IGRAZE = I
+ I = I + 1
+
+ CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
+ IF (skipbad) THEN
+ IF (I.EQ.N) GOTO 260
+ GOTO 30
+ ENDIF
+
+ GO TO 150
+ 40 CONTINUE
+ IF (XEYE.GE.X(I)) I = I + 1
+ IF (ITCH.LT.0) EPSLN = SGN*E(I)
+ DX = X(I) - XEYE
+ SMAX = (Y(I)+EPSLN-YEYE)/DX
+ SMIN = (Y(I)-EPSLN-YEYE)/DX
+ 50 CONTINUE
+ XINIT = XEYE
+ IPIV = I
+ IGRAZE = I
+C DETERMINATION OF INDIVIDUAL SEGMENT
+ 60 CONTINUE
+ IF (I.EQ.N) GO TO 260
+ I = I + 1
+
+C New i, so does it point to a bad-val?
+
+ CALL PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j, n, skipbad)
+ IF (skipbad) THEN
+ IF (I.EQ.N) GOTO 260
+ GOTO 30
+ ENDIF
+
+ 70 CONTINUE
+
+C TEST FOR NEW *MAX* SLOPE
+ DX = X(I) - XEYE
+ IF (ITCH.LT.0) EPSLN = SGN*E(I)
+ TEMP1 = (Y(I)+EPSLN-YEYE)/DX
+ TEST = TEMP1 - SMAX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST) 80, 90, 100
+ 80 CONTINUE
+C TEST FOR END OF CANDIDATE SEGMENT
+ TEST = TEMP1 - SMIN
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST.LT.0.0) GO TO 210
+ SMAX = TEMP1
+ 90 CONTINUE
+C TEST FOR NEW *MIN* SLOPE
+ IPIV = I
+ 100 CONTINUE
+ TEMP2 = (Y(I)-EPSLN-YEYE)/DX
+ TEST = TEMP2 - SMAX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST) 110, 120, 140
+ 110 CONTINUE
+ TEST = SMIN - TEMP2
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST) 120, 130, 60
+ 120 CONTINUE
+ SMIN = TEMP2
+ 130 CONTINUE
+ IGRAZE = I
+ GO TO 60
+C CHECK FOR PIVOT AT NEW EYE POINT
+ 140 CONTINUE
+ IF (XEYE.EQ.X(IPIV)) GO TO 220
+ IF (ITCH.LT.0) EPSLN = SGN*E(IPIV)
+ INDC = 1
+ SVX = XEYE
+ SVY = YEYE
+ SVMN = SMIN
+ SVMX = SMAX
+ XEYE = X(IPIV)
+ YEYE = Y(IPIV) + EPSLN
+ SMIN = SMAX
+ SMAX = (YINIT-YEYE)/(XINIT-XEYE)
+ IF (KEEP.GE.IPIV) GO TO 170
+ IT = IPIV - 1
+ 150 CONTINUE
+ TEMP2 = YEYE + EPSLN
+ DO 160 L=KEEP,IT
+ IF (ITCH.LT.0) TEMP2 = YEYE + SGN*E(L)
+ TEMP1 = (Y(L)-TEMP2)/(X(L)-XEYE)
+ TEST = TEMP1 - SMAX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST.LT.0.0) SMAX = TEMP1
+ 160 CONTINUE
+ 170 CONTINUE
+ IF (IPIV.GE.I-1) GO TO 70
+ IT = I - 2
+ TEMP2 = YEYE - EPSLN
+ IDIOT = IPIV
+ DO 200 L=IDIOT,IT
+ DX = X(L+1) - XEYE
+ IF (ITCH.LT.0) TEMP2 = YEYE - SGN*E(L+1)
+ TEMP1 = (Y(L+1)-TEMP2)/DX
+ TEST = TEMP1 - SMAX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST) 180, 190, 200
+ 180 CONTINUE
+ SMAX = TEMP1
+ 190 CONTINUE
+ IPIV = L + 1
+ 200 CONTINUE
+ GO TO 70
+C END OF CURRENT SEGMENT
+ 210 CONTINUE
+ TEMP2 = SMIN
+ IF (I.EQ.N) GO TO 240
+ KEEP = IGRAZE
+ GO TO 250
+ 220 CONTINUE
+ TEMP2 = SMAX
+ IF (I.EQ.N) GO TO 230
+ SGN = -SGN
+ EPSLN = -EPSLN
+ KEEP = IPIV
+ GO TO 250
+ 230 CONTINUE
+ IF (INDC.EQ.0 .OR. XEYE.NE.X(N-1)) GO TO 240
+ XEYE = SVX
+ YEYE = SVY
+ SMIN = SVMN
+ SMAX = SVMX
+ 240 CONTINUE
+ U(J) = X(N-1)
+ YINIT = Y(N-1)
+ GO TO 270
+ 250 CONTINUE
+ IF (IABS(IABS(ITCH)-4).NE.2) GO TO 300
+C DETERMINE KNOT ON EDGE OF TOLERANCE BAND
+ TEMP1 = 0.0
+ IF (ITCH.LT.0) TEMP1 = EPSLN - SGN*E(I-1)
+ TEMP1 = (Y(I)-Y(I-1)+TEMP1)/(X(I)-X(I-1))
+
+ U(J) = (Y(I)+EPSLN-YEYE-TEMP1*X(I)+TEMP2*XEYE)/(TEMP2-TEMP1)
+
+ GO TO 310
+ 260 CONTINUE
+ U(J) = X(N)
+ YINIT = Y(N)
+ 270 CONTINUE
+C CONTINUITY CHECK FOR LAST SEGMENT
+ IF (IABS(ITCH).GE.3 .OR. INIT.EQ.1) GO TO 290
+ IT = INIT - 1
+ SVMX = SMAX + SGN
+ TEMP2 = YEYE + EPSLN
+ DO 280 L=KP,IT
+ IF (ITCH.LT.0) TEMP2 = YEYE + SGN*E(L)
+ TEMP1 = (Y(L)-TEMP2)/(X(L)-XEYE)
+ TEST = TEMP1 - SVMX
+ IF (SGN.LE.0.0) TEST = -TEST
+ IF (TEST.LT.0.0) SVMX = TEMP1
+ 280 CONTINUE
+ IF (ABS(SVMX-SMAX+SVMX-SMIN).LE.ABS(SMAX-SMIN)) SMAX = SVMX
+ 290 CONTINUE
+C NEARNESS CHECK FOR LAST SEGMENT
+ TEMP2 = SMAX
+ TEMP1 = YEYE + SMAX*(U(J)-XEYE)
+ TEST = YINIT - TEMP1
+ IF (SGN.LT.0.0) TEST = -TEST
+ IF (TEST.GT.0.0) GO TO 310
+ TEMP2 = SMIN
+ TEMP1 = YEYE + SMIN*(U(J)-XEYE)
+ TEST = YINIT - TEMP1
+ IF (SGN.LT.0.0) TEST = -TEST
+ IF (TEST.LT.0.0) GO TO 310
+ TEMP2 = (YINIT-YEYE)/(U(J)-XEYE)
+ V(J) = YINIT
+ GO TO 320
+ 300 CONTINUE
+ IF (IABS(ITCH).GE.3) GO TO 330
+ U(J) = 0.5*(X(I)+X(I-1))
+ 310 CONTINUE
+ V(J) = YEYE + TEMP2*(U(J)-XEYE)
+ 320 CONTINUE
+ IF (XEYE.NE.XINIT) GO TO 330
+ IF (IABS(ITCH).EQ.2) GO TO 360
+ IF (IABS(ITCH).NE.6) GO TO 330
+ IF (J.LE.2) GO TO 380
+ GO TO 390
+ 330 CONTINUE
+C RECOMPUTATION OF KNOT FOR CONTINUITY
+ IF (J.LE.2) GO TO 370
+ IF (SLOPE.EQ.TEMP2) GO TO 360
+ YINIT = V(J-2)
+ IF (IABS(ITCH).LT.3) YINIT = W(J-2)
+ TEMP1 = (XEYE*TEMP2-U(J-2)*SLOPE+YINIT-YEYE)/(TEMP2-SLOPE)
+ IF (IABS(ITCH).GE.3) GO TO 350
+ IF (TEMP1.GT.XINIT) GO TO 360
+ TEST = ABS(EPSLN)
+ IDIOT = INIT - KP
+ DO 340 L=1,IDIOT
+ IT = INIT - L
+ IF (TEMP1.GE.X(IT)) GO TO 350
+ DX = Y(IT) - YEYE - TEMP2*(X(IT)-XEYE)
+ IF (ITCH.LT.0) TEST = E(IT)
+ IF (ABS(DX).GT.TEST) GO TO 360
+ 340 CONTINUE
+ 350 CONTINUE
+ U(J-1) = TEMP1
+ V(J-1) = YEYE + TEMP2*(U(J-1)-XEYE)
+ IF (IABS(ITCH).LT.3) W(J-1) = V(J-1)
+ GO TO 390
+ 360 CONTINUE
+ W(J-1) = YEYE + TEMP2*(U(J-1)-XEYE)
+ GO TO 390
+ 370 CONTINUE
+ IF (IABS(ITCH).LT.3) GO TO 360
+ 380 CONTINUE
+ V(1) = YEYE + TEMP2*(U(1)-XEYE)
+ 390 CONTINUE
+ SLOPE = TEMP2
+ KP = KEEP
+ IF (I.LT.N) GO TO 20
+ IF (X(N).EQ.U(J)) GO TO 400
+ IF (IABS(ITCH).LT.3) W(J) = V(J)
+ J = J + 1
+ U(J) = X(N)
+ V(J) = Y(N)
+ 400 CONTINUE
+ IF (J.GE.2 .AND. IABS(ITCH).LT.3) V(1) = W(1)
+ K = J
+
+* Truncate to integer values: indices at which to sample
+
+ DO 500 I = 1, K
+ u(i) = INT(u(i))
+ 500 CONTINUE
+
+ 600 CONTINUE
+ RETURN
+ END
+
+ SUBROUTINE PIECEWISE3_CHECKGAP (Y, bad_y, x, u, i, j,
+ . n, skipbad)
+ REAL Y(*), bad_y, x(*), u(*)
+ INTEGER i, j, n
+ LOGICAL skipbad
+
+ skipbad = .FALSE.
+
+ IF ( Y(i).EQ.bad_y ) THEN
+ IF (i.GT.2) THEN
+ u(j) = x(i-1)
+
+ IF ( j .gt. 1 .and. INT(u(j)) .LT. INT(u(j-1)) ) then
+ j = j - 1
+ DO WHILE (INT(u(j)) .LE. INT(u(j-1)) )
+ j = j - 1
+ ENDDO
+ u(j) = x(i-1)
+ ENDIF
+ IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
+
+ j = j + 1
+ ENDIF
+ DO WHILE ( Y(i).EQ.bad_y .AND. i.LT.n)
+ i = i + 1
+ ENDDO
+
+ IF (i.GT.1) u(j) = x(i-1)
+ IF (i.GE.n) THEN
+ i = n
+ u(j) = x(n)
+ ENDIF
+ IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
+
+ j = j + 1
+ u(j) = x(i)
+ IF ( j .gt. 1 .and. INT(u(j)) .EQ. INT(u(j-1)) ) j = j - 1
+
+ j = j + 1
+ skipbad = .TRUE.
+ ENDIF
+
+ RETURN
+ END
+
+
+ subroutine merge(a,na,b,nb,c,nout,nmax)
+c http://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting/Merge_sort#Fortran
+! Normal usage: NA+NB = NC
+! B overlays C(NA+1:NC)
+
+! modified to return nout instead of assuming treating NC, length of C as known.
+
+ integer NA,NB,NC,NOUT,NMAX
+ REAL A(*), B(*), C(*)
+
+ integer I,J,K
+
+ I = 1
+ J = 1
+ K = 1
+ do while(I .LE. NA .and. J .LE. NB)
+ if (A(I) .LE. B(J)) then
+ C(K) = A(I)
+ I = I+1
+ IF (I.GT.nmax) GOTO 100
+ else
+ C(K) = B(J)
+ J = J+1
+ endif
+ K = K + 1
+ IF (K.GT.nmax) GOTO 100
+ enddo
+ do while (I .LE. NA)
+ C(K) = A(I)
+ I = I + 1
+ K = K + 1
+ IF (K.GT.nmax) GOTO 100
+ enddo
+ do while (J .LE. NB)
+ C(K) = B(J)
+ J = J+1
+ K = K + 1
+ IF (K.GT.nmax) GOTO 100
+ enddo
+
+* remove duplicates
+
+ 100 CONTINUE
+ j = 1
+ do i = 2, k
+ IF (c(i) .GT. c(i-1)) then
+ j = j + 1
+ IF (j.GT.nmax) THEN
+ j = nmax
+ GOTO 200
+ ENDIF
+ c(j) = c(i)
+ endif
+ enddo
+ 200 nout = j
+
+ return
+
+ end ! subroutine merge
diff --git a/external_functions/decimate/sample_fast_i.F b/external_functions/decimate/sample_fast_i.F
index cde1d05..a664fa8 100644
--- a/external_functions/decimate/sample_fast_i.F
+++ b/external_functions/decimate/sample_fast_i.F
@@ -154,7 +154,7 @@
DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
result(i) = bad_flag_result
- IF (arg_2(i2) .NE. bad_flag_result) THEN
+ IF (arg_2(i2) .NE. bad_flag(ARG2)) THEN
isample = INT(arg_2(i2))
result(i) = arg_1(isample)
ENDIF
diff --git a/external_functions/decimate/sample_fast_i.F b/external_functions/decimate/sample_fast_i_str.F
similarity index 88%
copy from external_functions/decimate/sample_fast_i.F
copy to external_functions/decimate/sample_fast_i_str.F
index cde1d05..7ba51ae 100644
--- a/external_functions/decimate/sample_fast_i.F
+++ b/external_functions/decimate/sample_fast_i_str.F
@@ -1,4 +1,4 @@
-* sample_fast_i.F
+* sample_fast_i_str.F
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -71,7 +71,7 @@
*
- SUBROUTINE sample_fast_i_init(id)
+ SUBROUTINE sample_fast_i_str_init(id)
IMPLICIT NONE
INCLUDE 'ferret_cmn/EF_Util.cmn'
@@ -83,18 +83,20 @@
* |
* V
- CALL ef_set_desc(id, 'Fast 1D sample variable using set of indices' )
+ CALL ef_set_desc(id, 'Fast 1D sample string variable using set of indices' )
CALL ef_set_num_args(id, 2)
CALL ef_set_has_vari_args(id, NO)
CALL ef_set_axis_inheritance_6d(id, IMPLIED_BY_ARGS, NORMAL,
. NORMAL, NORMAL, NORMAL, NORMAL)
CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_result_type(id, STRING_RETURN)
arg = 1
- CALL ef_set_arg_name(id, arg, 'V')
- CALL ef_set_arg_desc(id, arg, 'Variable to sample')
+ CALL ef_set_arg_name(id, arg, 'S')
+ CALL ef_set_arg_desc(id, arg, 'String Variable to sample')
CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_arg_type(id, arg, STRING_ARG)
arg = 2
CALL ef_set_arg_name(id, arg, 'Indices')
@@ -111,7 +113,7 @@
* In this subroutine we compute the result
*
- SUBROUTINE sample_fast_i_compute(id, arg_1, arg_2, result)
+ SUBROUTINE sample_fast_i_str_compute(id, arg_1, arg_2, result)
IMPLICIT NONE
INCLUDE 'ferret_cmn/EF_Util.cmn'
@@ -121,9 +123,17 @@
* Function is intended only for variables in the x direction
- REAL arg_1(mem1lox:mem1hix)
+* Single precision Ferret: string arg and result needed to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
+ REAL arg_1(strdf,mem1lox:mem1hix)
REAL arg_2(mem2lox:mem2hix)
- REAL result(memreslox:memreshix)
+ REAL result(strdf,memreslox:memreshix)
* After initialization, the 'res_' arrays contain indexing information
* for the result axes. The 'arg_' arrays will contain the indexing
@@ -153,10 +163,10 @@
i2 = arg_lo_ss(X_AXIS,ARG2)
DO 100 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
- result(i) = bad_flag_result
- IF (arg_2(i2) .NE. bad_flag_result) THEN
+ IF (arg_2(i2) .NE. bad_flag(ARG2)) THEN ! HELLO HELLO
isample = INT(arg_2(i2))
- result(i) = arg_1(isample)
+ CALL EF_PUT_STRING_PTR(arg_1(1,isample), result(1,i) )
+
ENDIF
i2 = i2 + arg_incr(X_AXIS,ARG2)
100 CONTINUE
diff --git a/external_functions/decimate/separate.F b/external_functions/decimate/separate.F
index 48b3b29..6b0d1b5 100644
--- a/external_functions/decimate/separate.F
+++ b/external_functions/decimate/separate.F
@@ -228,16 +228,20 @@
msum = msum + rend
IF (msum .GT. nx) msum = nx+1
DO i = i1, msum
- result(ir) = arg_1(i,k,k,k,k,k)
- IF (ir.GT.1 .AND. ifix .AND.
- . result(ir ).NE.bad_flag_result .AND.
- . result(ir-1).NE.bad_flag_result) THEN
- IF ( result(ir)-result(ir-1) .GT. tol)
- . result(ir) = result(ir) - 360.
- IF ( result(ir)-result(ir-1) .LT. -1*tol)
- . result(ir) = result(ir) + 360.
-
- ENDIF
+ IF (arg_1(i,k,k,k,k,k) .NE. bad_flag(ARG1)) THEN
+ result(ir) = arg_1(i,k,k,k,k,k)
+ IF (ir.GT.1 .AND. ifix) THEN
+ IF (result(ir ).NE.bad_flag_result .AND.
+ . result(ir-1).NE.bad_flag_result) THEN
+ IF ( result(ir)-result(ir-1) .GT. tol)
+ . result(ir) = result(ir) - 360.
+ IF ( result(ir)-result(ir-1) .LT. -1*tol)
+ . result(ir) = result(ir) + 360.
+ ENDIF
+ ENDIF
+ ELSE
+ result(ir) = bad_flag_result
+ ENDIF
ir = ir + 1
IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
ENDDO
diff --git a/external_functions/decimate/separate.F b/external_functions/decimate/separate_str.F
similarity index 91%
copy from external_functions/decimate/separate.F
copy to external_functions/decimate/separate_str.F
index 48b3b29..6489577 100644
--- a/external_functions/decimate/separate.F
+++ b/external_functions/decimate/separate_str.F
@@ -1,4 +1,4 @@
-* separate.F
+* separate_str.F
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -72,7 +72,7 @@
*
- SUBROUTINE separate_init(id)
+ SUBROUTINE separate_str_init(id)
IMPLICIT NONE
INCLUDE 'ferret_cmn/EF_Util.cmn'
@@ -85,7 +85,7 @@
* V
CALL ef_set_desc(id,
- . 'Insert a bad-value between features' )
+ . 'Insert a bad-value between features, string variable' )
CALL ef_set_num_args(id, 3)
CALL ef_set_has_vari_args(id, NO)
@@ -97,6 +97,7 @@
CALL ef_set_arg_name(id, arg, 'A')
CALL ef_set_arg_desc(id, arg, 'variable to sample on I axis')
CALL ef_set_axis_influence_6d(id, arg, YES, NO, NO, NO, NO, NO)
+ CALL ef_set_arg_type (id, arg, STRING_ARG)
arg = 2
CALL ef_set_arg_name(id, arg, 'Rowsize')
@@ -107,9 +108,11 @@
arg = 3
CALL ef_set_arg_name(id, arg, 'FixLongitudes')
CALL ef_set_arg_desc(id, arg,
- . '1 if A is longitudes needing modulo fixes, 0 otherwise')
+ . 'ignored (included for parity with numeric fcn)')
CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_result_type (id, STRING_RETURN)
+
* ^
* |
* USER CONFIGURABLE PORTION |
@@ -121,7 +124,7 @@
- SUBROUTINE separate_result_limits(id)
+ SUBROUTINE separate_str_result_limits(id)
INCLUDE 'ferret_cmn/EF_Util.cmn'
@@ -147,7 +150,8 @@
* will add a point for each row
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
- nr = arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1
+ nr = MAX( (arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1),
+ . (arg_hi_ss(E_AXIS, ARG2) - arg_lo_ss( E_AXIS, ARG2) + 1) )
lo_lim = 1
hi_lim = nx + nr - 1
@@ -167,7 +171,7 @@
* In this subroutine we compute the result
*
- SUBROUTINE separate_compute(id, arg_1, arg_2, arg_3, result)
+ SUBROUTINE separate_str_compute(id, arg_1, arg_2, arg_3, result)
IMPLICIT NONE
INCLUDE 'ferret_cmn/EF_Util.cmn'
@@ -202,10 +206,11 @@
* |
* V
- INTEGER i, i1, ir, k, m
+ INTEGER i, i1, ir, k, m, slen
INTEGER nx, ne, msum, rend
REAL fixlon, tol, nothing
LOGICAL ifix
+ CHARACTER*512 buff
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -228,21 +233,18 @@
msum = msum + rend
IF (msum .GT. nx) msum = nx+1
DO i = i1, msum
- result(ir) = arg_1(i,k,k,k,k,k)
- IF (ir.GT.1 .AND. ifix .AND.
- . result(ir ).NE.bad_flag_result .AND.
- . result(ir-1).NE.bad_flag_result) THEN
- IF ( result(ir)-result(ir-1) .GT. tol)
- . result(ir) = result(ir) - 360.
- IF ( result(ir)-result(ir-1) .LT. -1*tol)
- . result(ir) = result(ir) + 360.
-
- ENDIF
+
+ CALL ef_get_string_arg_element_6d(id, ARG1, arg_1,
+ . i,k,k,k,k,k, slen,buff)
+ CALL ef_put_string (buff, slen, result(ir) )
+
ir = ir + 1
IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
ENDDO
i1 = msum+1
- result(ir) = bad_flag_result
+ buff = ' '
+ slen = 1
+ CALL ef_put_string (buff, slen, result(ir) )
ir = ir + 1
IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
ENDDO
diff --git a/external_functions/ef_utility/ferret_cmn/EF_mem_subsc.cmn b/external_functions/ef_utility/ferret_cmn/EF_mem_subsc.cmn
index 9d209de..e3db8d6 100644
--- a/external_functions/ef_utility/ferret_cmn/EF_mem_subsc.cmn
+++ b/external_functions/ef_utility/ferret_cmn/EF_mem_subsc.cmn
@@ -15,7 +15,6 @@
*
* 2/12 *kms* add E and F dimensions
* moved to EF_mem_subsc.defcmn so EF_mem_subsc is the external declaration
-* 6/12 *kms* added EXTERNAL since this block is part of Ferret
* 8/12 *kms* added FERRET_ prefix to common block name to identify source
* (primarily for PyFerret where this becomes global under Python)
*
@@ -26,7 +25,6 @@
INTEGER ef_max_mem_args
PARAMETER ( ef_max_mem_args = 12 )
- EXTERNAL FERRET_EF_MEM_SUBSC
COMMON / FERRET_EF_MEM_SUBSC /
. mem1lox, mem2lox, mem3lox, mem4lox, mem5lox, mem6lox,
. mem7lox, mem8lox, mem9lox, mem10lox, mem11lox, mem12lox,
diff --git a/external_functions/ef_utility/ferret_cmn/EF_mem_subsc_f90.inc b/external_functions/ef_utility/ferret_cmn/EF_mem_subsc_f90.inc
index 861ac2a..01690ff 100644
--- a/external_functions/ef_utility/ferret_cmn/EF_mem_subsc_f90.inc
+++ b/external_functions/ef_utility/ferret_cmn/EF_mem_subsc_f90.inc
@@ -15,7 +15,6 @@
!
! 2/12 *kms* add E and F dimensions
! moved to EF_mem_subsc.defcmn so EF_mem_subsc is the external declaration
-! 6/12 *kms* added EXTERNAL since this block is part of Ferret
! 8/12 *kms* added FERRET_ prefix to common block name to identify source
! (primarily for PyFerret where this becomes global under Python)
!
@@ -27,7 +26,6 @@
INTEGER, PARAMETER :: ef_max_mem_args = 12
- EXTERNAL FERRET_EF_MEM_SUBSC
COMMON / FERRET_EF_MEM_SUBSC / &
mem1lox, mem2lox, mem3lox, mem4lox, mem5lox, mem6lox, &
mem7lox, mem8lox, mem9lox, mem10lox, mem11lox, mem12lox, &
diff --git a/external_functions/eof/Makefile b/external_functions/eof/Makefile
index ae7c050..3eef714 100644
--- a/external_functions/eof/Makefile
+++ b/external_functions/eof/Makefile
@@ -45,7 +45,7 @@ SUB_OBJS = eofsubs.o
# Targets
#
-all: eofsvd_space.so eof_space_fix.so eof_tfunc_fix.so eof_stat_fix.so
+all: eofsubs.o eof_space_tgap.so eof_tfunc_tgap.so eof_stat_tgap.so
debug:
$(MAKE) "FFLAGS = $(FFLAGS) $(FFLAGS_DEBUG)" "CFLAGS = $(CFLAGS) $(CFLAGS_DEBUG)" all
@@ -56,6 +56,13 @@ install:
clean:
-rm -f *.o *.so
+# To make a tarfile with the older functions that work on gappy timeseries:
+# make; make tarfile
+tarfile:
+ rm -f fer_eof_gappy_timeseries_fcns.tar*
+ tar cf fer_eof_gappy_timeseries_fcns.tar *.so
+ gzip -9 fer_eof_gappy_timeseries_fcns.tar
+
#
# End of Makefile
#
diff --git a/external_functions/eof/eof_space_tgap.F b/external_functions/eof/eof_space_tgap.F
new file mode 100644
index 0000000..617d7fb
--- /dev/null
+++ b/external_functions/eof/eof_space_tgap.F
@@ -0,0 +1,629 @@
+*
+* eof_space_tgap.F
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+* Ansley Manke
+* Sep 1998
+* Aug 2000 change fcn description; argument can be fcn of Z as well as x,y,t
+* May 2001 Use simpler solver EOFIN when frac_timeser = 1.
+*
+* Jul 2001 Move to statically linked code in fer/efi.
+* Jul 2001 Move count_eof and pack_eof to file eofsubs.f, rename solve_eof
+* to solve_eof_space_tgap.
+* Make the function work w/ data having multiple depths: compute
+* EOF solution for each depth.
+* Aug 2001 move to fer/efi directory, to be statically linked to Ferret.
+* Change INCLUDE statements to remove directory spec.
+* Feb 2003 Add a test that NEOF <= max_neof, which is dictated by work
+* arrays in the solvers in TRIDIN in eofsubs.F
+* Jun 2003 Workspace arrays need to be initialized for each vertical level.
+* Sep 2005 Remove the max_eof test; make all workspace be allocated as
+* external function work arrays.
+*
+* Compute EOF/s and time amplitude funcions from a 2-d field, or for each level
+* of a 3-D field. Based on programs (coadseof.f, etc.) by Dai McClurg and
+* Ansley Manke and calls Billy Kessler's method for finding EOFs of NON-gappy
+* time series EOFIN, or optionally his implementation of Chelton's '82 method
+* for finding EOFs of gappy time series.
+*
+* Return Spatial EOF's
+*
+*
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE eof_space_tgap_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+
+ INTEGER id, arg
+
+************************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+ CALL ef_set_desc(id,
+ . 'Compute EOF spacial fields from XYT field with gappy time series')
+
+ CALL ef_set_num_args(id, 2)
+
+ CALL ef_set_axis_inheritance_6d(id,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, ABSTRACT,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+ CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_num_work_arrays(id, 9)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'A')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Variable in x,y,t; may be fcn of z,e,f')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . YES, YES, YES, NO, YES, YES)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'frac_timeser')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Use only those time series with this fraction valid data')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . NO, NO, NO, NO, NO, NO)
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+************************************************************************
+
+ RETURN
+ END
+
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis. The user
+* configurable information consists of the following:
+*
+* loss lo subscript for an axis
+*
+* hiss hi subscript for an axis
+*
+
+ SUBROUTINE eof_space_tgap_result_limits(id)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
+
+ INTEGER id
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER my_lo_l, my_hi_l
+
+ INTEGER nx, ny
+
+* Use utility functions to get context information about the
+* 1st argument, to set the abstract axis lo and hi indices.
+
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+ ny = arg_hi_ss(Y_AXIS, ARG1) - arg_lo_ss(Y_AXIS, ARG1) + 1
+
+ my_lo_l = 1
+ my_hi_l = nx * ny
+
+ CALL ef_set_axis_limits(id, T_AXIS, my_lo_l, my_hi_l)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+ SUBROUTINE eof_space_tgap_work_size(id)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+*
+* Set the work arrays, X/Y/Z/T/E/F dimensions
+*
+* ef_set_work_array_dims_6d(id, array #,
+* xlo, ylo, zlo, tlo, elo, flo,
+* xhi, yhi, zhi, thi, ehi, fhi)
+*
+ COMMON /EOFXYSTOR/ mx
+ INTEGER mx1, my1, mt1, mx, mxmt, mxmx
+
+ INTEGER iwork
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ mx1 = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+ my1 = 1 + arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1)
+ mt1 = 1 + arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1)
+
+ mx = mx1 * my1 + 10
+ mxmt = mx * mt1 + 10
+ mxmx = mx * mx + 10
+
+* val
+ iwork = 1
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 1, 1, 1, 1, 1)
+
+* taf
+ iwork = 2
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmt, 1, 1, 1, 1, 1)
+
+* pct
+ iwork = 3
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 1, 1, 1, 1, 1)
+
+* vec
+ iwork = 4
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmx, 1, 1, 1, 1, 1)
+
+* c
+ iwork = 5
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmx, 1, 1, 1, 1, 1)
+
+* ddat_1d
+ iwork = 6
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmt, 1, 1, 1, 1, 1)
+
+* isave_jsave
+ iwork = 7
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 2, 1, 1, 1, 1)
+
+* ok
+ iwork = 8
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx1, my1, 1, 1, 1, 1)
+
+* eofwork
+ iwork = 9
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 10, 1, 1, 1, 1)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+*
+* In this SUBROUTINE we compute the result
+*
+
+ SUBROUTINE eof_space_tgap_compute(id, arg_1, arg_2, result,
+ . val, taf, pct, vec, c, ddat_1d, isave_jsave, ok, eofwork)
+
+* arg_1 variable, function of (x,y,t)
+* result NX*NY eigenvectors
+
+* Work arrays:
+* val, taf, pct, vec, c, ddat_1d, isave_jsave, ok
+
+* val(neof) eigenvalues (Lambda)
+* result == vec(neof,neof) eigenvectors (Lambda*U). Same units as data.
+* taf(neof,nt) time amplitude functions (V). Dimensionless.
+* pct(neof) % variance represented by each EOF.
+* c(neof,neof) work space for cov matrix (garbage output)
+* isave_jsave save the locations of the data in the x-y plane
+* eofwork used by QRSYM and other solver routines; replaces
+* original ALPHA, BETA, BB, and P arrays.
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
+
+ INTEGER id
+
+ COMMON /EOFXYSTOR/ mx
+ INTEGER mx
+
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+
+* Dimension the work arrays.
+
+ REAL val(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
+ . wrk1loz:wrk1hiz, wrk1lot:wrk1hit,
+ . wrk1loe:wrk1hie, wrk1lof:wrk1hif)
+ REAL taf(wrk2lox:wrk2hix, wrk2loy:wrk2hiy,
+ . wrk2loz:wrk2hiz, wrk2lot:wrk2hit,
+ . wrk2loe:wrk2hie, wrk2lof:wrk2hif)
+ REAL pct(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
+ . wrk3loz:wrk3hiz, wrk3lot:wrk3hit,
+ . wrk3loe:wrk3hie, wrk3lof:wrk3hif)
+ REAL vec(wrk4lox:wrk4hix, wrk4loy:wrk4hiy,
+ . wrk4loz:wrk4hiz, wrk4lot:wrk4hit,
+ . wrk4loe:wrk4hie, wrk4lof:wrk4hif)
+ REAL c(wrk5lox:wrk5hix, wrk5loy:wrk5hiy,
+ . wrk5loz:wrk5hiz, wrk5lot:wrk5hit,
+ . wrk5loe:wrk5hie, wrk5lof:wrk5hif)
+ REAL ddat_1d(wrk6lox:wrk6hix, wrk6loy:wrk6hiy,
+ . wrk6loz:wrk6hiz, wrk6lot:wrk6hit,
+ . wrk6loe:wrk6hie, wrk6lof:wrk6hif)
+ REAL isave_jsave(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+ . wrk7loz:wrk7hiz, wrk7lot:wrk7hit,
+ . wrk7loe:wrk7hie, wrk7lof:wrk7hif)
+ REAL ok(wrk8lox:wrk8hix, wrk8loy:wrk8hiy,
+ . wrk8loz:wrk8hiz, wrk8lot:wrk8hit,
+ . wrk8loe:wrk8hie, wrk8lof:wrk8hif)
+ REAL eofwork(wrk9lox:wrk9hix, wrk9loy:wrk9hiy,
+ . wrk9loz:wrk9hiz, wrk9lot:wrk9hit,
+ . wrk9loe:wrk9hie, wrk9lof:wrk9hif)
+
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable''s axes.
+
+ INTEGER res_lo_ss(6),
+ . res_hi_ss(6),
+ . res_incr (6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+************************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER neof, ier
+ CHARACTER*255 err_msg, err_out
+
+ INTEGER nx, ny, nt, k, m, n, k1, m1, n1,
+ . iw, jw, kw, lw, mw, nw
+ REAL frac_timeser
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* get array sizes
+
+ nx = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+ ny = 1 + arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1)
+ nt = 1 + arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1)
+
+* Get time percent parameter.
+
+ frac_timeser = arg_2(arg_lo_ss(X_AXIS,ARG2),
+ . arg_lo_ss(Y_AXIS,ARG2),
+ . arg_lo_ss(Z_AXIS,ARG2),
+ . arg_lo_ss(T_AXIS,ARG2),
+ . arg_lo_ss(E_AXIS,ARG2),
+ . arg_lo_ss(F_AXIS,ARG2))
+
+* Compute EOF for each depth, ensemble, forecast
+
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ DO 300 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+ m1 = arg_lo_ss(E_AXIS,ARG1)
+ DO 200 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ DO 100 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+* Initialize work arrays.
+
+ DO 701 nw = wrk1lof,wrk1hif
+ DO 701 mw = wrk1loe,wrk1hie
+ DO 701 lw = wrk1lot,wrk1hit
+ DO 701 kw = wrk1loz,wrk1hiz
+ DO 701 jw = wrk1loy,wrk1hiy
+ DO 701 iw = wrk1lox,wrk1hix
+ val(iw,jw,kw,lw,mw,nw) = 0.
+ 701 CONTINUE
+
+ DO 702 nw = wrk2lof,wrk2hif
+ DO 702 mw = wrk2loe,wrk2hie
+ DO 702 lw = wrk2lot,wrk2hit
+ DO 702 kw = wrk2loz,wrk2hiz
+ DO 702 jw = wrk2loy,wrk2hiy
+ DO 702 iw = wrk2lox,wrk2hix
+ taf(iw,jw,kw,lw,mw,nw) = 0.
+ 702 CONTINUE
+
+ DO 703 nw = wrk3lof,wrk3hif
+ DO 703 mw = wrk3loe,wrk3hie
+ DO 703 lw = wrk3lot,wrk3hit
+ DO 703 kw = wrk3loz,wrk3hiz
+ DO 703 jw = wrk3loy,wrk3hiy
+ DO 703 iw = wrk3lox,wrk3hix
+ pct(iw,jw,kw,lw,mw,nw) = 0.
+ 703 CONTINUE
+
+ DO 704 nw = wrk4lof,wrk4hif
+ DO 704 mw = wrk4loe,wrk4hie
+ DO 704 lw = wrk4lot,wrk4hit
+ DO 704 kw = wrk4loz,wrk4hiz
+ DO 704 jw = wrk4loy,wrk4hiy
+ DO 704 iw = wrk4lox,wrk4hix
+ vec(iw,jw,kw,lw,mw,nw) = 0.
+ 704 CONTINUE
+
+ DO 705 nw = wrk5lof,wrk5hif
+ DO 705 mw = wrk5loe,wrk5hie
+ DO 705 lw = wrk5lot,wrk5hit
+ DO 705 kw = wrk5loz,wrk5hiz
+ DO 705 jw = wrk5loy,wrk5hiy
+ DO 705 iw = wrk5lox,wrk5hix
+ c(iw,jw,kw,lw,mw,nw) = 0.
+ 705 CONTINUE
+
+ DO 706 nw = wrk6lof,wrk6hif
+ DO 706 mw = wrk6loe,wrk6hie
+ DO 706 lw = wrk6lot,wrk6hit
+ DO 706 kw = wrk6loz,wrk6hiz
+ DO 706 jw = wrk6loy,wrk6hiy
+ DO 706 iw = wrk6lox,wrk6hix
+ ddat_1d(iw,jw,kw,lw,mw,nw) = 0.
+ 706 CONTINUE
+
+ DO 707 nw = wrk7lof,wrk7hif
+ DO 707 mw = wrk7loe,wrk7hie
+ DO 707 lw = wrk7lot,wrk7hit
+ DO 707 kw = wrk7loz,wrk7hiz
+ DO 707 jw = wrk7loy,wrk7hiy
+ DO 707 iw = wrk7lox,wrk7hix
+ isave_jsave(iw,jw,kw,lw,mw,nw) = 0.
+ 707 CONTINUE
+
+ DO 708 nw = wrk8lof,wrk8hif
+ DO 708 mw = wrk8loe,wrk8hie
+ DO 708 lw = wrk8lot,wrk8hit
+ DO 708 kw = wrk8loz,wrk8hiz
+ DO 708 jw = wrk8loy,wrk8hiy
+ DO 708 iw = wrk8lox,wrk8hix
+ ok(iw,jw,kw,lw,mw,nw) = 0.
+ 708 CONTINUE
+
+ DO 709 nw = wrk9lof,wrk9hif
+ DO 709 mw = wrk9loe,wrk9hie
+ DO 709 lw = wrk9lot,wrk9hit
+ DO 709 kw = wrk9loz,wrk9hiz
+ DO 709 jw = wrk9loy,wrk9hiy
+ DO 709 iw = wrk9lox,wrk9hix
+ eofwork(iw,jw,kw,lw,mw,nw) = 0.
+ 709 CONTINUE
+
+
+* Find the number of eofs to solve for.
+* neof = number of (x,y) points with frac_timeser good data.
+* Set OK to mark where they are. (note this also allows for
+* working around continental boundaries or other areas where
+* entire time series are missing)
+
+ CALL count_neof (arg_1, neof, ok, nx, ny, nt, k1, m1, n1,
+ . arg_lo_ss, arg_hi_ss, arg_incr, mx,
+ . bad_flag(ARG1), frac_timeser, err_msg, ier)
+ IF (ier .NE. 0) then
+ GOTO 5010
+ ENDIF
+
+* Put the data into the array ddat_1d(neof,nt)
+
+ CALL pack_ef (arg_1, ddat_1d, isave_jsave, neof,
+ . ok, frac_timeser, nx, ny, nt, k1, m1, n1,
+ . arg_lo_ss, arg_hi_ss, arg_incr)
+
+* Solve for the EOF's: eigenvectors, time functions, percent variance explained.
+
+ CALL solve_eof_space_tgap (ddat_1d, neof, nt, k, m, n, val, vec,
+ . taf, pct, c, result, isave_jsave, eofwork, res_lo_ss,
+ . res_hi_ss, res_incr, bad_flag(ARG1), bad_flag_result,
+ . frac_timeser, err_msg, ier)
+ IF (ier .NE. 0) GOTO 5020
+
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 100 CONTINUE
+ m1 = m1 + arg_incr(E_AXIS,ARG1)
+ 200 CONTINUE
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
+ 300 CONTINUE
+
+ RETURN
+
+ 5010 CALL ef_bail_out (id, err_msg)
+ RETURN
+
+ 5020 WRITE (err_out, 5500) k, m, n, err_msg
+ 5500 FORMAT ('k,m,n=', 3I3, A250)
+ CALL ef_bail_out (id, err_out)
+ RETURN
+
+ END
+
+***********************************************************************
+
+ SUBROUTINE solve_eof_space_tgap (ddat_1d, neof, nt, k, m, n, val, vec,
+ . taf, pct, c, result, isave_jsave, eofwork, res_lo_ss,
+ . res_hi_ss, res_incr, bad_flag_dat, bad_flag_result,
+ . frac_timeser, err_msg, ier)
+
+ IMPLICIT NONE
+ INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
+
+* arguments
+ INTEGER neof, nt, k, m, n
+ REAL ddat_1d(neof,nt)
+ REAL val(*)
+ REAL vec(neof, neof)
+ REAL taf(neof, nt)
+ REAL pct(*)
+ REAL c(neof, neof)
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+ REAL isave_jsave(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+ . wrk7loz:wrk7hiz, wrk7lot:wrk7hit,
+ . wrk7loe:wrk7hie, wrk7lof:wrk7hif)
+ REAL eofwork(wrk9lox:wrk9hix, wrk9loy:wrk9hiy,
+ . wrk9loz:wrk9hiz, wrk9lot:wrk9hit,
+ . wrk9loe:wrk9hie, wrk9lof:wrk9hif)
+ INTEGER res_lo_ss(6), res_hi_ss(6), res_incr(6)
+ REAL bad_flag_dat, bad_flag_result, frac_timeser
+ CHARACTER*(*) err_msg
+ INTEGER ier
+
+* local variables
+ INTEGER i, j, l, mm, nn, is, js
+
+ IF (frac_timeser .LT. 1.) THEN
+ CALL EOFIN_CHEL_GAP (ddat_1d, neof, nt, val, vec, taf, pct, c,
+ . eofwork, bad_flag_dat, bad_flag_result, err_msg, ier)
+ IF (ier .NE. 0) RETURN
+ ELSE
+ CALL EOFIN(ddat_1d, neof, nt, val, vec, taf, pct, c, eofwork)
+ ENDIF
+
+* Result is the eigenvectors.
+
+ DO 130 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ DO 120 j = res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+ DO 110 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ result(i,j,k,l,m,n) = bad_flag_result
+ 110 CONTINUE
+ 120 CONTINUE
+ 130 CONTINUE
+
+ DO 220 nn = 1, neof
+ DO 210 mm = 1, neof
+ IF (res_lo_ss(X_AXIS) .EQ. ef_unspecified_int4) THEN
+ is = ef_unspecified_int4
+ ELSE
+ is = res_lo_ss(X_AXIS) + isave_jsave(mm,1,1,1,1,1) - 1
+ ENDIF
+
+ IF (res_lo_ss(Y_AXIS) .EQ. ef_unspecified_int4) THEN
+ js = ef_unspecified_int4
+ ELSE
+ js = res_lo_ss(Y_AXIS) + isave_jsave(mm,2,1,1,1,1) - 1
+ ENDIF
+
+ result(is,js,k,nn,m,n) = vec(mm,nn)
+
+ 210 CONTINUE
+ 220 CONTINUE
+
+ RETURN
+ END
diff --git a/external_functions/eof/eof_stat_tgap.F b/external_functions/eof/eof_stat_tgap.F
new file mode 100644
index 0000000..cd03d21
--- /dev/null
+++ b/external_functions/eof/eof_stat_tgap.F
@@ -0,0 +1,646 @@
+*
+* eof_stat_tgap.F
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+* Ansley Manke
+* July 1999
+* Aug 2000 change fcn description; argument can be fcn of Z as well as x,y,t
+* May 2001 change to simpler solver EOFIN (time series all need to be filled
+*
+* Jul 2001 Move to statically linked code in fer/efi.
+* Jul 2001 move count_eof and pack_eof to file eofsubs.f, rename solve_eof
+* to solve_eof_stat_tgap.
+* Make the function work w/ data having multiple depths: compute
+* EOF solution for each depth.
+* Aug 2001 move to fer/efi directory, to be statically linked to Ferret.
+* Change INCLUDE statements to remove directory spec.
+* Feb 2003 Add a test that NEOF <= max_neof, which is dictated by work
+* arrays in the solvers in TRIDIN in eofsubs.F
+* Jun 2003 Workspace arrays need to be initialized for each vertical level.
+* Sep 2005 Remove the max_eof test; make all workspace be allocated as
+* external function work arrays.
+*
+* Compute EOF/s and time amplitude funcions from a 2-d field, or for each level
+* of a 3-D field. Based on programs (coadseof.f, etc.) by Dai McClurg and
+* Ansley Manke and calls Billy Kessler's method for finding EOFs of NON-gappy
+* time series EOFIN, or optionally his implementation of Chelton's '82 method
+* for finding EOFs of gappy time series.
+*
+* Return statistics: number of eof's computed, percent variance explained
+* by each EOF, and the eigenvalue for each EOF.
+* x-axis is abstract length nx*ny; listing the statistics for each EOF.
+* y-axis is length 3:
+* 1st is the # of eof's computed
+* 2nd is the Pct variation for each eof
+* 3rd is the eigenvalue for each eof.
+*
+*
+* In this SUBROUTINE we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE eof_stat_tgap_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+
+************************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CHARACTER*100 fcn_desc
+
+ 10 FORMAT ('EOF statistics from XYT field (gappy time series). j=1:#EOFs, ',
+ . 'j=2:%variation, j=3:eigenvalues' )
+ WRITE (fcn_desc, 10)
+ CALL ef_set_desc(id, fcn_desc)
+
+ CALL ef_set_num_args(id, 2)
+
+ CALL ef_set_axis_inheritance_6d(id,
+ . ABSTRACT, ABSTRACT,
+ . IMPLIED_BY_ARGS, NORMAL,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+ CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+
+ CALL ef_set_num_work_arrays(id, 9)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'A')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Variable in x,y,t; may be fcn of z,e,f')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . NO, NO, YES, NO, YES, YES)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'frac_timeser')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Use only those time series with this fraction valid data.')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . NO, NO, NO, NO, NO, NO)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+************************************************************************
+
+ RETURN
+ END
+
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis. The user
+* configurable information consists of the following:
+*
+* loss lo subscript for an axis
+*
+* hiss hi subscript for an axis
+*
+
+ SUBROUTINE eof_stat_tgap_result_limits(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER my_lo_l, my_hi_l
+
+ INTEGER nx, ny
+
+* Use utility functions to get context information about the
+* 1st argument, to set the abstract axis lo and hi indices.
+
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+ ny = arg_hi_ss(Y_AXIS, ARG1) - arg_lo_ss(Y_AXIS, ARG1) + 1
+
+ my_lo_l = 1
+ my_hi_l = nx * ny
+
+ CALL ef_set_axis_limits(id, X_AXIS, my_lo_l, my_hi_l)
+
+ CALL ef_set_axis_limits(id, Y_AXIS, 1, 3)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+ SUBROUTINE eof_stat_tgap_work_size(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+*
+* Set the work arrays, X/Y/Z/T/E/F dimensions
+*
+* ef_set_work_array_dims_6d(id, array #,
+* xlo, ylo, zlo, tlo, elo, flo,
+* xhi, yhi, zhi, thi, ehi, fhi)
+*
+ COMMON /eof_stat_tgapSTOR/ mx
+ INTEGER mx1, my1, mt1, mx, mxmt, mxmx
+
+ INTEGER iwork
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ mx1 = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+ my1 = 1 + arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1)
+ mt1 = 1 + arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1)
+
+ mx = mx1 * my1 + 10
+ mxmt = mx * mt1 + 10
+ mxmx = mx* mx + 10
+
+* val
+ iwork = 1
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 1, 1, 1, 1, 1)
+
+* taf
+ iwork = 2
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmt, 1, 1, 1, 1, 1)
+
+* pct
+ iwork = 3
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 1, 1, 1, 1, 1)
+
+* vec
+ iwork = 4
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmx, 1, 1, 1, 1, 1)
+
+* c
+ iwork = 5
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmx, 1, 1, 1, 1, 1)
+
+* ddat_1d
+ iwork = 6
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmt, 1, 1, 1, 1, 1)
+
+* isave_jsave
+ iwork = 7
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 2, 1, 1, 1, 1)
+
+* ok
+ iwork = 8
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx1, my1, 1, 1, 1, 1)
+
+* eofwork
+ iwork = 9
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 10, 1, 1, 1, 1)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+
+
+*
+* In this SUBROUTINE we compute the result
+*
+
+ SUBROUTINE eof_stat_tgap_compute(id, arg_1, arg_2, result,
+ . val, taf, pct, vec, c, ddat_1d, isave_jsave, ok, eofwork)
+
+* arg_1 variable, function of (x,y,t)
+
+* result(i, 1,. ,. ) # eigenfunctions.
+* result(i, 2,. ,. ) pct variation for eigenfuncton i.
+* result(i, 3,. ,. ) eigenvalue for eigenfuncton i.
+
+* Work arrays:
+* val, taf, pct, vec, c, ddat_1d, isave_jsave, ok
+* val(neof) eigenvalues (Lambda)
+* taf(neof,nt) time amplitude functions (V). Dimensionless.
+* pct(neof) % variance represented by each EOF.
+* c(neof,neof) work space for cov matrix (garbage output)
+* isave_jsave save the locations of the data in the x-y plane
+* eofwork used by QRSYM and other solver routines; replaces
+* original ALPHA, BETA, BB, and P arrays.
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+
+ COMMON /eof_stat_tgapSTOR/ mx
+ INTEGER mx
+
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+
+* Dimension the work arrays.
+
+ REAL val(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
+ . wrk1loz:wrk1hiz, wrk1lot:wrk1hit,
+ . wrk1loe:wrk1hie, wrk1lof:wrk1hif)
+ REAL taf(wrk2lox:wrk2hix, wrk2loy:wrk2hiy,
+ . wrk2loz:wrk2hiz, wrk2lot:wrk2hit,
+ . wrk2loe:wrk2hie, wrk2lof:wrk2hif)
+ REAL pct(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
+ . wrk3loz:wrk3hiz, wrk3lot:wrk3hit,
+ . wrk3loe:wrk3hie, wrk3lof:wrk3hif)
+ REAL vec(wrk4lox:wrk4hix, wrk4loy:wrk4hiy,
+ . wrk4loz:wrk4hiz, wrk4lot:wrk4hit,
+ . wrk4loe:wrk4hie, wrk4lof:wrk4hif)
+ REAL c(wrk5lox:wrk5hix, wrk5loy:wrk5hiy,
+ . wrk5loz:wrk5hiz, wrk5lot:wrk5hit,
+ . wrk5loe:wrk5hie, wrk5lof:wrk5hif)
+ REAL ddat_1d(wrk6lox:wrk6hix, wrk6loy:wrk6hiy,
+ . wrk6loz:wrk6hiz, wrk6lot:wrk6hit,
+ . wrk6loe:wrk6hie, wrk6lof:wrk6hif)
+ REAL isave_jsave(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+ . wrk7loz:wrk7hiz, wrk7lot:wrk7hit,
+ . wrk7loe:wrk7hie, wrk7lof:wrk7hif)
+ REAL ok(wrk8lox:wrk8hix, wrk8loy:wrk8hiy,
+ . wrk8loz:wrk8hiz, wrk8lot:wrk8hit,
+ . wrk8loe:wrk8hie, wrk8lof:wrk8hif)
+ REAL eofwork(wrk9lox:wrk9hix, wrk9loy:wrk9hiy,
+ . wrk9loz:wrk9hiz, wrk9lot:wrk9hit,
+ . wrk9loe:wrk9hie, wrk9lof:wrk9hif)
+
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable''s axes.
+
+ INTEGER res_lo_ss(6),
+ . res_hi_ss(6),
+ . res_incr (6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+************************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER neof, max_neof, ier
+ CHARACTER*255 err_msg, err_out
+
+ INTEGER nx, ny, nt, k, m, n, k1, m1, n1,
+ . iw, jw, kw, lw, mw, nw
+ REAL frac_timeser
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* get array sizes
+
+ nx = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+ ny = 1 + arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1)
+ nt = 1 + arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1)
+
+* Get time percent parameter.
+
+ frac_timeser = arg_2(arg_lo_ss(X_AXIS,ARG2),
+ . arg_lo_ss(Y_AXIS,ARG2),
+ . arg_lo_ss(Z_AXIS,ARG2),
+ . arg_lo_ss(T_AXIS,ARG2),
+ . arg_lo_ss(E_AXIS,ARG2),
+ . arg_lo_ss(F_AXIS,ARG2))
+
+* Compute EOF for each depth, ensemble, forecast
+
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ DO 300 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+ m1 = arg_lo_ss(E_AXIS,ARG1)
+ DO 200 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ DO 100 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+* Initialize work arrays.
+
+ DO 701 nw = wrk1lof,wrk1hif
+ DO 701 mw = wrk1loe,wrk1hie
+ DO 701 lw = wrk1lot,wrk1hit
+ DO 701 kw = wrk1loz,wrk1hiz
+ DO 701 jw = wrk1loy,wrk1hiy
+ DO 701 iw = wrk1lox,wrk1hix
+ val(iw,jw,kw,lw,mw,nw) = 0.
+ 701 CONTINUE
+
+ DO 702 nw = wrk2lof,wrk2hif
+ DO 702 mw = wrk2loe,wrk2hie
+ DO 702 lw = wrk2lot,wrk2hit
+ DO 702 kw = wrk2loz,wrk2hiz
+ DO 702 jw = wrk2loy,wrk2hiy
+ DO 702 iw = wrk2lox,wrk2hix
+ taf(iw,jw,kw,lw,mw,nw) = 0.
+ 702 CONTINUE
+
+ DO 703 nw = wrk3lof,wrk3hif
+ DO 703 mw = wrk3loe,wrk3hie
+ DO 703 lw = wrk3lot,wrk3hit
+ DO 703 kw = wrk3loz,wrk3hiz
+ DO 703 jw = wrk3loy,wrk3hiy
+ DO 703 iw = wrk3lox,wrk3hix
+ pct(iw,jw,kw,lw,mw,nw) = 0.
+ 703 CONTINUE
+
+ DO 704 nw = wrk4lof,wrk4hif
+ DO 704 mw = wrk4loe,wrk4hie
+ DO 704 lw = wrk4lot,wrk4hit
+ DO 704 kw = wrk4loz,wrk4hiz
+ DO 704 jw = wrk4loy,wrk4hiy
+ DO 704 iw = wrk4lox,wrk4hix
+ vec(iw,jw,kw,lw,mw,nw) = 0.
+ 704 CONTINUE
+
+ DO 705 nw = wrk5lof,wrk5hif
+ DO 705 mw = wrk5loe,wrk5hie
+ DO 705 lw = wrk5lot,wrk5hit
+ DO 705 kw = wrk5loz,wrk5hiz
+ DO 705 jw = wrk5loy,wrk5hiy
+ DO 705 iw = wrk5lox,wrk5hix
+ c(iw,jw,kw,lw,mw,nw) = 0.
+ 705 CONTINUE
+
+ DO 706 nw = wrk6lof,wrk6hif
+ DO 706 mw = wrk6loe,wrk6hie
+ DO 706 lw = wrk6lot,wrk6hit
+ DO 706 kw = wrk6loz,wrk6hiz
+ DO 706 jw = wrk6loy,wrk6hiy
+ DO 706 iw = wrk6lox,wrk6hix
+ ddat_1d(iw,jw,kw,lw,mw,nw) = 0.
+ 706 CONTINUE
+
+ DO 707 nw = wrk7lof,wrk7hif
+ DO 707 mw = wrk7loe,wrk7hie
+ DO 707 lw = wrk7lot,wrk7hit
+ DO 707 kw = wrk7loz,wrk7hiz
+ DO 707 jw = wrk7loy,wrk7hiy
+ DO 707 iw = wrk7lox,wrk7hix
+ isave_jsave(iw,jw,kw,lw,mw,nw) = 0.
+ 707 CONTINUE
+
+ DO 708 nw = wrk8lof,wrk8hif
+ DO 708 mw = wrk8loe,wrk8hie
+ DO 708 lw = wrk8lot,wrk8hit
+ DO 708 kw = wrk8loz,wrk8hiz
+ DO 708 jw = wrk8loy,wrk8hiy
+ DO 708 iw = wrk8lox,wrk8hix
+ ok(iw,jw,kw,lw,mw,nw) = 0.
+ 708 CONTINUE
+
+ DO 709 nw = wrk9lof,wrk9hif
+ DO 709 mw = wrk9loe,wrk9hie
+ DO 709 lw = wrk9lot,wrk9hit
+ DO 709 kw = wrk9loz,wrk9hiz
+ DO 709 jw = wrk9loy,wrk9hiy
+ DO 709 iw = wrk9lox,wrk9hix
+ eofwork(iw,jw,kw,lw,mw,nw) = 0.
+ 709 CONTINUE
+
+* Find the number of eofs to solve for.
+* neof = number of (x,y) points with frac_timeser good data.
+* Set OK to mark where they are. (note this also allows for
+* working around continental boundaries or other areas where
+* entire time series are missing)
+
+ CALL count_neof (arg_1, neof, ok, nx, ny, nt, k1, m1, n1,
+ . arg_lo_ss, arg_hi_ss, arg_incr, mx,
+ . bad_flag(ARG1), frac_timeser, err_msg, ier)
+ IF (ier .ne. 0) then
+ GOTO 5010
+ ENDIF
+
+* Put the data into the array ddat_1d(neof,nt)
+
+ CALL pack_ef (arg_1, ddat_1d, isave_jsave, neof,
+ . ok, frac_timeser, nx, ny, nt, k1, m1, n1,
+ . arg_lo_ss, arg_hi_ss, arg_incr)
+
+* Solve for the EOF's: eigenvectors, time functions, percent variance explained.
+
+ CALL solve_eof_stat_tgap (ddat_1d, neof, nt, k, m, n, val, vec,
+ . taf, pct, c, result, isave_jsave, eofwork, res_lo_ss,
+ . res_hi_ss, res_incr, bad_flag(ARG1), bad_flag_result,
+ . frac_timeser, err_msg, ier)
+ IF (ier .NE. 0) GOTO 5020
+
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 100 CONTINUE
+ m1 = m1 + arg_incr(E_AXIS,ARG1)
+ 200 CONTINUE
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
+ 300 CONTINUE
+
+ RETURN
+
+ 5010 CALL ef_bail_out (id, err_msg)
+ RETURN
+
+ 5020 WRITE (err_out, 5500) k, m, n, err_msg
+ 5500 FORMAT ('k,m,n=', 3I3, A250)
+ CALL ef_bail_out (id, err_out)
+ RETURN
+
+ END
+
+***********************************************************************
+
+ SUBROUTINE solve_eof_stat_tgap (ddat_1d, neof, nt, k, m, n, val, vec,
+ . taf, pct, c, result, isave_jsave, eofwork, res_lo_ss,
+ . res_hi_ss, res_incr, bad_flag_dat, bad_flag_result,
+ . frac_timeser, err_msg, ier)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+* arguments
+ INTEGER neof, nt, k, m, n
+ REAL ddat_1d(neof,nt)
+ REAL val(*)
+ REAL vec(neof, neof)
+ REAL taf(neof, nt)
+ REAL pct(*)
+ REAL c(neof, neof)
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+ REAL isave_jsave(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+ . wrk7loz:wrk7hiz, wrk7lot:wrk7hit,
+ . wrk7loe:wrk7hie, wrk7lof:wrk7hif)
+ REAL eofwork(wrk9lox:wrk9hix, wrk9loy:wrk9hiy,
+ . wrk9loz:wrk9hiz, wrk9lot:wrk9hit,
+ . wrk9loe:wrk9hie, wrk9lof:wrk9hif)
+ INTEGER res_lo_ss(6), res_hi_ss(6), res_incr(6)
+ REAL bad_flag_dat, bad_flag_result, frac_timeser
+ CHARACTER*(*) err_msg
+ INTEGER ier
+
+* local variables
+ INTEGER i, j, l
+
+ IF (frac_timeser .LT. 1.) THEN
+ CALL EOFIN_CHEL_GAP (ddat_1d, neof, nt, val, vec, taf, pct, c,
+ . eofwork, bad_flag_dat, bad_flag_result, err_msg, ier)
+ IF (ier .NE. 0) RETURN
+ ELSE
+ CALL EOFIN(ddat_1d, neof, nt, val, vec, taf, pct, c, eofwork)
+ ENDIF
+
+* Result for j = 1 is the # eigenfunctions.
+
+ j = res_lo_ss(Y_AXIS)
+ DO 130 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ DO 110 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ result(i,j,k,l,m,n) = neof
+ 110 CONTINUE
+ 130 CONTINUE
+
+* Result for j = 2 is the percent variation explained by the eigenfunctions
+
+ j = j + res_incr(Y_AXIS)
+ DO 230 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ DO 210 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ result(i,j,k,l,m,n) = pct(i)
+ 210 CONTINUE
+ 230 CONTINUE
+
+* Result for j = 3 is the eigenvalue for each eigenfunction
+
+ j = j + res_incr(Y_AXIS)
+ DO 330 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ DO 310 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ result(i,j,k,l,m,n) = val(i)
+ 310 CONTINUE
+ 330 CONTINUE
+
+ RETURN
+ END
diff --git a/external_functions/eof/eof_tfunc_tgap.F b/external_functions/eof/eof_tfunc_tgap.F
new file mode 100644
index 0000000..e519579
--- /dev/null
+++ b/external_functions/eof/eof_tfunc_tgap.F
@@ -0,0 +1,617 @@
+*
+* eof_tfunc_tgap.F
+*
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+* Ansley Manke
+* Sep 1998
+* Aug 2000 change fcn description; argument can be fcn of Z as well as x,y,t
+* May 2001 Use simpler solver EOFIN when frac_timeser = 1.
+* Jul 2001 Move to statically linked code in fer/efi.
+* Jul 2001 move count_eof and pack_eof to file eofsubs.f, rename solve_eof
+* to solve_eof_tfunc_tgap.
+* Make the function work w/ data having multiple depths: compute
+* EOF solution for each depth.
+* Aug 2001 move to fer/efi directory, to be statically linked to Ferret.
+* Change INCLUDE statements to remove directory spec.
+* Feb 2003 Add a test that NEOF <= max_neof, which is dictated by work
+* arrays in the solvers in TRIDIN in eofsubs.F
+* Jun 2003 Workspace arrays need to be initialized for each vertical level.
+*
+* Compute EOF/s and time amplitude funcions from a 2-d field, or for each level
+* of a 3-D field. Based on programs (coadseof.f, etc.) by Dai McClurg and
+* Ansley Manke and calls Billy Kessler's method for finding EOFs of NON-gappy
+* time series EOFIN, or optionally his implementation of Chelton's '82 method
+* for finding EOFs of gappy time series.
+*
+* Return time amplitude functions.
+*
+*
+* In this SUBROUTINE we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_ARGS, NORMAL, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE eof_tfunc_tgap_init(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+
+************************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+ CALL ef_set_desc(id,
+ . 'Compute EOF time functions from XYT field with gappy time series')
+
+ CALL ef_set_num_args(id, 2)
+
+ CALL ef_set_axis_inheritance_6d(id,
+ . ABSTRACT, NORMAL,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS,
+ . IMPLIED_BY_ARGS, IMPLIED_BY_ARGS)
+ CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+
+
+ CALL ef_set_num_work_arrays(id, 9)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'A')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Variable in x,y,t; may be fcn of z,e,f')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . NO, NO, YES, YES, YES, YES)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'frac_timeser')
+ CALL ef_set_arg_unit(id, arg, ' ')
+ CALL ef_set_arg_desc(id, arg,
+ . 'Use only those time series with this fraction valid data')
+ CALL ef_set_axis_influence_6d(id, arg,
+ . NO, NO, NO, NO, NO, NO)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+************************************************************************
+
+ RETURN
+ END
+
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis. The user
+* configurable information consists of the following:
+*
+* loss lo subscript for an axis
+*
+* hiss hi subscript for an axis
+*
+
+ SUBROUTINE eof_tfunc_tgap_result_limits(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER my_lo_l, my_hi_l
+
+ INTEGER nx, ny
+
+* Use utility functions to get context information about the
+* 1st argument, to set the abstract axis lo and hi indices.
+
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ nx = arg_hi_ss(X_AXIS, ARG1) - arg_lo_ss(X_AXIS, ARG1) + 1
+ ny = arg_hi_ss(Y_AXIS, ARG1) - arg_lo_ss(Y_AXIS, ARG1) + 1
+
+ my_lo_l = 1
+ my_hi_l = nx * ny
+
+ CALL ef_set_axis_limits(id, X_AXIS, my_lo_l, my_hi_l)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+*
+* In this subroutine we request an amount of storage to be supplied
+* by Ferret and passed as an additional argument.
+*
+ SUBROUTINE eof_tfunc_tgap_work_size(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+*
+* Set the work arrays, X/Y/Z/T/E/F dimensions
+*
+* ef_set_work_array_dims_6d(id, array #,
+* xlo, ylo, zlo, tlo, elo, flo,
+* xhi, yhi, zhi, thi, ehi, fhi)
+*
+ COMMON /eof_tfunc_tgapSTOR/ mx
+ INTEGER mx1, my1, mt1, mxmt, mxmx, mx
+
+ INTEGER iwork
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+ mx1 = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+ my1 = 1 + arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1)
+ mt1 = 1 + arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1)
+
+ mx = mx1 * my1 + 10
+ mxmt = mx * mt1 + 10
+ mxmx = mx * mx + 10
+
+* val
+ iwork = 1
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 1, 1, 1, 1, 1)
+
+* taf
+ iwork = 2
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmt, 1, 1, 1, 1, 1)
+
+* pct
+ iwork = 3
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 1, 1, 1, 1, 1)
+
+* vec
+ iwork = 4
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmx, 1, 1, 1, 1, 1)
+
+* c
+ iwork = 5
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmx, 1, 1, 1, 1, 1)
+
+* ddat_1d
+ iwork = 6
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mxmt, 1, 1, 1, 1, 1)
+
+* isave_jsave
+ iwork = 7
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 2, 1, 1, 1, 1)
+
+* ok
+ iwork = 8
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx1, my1, 1, 1, 1, 1)
+
+* eofwork
+ iwork = 9
+ CALL ef_set_work_array_dims_6d(id, iwork,
+ . 1, 1, 1, 1, 1, 1,
+ . mx, 10, 1, 1, 1, 1)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+*
+* In this SUBROUTINE we compute the result
+*
+
+ SUBROUTINE eof_tfunc_tgap_compute(id, arg_1, arg_2, result,
+ . val, taf, pct, vec, c, ddat_1d, isave_jsave, ok, eofwork)
+
+* arg_1 variable, function of (x,y,t)
+* result neof*NT time amplitude functions
+
+* Work arrays:
+* val, taf, pct, vec, c, ddat_1d, isave_jsave, ok
+
+* val(neof) eigenvalues (Lambda)
+* result == vec(neof,neof) eigenvectors (Lambda*U). Same units as data.
+* taf(neof,nt) time amplitude functions (V). Dimensionless.
+* pct(neof) % variance represented by each EOF.
+* c(neof,neof) work space for cov matrix (garbage output)
+* isave_jsave save the locations of the data in the x-y plane
+* eofwork used by QRSYM and other solver routines; replaces
+* original ALPHA, BETA, BB, and P arrays.
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ COMMON /eof_tfunc_tgapSTOR/ mx
+ INTEGER mx
+
+ INTEGER id
+
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy, mem2loz:mem2hiz,
+ . mem2lot:mem2hit, mem2loe:mem2hie, mem2lof:mem2hif)
+
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+
+* Dimension the work arrays.
+
+ REAL val(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
+ . wrk1loz:wrk1hiz, wrk1lot:wrk1hit,
+ . wrk1loe:wrk1hie, wrk1lof:wrk1hif)
+ REAL taf(wrk2lox:wrk2hix, wrk2loy:wrk2hiy,
+ . wrk2loz:wrk2hiz, wrk2lot:wrk2hit,
+ . wrk2loe:wrk2hie, wrk2lof:wrk2hif)
+ REAL pct(wrk3lox:wrk3hix, wrk3loy:wrk3hiy,
+ . wrk3loz:wrk3hiz, wrk3lot:wrk3hit,
+ . wrk3loe:wrk3hie, wrk3lof:wrk3hif)
+ REAL vec(wrk4lox:wrk4hix, wrk4loy:wrk4hiy,
+ . wrk4loz:wrk4hiz, wrk4lot:wrk4hit,
+ . wrk4loe:wrk4hie, wrk4lof:wrk4hif)
+ REAL c(wrk5lox:wrk5hix, wrk5loy:wrk5hiy,
+ . wrk5loz:wrk5hiz, wrk5lot:wrk5hit,
+ . wrk5loe:wrk5hie, wrk5lof:wrk5hif)
+ REAL ddat_1d(wrk6lox:wrk6hix, wrk6loy:wrk6hiy,
+ . wrk6loz:wrk6hiz, wrk6lot:wrk6hit,
+ . wrk6loe:wrk6hie, wrk6lof:wrk6hif)
+ REAL isave_jsave(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+ . wrk7loz:wrk7hiz, wrk7lot:wrk7hit,
+ . wrk7loe:wrk7hie, wrk7lof:wrk7hif)
+ REAL ok(wrk8lox:wrk8hix, wrk8loy:wrk8hiy,
+ . wrk8loz:wrk8hiz, wrk8lot:wrk8hit,
+ . wrk8loe:wrk8hie, wrk8lof:wrk8hif)
+ REAL eofwork(wrk9lox:wrk9hix, wrk9loy:wrk9hiy,
+ . wrk9loz:wrk9hiz, wrk9lot:wrk9hit,
+ . wrk9loe:wrk9hie, wrk9lof:wrk9hif)
+
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable''s axes.
+
+ INTEGER res_lo_ss(6),
+ . res_hi_ss(6),
+ . res_incr (6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+
+************************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER neof, ier
+ CHARACTER*255 err_msg, err_out
+
+ INTEGER nx, ny, nt, k, m, n, k1, m1, n1,
+ . iw, jw, kw, lw, mw, nw
+ REAL frac_timeser
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* get array sizes
+
+ nx = 1 + arg_hi_ss(X_AXIS,ARG1) - arg_lo_ss(X_AXIS,ARG1)
+ ny = 1 + arg_hi_ss(Y_AXIS,ARG1) - arg_lo_ss(Y_AXIS,ARG1)
+ nt = 1 + arg_hi_ss(T_AXIS,ARG1) - arg_lo_ss(T_AXIS,ARG1)
+
+* Get time percent parameter.
+
+ frac_timeser = arg_2(arg_lo_ss(X_AXIS,ARG2),
+ . arg_lo_ss(Y_AXIS,ARG2),
+ . arg_lo_ss(Z_AXIS,ARG2),
+ . arg_lo_ss(T_AXIS,ARG2),
+ . arg_lo_ss(E_AXIS,ARG2),
+ . arg_lo_ss(F_AXIS,ARG2))
+
+* Compute EOF for each depth, ensemble, forecast
+
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ DO 300 n = res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+ m1 = arg_lo_ss(E_AXIS,ARG1)
+ DO 200 m = res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ DO 100 k = res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+* Initialize work arrays.
+
+ DO 701 nw = wrk1lof,wrk1hif
+ DO 701 mw = wrk1loe,wrk1hie
+ DO 701 lw = wrk1lot,wrk1hit
+ DO 701 kw = wrk1loz,wrk1hiz
+ DO 701 jw = wrk1loy,wrk1hiy
+ DO 701 iw = wrk1lox,wrk1hix
+ val(iw,jw,kw,lw,mw,nw) = 0.
+ 701 CONTINUE
+
+ DO 702 nw = wrk2lof,wrk2hif
+ DO 702 mw = wrk2loe,wrk2hie
+ DO 702 lw = wrk2lot,wrk2hit
+ DO 702 kw = wrk2loz,wrk2hiz
+ DO 702 jw = wrk2loy,wrk2hiy
+ DO 702 iw = wrk2lox,wrk2hix
+ taf(iw,jw,kw,lw,mw,nw) = 0.
+ 702 CONTINUE
+
+ DO 703 nw = wrk3lof,wrk3hif
+ DO 703 mw = wrk3loe,wrk3hie
+ DO 703 lw = wrk3lot,wrk3hit
+ DO 703 kw = wrk3loz,wrk3hiz
+ DO 703 jw = wrk3loy,wrk3hiy
+ DO 703 iw = wrk3lox,wrk3hix
+ pct(iw,jw,kw,lw,mw,nw) = 0.
+ 703 CONTINUE
+
+ DO 704 nw = wrk4lof,wrk4hif
+ DO 704 mw = wrk4loe,wrk4hie
+ DO 704 lw = wrk4lot,wrk4hit
+ DO 704 kw = wrk4loz,wrk4hiz
+ DO 704 jw = wrk4loy,wrk4hiy
+ DO 704 iw = wrk4lox,wrk4hix
+ vec(iw,jw,kw,lw,mw,nw) = 0.
+ 704 CONTINUE
+
+ DO 705 nw = wrk5lof,wrk5hif
+ DO 705 mw = wrk5loe,wrk5hie
+ DO 705 lw = wrk5lot,wrk5hit
+ DO 705 kw = wrk5loz,wrk5hiz
+ DO 705 jw = wrk5loy,wrk5hiy
+ DO 705 iw = wrk5lox,wrk5hix
+ c(iw,jw,kw,lw,mw,nw) = 0.
+ 705 CONTINUE
+
+ DO 706 nw = wrk6lof,wrk6hif
+ DO 706 mw = wrk6loe,wrk6hie
+ DO 706 lw = wrk6lot,wrk6hit
+ DO 706 kw = wrk6loz,wrk6hiz
+ DO 706 jw = wrk6loy,wrk6hiy
+ DO 706 iw = wrk6lox,wrk6hix
+ ddat_1d(iw,jw,kw,lw,mw,nw) = 0.
+ 706 CONTINUE
+
+ DO 707 nw = wrk7lof,wrk7hif
+ DO 707 mw = wrk7loe,wrk7hie
+ DO 707 lw = wrk7lot,wrk7hit
+ DO 707 kw = wrk7loz,wrk7hiz
+ DO 707 jw = wrk7loy,wrk7hiy
+ DO 707 iw = wrk7lox,wrk7hix
+ isave_jsave(iw,jw,kw,lw,mw,nw) = 0.
+ 707 CONTINUE
+
+ DO 708 nw = wrk8lof,wrk8hif
+ DO 708 mw = wrk8loe,wrk8hie
+ DO 708 lw = wrk8lot,wrk8hit
+ DO 708 kw = wrk8loz,wrk8hiz
+ DO 708 jw = wrk8loy,wrk8hiy
+ DO 708 iw = wrk8lox,wrk8hix
+ ok(iw,jw,kw,lw,mw,nw) = 0.
+ 708 CONTINUE
+
+ DO 709 nw = wrk9lof,wrk9hif
+ DO 709 mw = wrk9loe,wrk9hie
+ DO 709 lw = wrk9lot,wrk9hit
+ DO 709 kw = wrk9loz,wrk9hiz
+ DO 709 jw = wrk9loy,wrk9hiy
+ DO 709 iw = wrk9lox,wrk9hix
+ eofwork(iw,jw,kw,lw,mw,nw) = 0.
+ 709 CONTINUE
+
+* Find the number of EOFS to solve for.
+* neof = number of (x,y) points with frac_timeser good data.
+* Set OK to mark where they are. (note this also allows for
+* working around continental boundaries or other areas where
+* entire time series are missing)
+
+ CALL count_neof (arg_1, neof, ok, nx, ny, nt, k1, m1, n1,
+ . arg_lo_ss, arg_hi_ss, arg_incr, mx,
+ . bad_flag(ARG1), frac_timeser, err_msg, ier)
+ IF (ier .NE. 0) then
+ GOTO 5010
+ ENDIF
+
+* Put the data into the array ddat_1d(neof,nt)
+
+ CALL pack_ef (arg_1, ddat_1d, isave_jsave, neof,
+ . ok, frac_timeser, nx, ny, nt, k1, m1, n1,
+ . arg_lo_ss, arg_hi_ss, arg_incr)
+
+* Solve for the EOF's: eigenvectors, time functions, percent variance explained.
+
+ CALL solve_eof_tfunc_tgap (ddat_1d, neof, nt, k, m, n, val, vec,
+ . taf, pct, c, result, isave_jsave, eofwork, res_lo_ss,
+ . res_hi_ss, res_incr, bad_flag(ARG1), bad_flag_result,
+ . frac_timeser, err_msg, ier)
+ IF (ier .NE. 0) GOTO 5020
+
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ 100 CONTINUE
+ m1 = m1 + arg_incr(E_AXIS,ARG1)
+ 200 CONTINUE
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
+ 300 CONTINUE
+
+ RETURN
+
+ 5010 CALL ef_bail_out (id, err_msg)
+ RETURN
+
+ 5020 WRITE (err_out, 5500) k, m, n, err_msg
+ 5500 FORMAT ('k,m,n=', 3I3, A250)
+ CALL ef_bail_out (id, err_out)
+ RETURN
+
+ END
+
+***********************************************************************
+
+ SUBROUTINE solve_eof_tfunc_tgap (ddat_1d, neof, nt, k, m, n, val, vec,
+ . taf, pct, c, result, isave_jsave, eofwork, res_lo_ss,
+ . res_hi_ss, res_incr, bad_flag_dat, bad_flag_result,
+ . frac_timeser, err_msg, ier)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+* arguments
+ INTEGER neof, nt, k, m, n
+ REAL ddat_1d(neof,nt)
+ REAL val(*)
+ REAL vec(neof, neof)
+ REAL taf(neof, nt)
+ REAL pct(*)
+ REAL c(neof, neof)
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+ REAL isave_jsave(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+ . wrk7loz:wrk7hiz, wrk7lot:wrk7hit,
+ . wrk7loe:wrk7hie, wrk7lof:wrk7hif)
+ REAL eofwork(wrk9lox:wrk9hix, wrk9loy:wrk9hiy,
+ . wrk9loz:wrk9hiz, wrk9lot:wrk9hit,
+ . wrk9loe:wrk9hie, wrk9lof:wrk9hif)
+ INTEGER res_lo_ss(6), res_hi_ss(6), res_incr(6)
+ REAL bad_flag_dat, bad_flag_result, frac_timeser
+ CHARACTER*(*) err_msg
+ INTEGER ier
+
+* local variables
+ INTEGER i, j, l, cnt
+
+ IF (frac_timeser .LT. 1.) THEN
+ CALL EOFIN_CHEL_GAP (ddat_1d, neof, nt, val, vec, taf, pct, c,
+ . eofwork, bad_flag_dat, bad_flag_result, err_msg, ier)
+ IF (ier .NE. 0) RETURN
+ ELSE
+ CALL EOFIN(ddat_1d, neof, nt, val, vec, taf, pct, c, eofwork)
+ ENDIF
+
+* Result is the time functions.
+
+ j = res_lo_ss(Y_AXIS)
+ DO 120 i = 1, neof
+ cnt = 1
+ DO 110 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ result(i,j,k,l,m,n) = taf(i,cnt)
+ cnt = cnt + 1
+ 110 CONTINUE
+ 120 CONTINUE
+
+ DO 220 i = neof+1, res_hi_ss(X_AXIS)
+ DO 210 l = res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ result(i,j,k,l,m,n) = bad_flag_result
+ 210 CONTINUE
+ 220 CONTINUE
+
+ RETURN
+ END
diff --git a/external_functions/eof/eofsubs.F b/external_functions/eof/eofsubs.F
new file mode 100644
index 0000000..3d51d5b
--- /dev/null
+++ b/external_functions/eof/eofsubs.F
@@ -0,0 +1,1012 @@
+C eofsubs.F
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+C EOF code from Billy Kessler. For cases where time series do not
+C have any gaps. Implemented 7/2001
+C
+C At end are routines count_eof and pack_eof written with Dai McClurg
+C to count the good timeseries and pack the X,Y,T array into an neof by T
+C array.
+C
+C
+C Ansley Manke Change dimension statements for arguments to be (*) or
+C (NX,*), etc. The work arrays in the calling functions
+C have extra space to accomodate I = 1,N... BB(I+1) in
+C QRSYM, for example.
+C
+C Declare all variables.
+C
+C Aug 2001 move to fer/efi directory, EPFs to be statically linked to Ferret.
+C Change INCLUDE statements to remove directory spec.
+C
+
+C v5.41 *kob* 6/02 - remove unneeded ferret_cmn from INCLUDE lines -
+C cygwin does not like them for some reason
+C
+c Date: Thu, 18 Jan 2001 16:44:10 -0800 (PST)
+c From: kessler at pmel.noaa.gov (Billy Kessler)
+c Subject: more EOF code (reverse time and space)
+c
+c The attached code (one file) contains the following subroutines:
+c
+c First set are three different front ends that call the
+c routines at bottom that do the work:
+c
+c EOFIN ! for usual EOFs (more times than locations)
+c EOFIN2 ! EOFs when there are more locations than times
+c EOFIN3C ! routine that allows weighting the data (probably
+c get rid of this one for ferret)
+c
+c These are the black-box routines that do the actual work
+c
+c FRACVAR ! find percent variance at each point
+c QRSYM ! call all the other routines in turn
+c HOUSEH ! Householder tridiagonalization of matrix
+c QRSTD ! find eigenvalues of tridiagonal matrix
+c TRIDIN ! find eigenvectors of tridiagonal matrix
+c BACKS ! does something
+c
+c * Actually, either EOFIN or EOFIN2 produces exactly the same
+c result (but see note 1). These two routines do not care about
+c zero eigenvalues, so there is really no restriction at all on
+c their use. However, EOFIN2 will be faster if there are more
+c locations than times. So a possible choice for this whole mess
+c would be just to use EOFIN for all cases (except for gappy time
+c series). That might be the most straightforward thing to do,
+c even if it is not the most elegant code.
+c
+c Notes:
+c
+c Note 1: The eigenvalues out of EOFIN2 differ from those of EOFIN
+c by the factor (NT/NX). THis is due to the fact that there are NT
+c non-zero eigenvalues produced by EOFIN2 (since it assumes that NT<NX),
+c while there are NX produced by EOFIN. However, I have scaled the
+c EOFs and PCs to be identical. This should not matter to anyone.
+c
+c Note 3: Differences between the outputs of these three occur for
+c the higher eigenvalues/vectors, as the values of the eigenvalues
+c come down towards the computational noise and slight differences
+c in cutoff values hardwired into the routines. These are iterative
+c search routines and I have not tried to make the cutoffs (when the
+c routine decides it has found a value) consistent. This should not
+c matter for geophysical work.
+c
+c Note 4: Odd results can occur in SVDEOF for input fields that do
+c not have NX degrees of freedom. I spent an embarrassingly long
+c amount of time this afternoon "debugging" a test program that I
+c was feeding a simple idealized (product of sinusoids) field. The
+c field could be represented in only a handful of eigenvectors, but
+c SVDEOF cranked off NX of them, and the higher eigenvalues were
+c pure noise. Some of them were large though, and overwhelmed the
+c others. So if you are making up test fields, use the RANDU
+c function to add sufficient noise to "use up" all the eigenvectors.
+c This will not be a problem for geophysical fields, which always
+c have sufficient noise. For some reason EOFIN and EOFIN2 do not
+c appear to have this problem.
+c
+c Note 5: I wrote this code in 1982-83, with Nancy Soreide (then a
+c programmer for Stan Hayes) holding my hand. It was the first thing
+c I did as a graduate student.
+c
+c Billy
+
+C-------------------------------------------------------------------------------
+C EOFSUB_2.FOR MODIFIES TRIDIN TO PASS OVERFLOW. SEE NEAR END OF TRIDIN.
+C ALSO MODIFIES QRSYM TO NOTE PROGRESS TO 6.
+C-------------------------------------------------------------------------------
+
+C.................EOFIN.FOR is a front end to the EOF subroutines which follow.
+C.................Arrangement of output:
+C VEC(position,EOF#)
+C TAF(EOF#,time)
+
+c Variables:
+c data(nx,nt) I/O original data Returned demeaned
+c nx I number of spatial locations
+c nt I number of time realizations
+c val(nx) O eigenvalues (Lambda)
+c vec(nx,nx) O eigenvectors (Lambda*U). Same units as data.
+c taf(nx,nt) O time amplitude functions (V). Dimensionless.
+c pct(nx) O % variance represented by each EOF.
+
+ SUBROUTINE EOFIN(DATA,NX,NT,VAL,VEC,TAF,PCT,C,eofwork)
+
+ IMPLICIT NONE
+
+C Calling argument declarations.
+
+ INTEGER NX, NT
+ REAL DATA(NX,*),PCT(*),VAL(*),VEC(NX,*),TAF(NX,*),C(NX,*)
+ REAL eofwork(*)
+
+C Internal declarations
+
+ INTEGER I, J, I1, I2, IE, IS
+ REAL TVAR, RNT
+C---------------------------------------------------------------------
+C.................Find mean, demean DATA.
+C.................Note PCT is used first as a dummy to save the mean.
+ RNT = NT
+ DO 100 I=1,NX
+ PCT(I)=0.0
+ DO 110 J=1,NT
+110 PCT(I)=PCT(I)+DATA(I,J)/RNT
+ DO 120 J=1,NT
+120 DATA(I,J)=DATA(I,J)-PCT(I)
+100 CONTINUE
+C--------------------------------------------------------------------
+C.................Form the mean product matrix.
+ DO 210 I1=1,NX
+ DO 211 I2=1,NX
+
+ DO 200 J=1,NT
+200 C(I1,I2) = C(I1,I2) + DATA(I1,J) * DATA(I2,J)
+
+ C(I1,I2) = C(I1,I2)/ RNT
+
+211 CONTINUE
+210 CONTINUE
+C------------------------------------------------------------------------
+C.................Call the subroutines which do the work.
+
+ CALL QRSYM(C,NX,VAL,VEC, eofwork)
+
+C.................VEC(IS,IE) is arranged so that IS indexes the space
+C.................dimension of each eigenvector and IE the EOF number.
+C------------------------------------------------------------------------
+C.................Find the percentage of total variance accounted for by
+C.................each eigenvector.
+ TVAR=0.0
+ DO 220 I=1,NX
+220 TVAR=TVAR+VAL(I)
+ DO 221 I=1,NX
+221 PCT(I)=100.*ABS(VAL(I)/TVAR)
+C------------------------------------------------------------------------
+C.................Renormalize EOFs.
+C.................Thus EOFs have units of data, while time amplitude functions
+C.................are dimensionless.
+C.................Thus the sum of the squares of a given EOF = eigenvalue.
+C.................And the mean of a given TAF = 1.
+C-------------------------------------------------------------------------
+C.................First compute the time amplitude function from the data.
+C.................Renormalize each TAF by dividing by SQRT of its eigenvalue.
+
+ DO 350 J=1,NT ! loop over time
+ DO 360 IE=1,NX ! loop over EOF numbers
+
+ TAF(IE,J)=0.0
+
+ DO 370 IS=1,NX
+370 TAF(IE,J) = TAF(IE,J) + VEC(IS,IE)*DATA(IS,J)/SQRT(ABS(VAL(IE)))
+
+360 CONTINUE
+350 CONTINUE
+
+C.................Renormalize each EOF by the SQRT of its eigenvalue.
+
+ DO 300 IE=1,NX ! loop over EOF numbers
+ DO 310 IS=1,NX
+310 VEC(IS,IE) = VEC(IS,IE)*SQRT(ABS(VAL(IE)))
+300 CONTINUE
+C----------------------------------------------------------------------
+ RETURN
+ END
+
+
+C************************************************************************
+
+
+c -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+C eofin_chel_gap from Billy Kessler.
+C Ansley Manke 9/98 Change to have the bad-data flag "realbad" an argument
+C and to test for .GT. realbad rather than .LT.
+C Add argument pct_cutoff for where to stop the computations
+C that normalize eigenvectors and compute time functions,
+C and returning nout = number of functions to output.
+C Ansley Manke 8/99 Change dimension statements for arguments to be (*) or
+C (NX,*), etc. The work arrays in the calling functions
+C now have extra space to accomodate I = 1,N... BB(I+1) in
+C QRSYM, for example.
+C Ansley Manke 10/00 Change bad-data flag "realbad" to bad_flag_dat
+C and a separate flag for bad_flag_result, the bad-data
+C flag for the result.
+C Ansley Manke 1/01 declare all variables.
+C
+C Ansley Manke 5/01 remove pct_cutoff as a parameter
+C
+C Ansley Manke 9/05 Make all workspace be allocated as external function work
+C arrays. Arrays in TRIDIN passed in rather than declared.
+C Ansley Manke 7/12 Changes for solving EOF's in double precision.
+ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+c
+ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
+c
+c eof_gap_sub4.f
+c implements Chelton's '82 method for finding EOFs of gappy time series.
+c 4 fixes a few imprecisions in earlier versions:
+c 1) sets negative eigenvalues to eps = 1/10th smallest EV
+c 2) blanks TAF if ALL data missing at a given time realization.
+c If no gaps, reduces to ordinary EOFs (but computationally wasteful).
+c Requires eigenvalue finder SUBROUTINEs in eofsub_2.for.
+c Gaps assumed to be marked by values = 1.e34.
+c***************************************************************************
+
+C..........SUBROUTINE EOFIN_CHEL_GAP
+c..........is a front end to the EOF SUBROUTINEs in eofsub_2.for.
+
+
+c Variables:
+c data(nx,nt) I/O original data. Returned demeaned.
+c nx I number of spatial locations
+c nt I number of time realizations
+c val(nx) O eigenvalues (Lambda)
+c vec(nx,nx) O eigenvectors (Lambda*U). Same units as data.
+c taf(nx,nt) O time amplitude functions (V). Dimensionless.
+c pct(nx) O % variance represented by each EOF.
+c c(nx,nx) O work space for cov matrix (garbage output)
+
+C..........Arrangement of output:
+C VEC(position,EOF#)
+C TAF(EOF#,time)
+
+C---------------------------------------------------------------------
+ SUBROUTINE EOFIN_CHEL_GAP (DATA,NX,NT,VAL,VEC,TAF,PCT,C,
+ + eofwork, bad_flag_dat, bad_flag_result, err_msg, ier)
+
+ IMPLICIT NONE
+
+ INTEGER nx
+ REAL DATA(NX,*), PCT(*), VAL(*), VEC(NX,*),
+ + TAF(NX,*), C(NX,*)
+
+ CHARACTER*(*) err_msg
+
+ INTEGER nt, ier, ix, i2, it, i, j, i1, ie, npr,
+ . ic, is
+ REAL ct, eps, sumljgji, beta, tvar
+
+ REAL eofwork(*)
+ REAL bad_flag_dat, bad_flag_result
+
+C---------------------------------------------------------------------
+c.............initializations.
+
+ ier = 0
+ do 50 ix=1,nx
+ val(ix)=0.
+ pct(ix)=0.
+ do 51 i2=1,nx
+ vec(ix,i2)=0.
+51 c(ix,i2)=0.
+ do 52 it=1,nt
+52 taf(ix,it)=0.
+50 continue
+C---------------------------------------------------------------------
+C.................Find mean, demean DATA.
+C.................Note PCT is used first as a dummy to save the mean.
+ DO 100 I=1,NX
+ ct=0.
+ DO 110 J=1,NT
+ if (data(i,j).GT.bad_flag_dat) then
+ PCT(I)=PCT(I)+DATA(I,J)
+ ct=ct+1.
+ endif
+110 continue
+ if (ct.gt.0.) then
+ pct(i)=pct(i)/ct
+ else
+ write(err_msg,*) ' EOFIN_CHEL_GAP found the time series',
+ . ' at ix=',i,' with no values.'
+ ier = 1
+ return
+ endif
+ DO 120 J=1,NT
+ if (data(i,j).GT.bad_flag_dat) then
+ DATA(I,J)=DATA(I,J)-PCT(I)
+ endif
+120 continue
+100 CONTINUE
+C--------------------------------------------------------------------
+C.................Form the mean product matrix.
+ DO 210 I1=1,NX
+ DO 210 I2=1,NX
+
+ ct=0.
+ DO 200 J=1,NT
+ if (data(i1,j).GT.bad_flag_dat .and. data(i2,j).GT.bad_flag_dat) then
+ ct=ct+1.
+ C(I1,I2) = C(I1,I2) + DATA(I1,J) * DATA(I2,J)
+ endif
+200 continue
+
+ if (ct.gt.0.) then
+ c(i1,i2)=c(i1,i2)/ct
+ else
+ write(err_msg,*) ' EOFIN_CHEL_GAP found no overlapping',
+ . ' values in two time series at EOF-1D-coordinates ',
+ . i1,i2, ' Will be a zero in covariance matrix'
+ ier = 1
+ return
+ endif
+
+210 CONTINUE
+C------------------------------------------------------------------------
+C.................Call the subroutines which do the work.
+
+ CALL QRSYM(C,NX,VAL,VEC, eofwork)
+
+C.................VEC(IS,IE) is arranged so that IS indexes the space
+C.................dimension of each eigenvector and IE the EOF number.
+C------------------------------------------------------------------------
+c...................check for negative eigenvalues, set to eps.
+ do 250 ie=1,nx
+250 if (val(ie).lt.0.) GOTO 251
+ GOTO 252
+
+251 continue
+cc 251 write(6,*) 'Found a negative eigenvalue. EV#',ie,
+cc . ' Further checking ...'
+cc 251 write(6,*) 'Found a negative eigenvalue. Further checking ...'
+
+ eps=1.e20
+ do 255 ie=1,nx
+255 if (abs(val(ie)).lt.eps) eps=abs(val(ie))
+ eps=eps/10.
+cc write(6,*) 'Setting epsilon to',eps
+cc write(6,*) '= 1/10th of the smallest eigenvalue'
+ do 256 ie=1,nx
+ if (val(ie).lt.0.) then
+cc write(6,*) 'Setting EV #',ie,' =',val(ie),
+cc . ' to epsilon (=',eps,')'
+ val(ie)=eps
+ endif
+256 continue
+252 continue
+
+C----------------------------------------------------------------------
+C !ACM Array pctis used as a dummy array below, and we will compute it
+C again before returning.
+C.................Find the percentage of total variance accounted for by
+C.................each eigenvector.
+c.................Place this at the end to be able to use pct as dummy
+c.................for counting missing data in TAF calculation.
+ TVAR=0.0
+ DO 1220 I=1,NX
+1220 TVAR=TVAR+VAL(I)
+ DO 1221 I=1,NX
+ PCT(I)=100.*ABS(VAL(I)/TVAR)
+c 1221 IF (PCT(I) .GE. pct_cutoff) NX_compute = I
+1221 CONTINUE
+
+C------------------------------------------------------------------------
+C.................Renormalize EOFs.
+C.................Thus EOFs have units of data, while time amplitude functions
+C.................are dimensionless.
+C.................Thus the sum of the values of a given EOF = SQRT(eigenvalue).
+C.................And the mean of a given TAF = 1.
+C-------------------------------------------------------------------------
+C.................First compute the time amplitude function from the data.
+C.................Renormalize each TAF by dividing by SQRT of its eigenvalue.
+
+c...........................loop over time
+
+c nout = NX
+ DO 350 J=1,NT
+ npr = nt/ 10
+ if (nt .gt. 100) npr = (npr/ 10) * 10
+
+c............find out if any gaps exist at this time.
+c............use ic to count them and pct(nx) to keep track of where they are.
+ ic=0
+ do 400 is=1,nx
+ if (data(is,j).GT.bad_flag_dat) then
+ ic=ic+1
+ pct(is)=0.
+ else
+ pct(is)=1.
+ endif
+400 continue
+
+c..............if no blanks at this time, compute TAF as usual.
+ if (ic.eq.nx) then
+c................................loop over EOF numbers, then over space.
+ DO 360 IE=1,NX
+
+ DO 370 IS=1,NX
+370 TAF(IE,J) = TAF(IE,J) +
+ . VEC(IS,IE)*DATA(IS,J)
+360 CONTINUE
+ elseif (ic.eq.0) then
+c..............If there are NO data values at time j, then blank the TAF.
+ do 450 ie=1,nx
+450 taf(ie,j)=bad_flag_result
+ else
+c.............If there are some blanks, then use Chelton's estimate Beta_i(t).
+c.............Now use c(nx,nx) as dummy to keep Chelton's Gamma_ji.
+c.............Fill c(i,j), where i and j are both EOF #s.
+c.............Sum over MISSING data points only.
+
+ do 410 i1=1,NX
+ do 410 i2=1,nx
+ c(i1,i2)=0.
+ do 415 ix=1,nx
+415 if (pct(ix).eq.1)
+ . c(i1,i2)=c(i1,i2)+vec(ix,i1)*vec(ix,i2)
+410 continue
+
+c..................Loop over EOF numbers.
+ do 420 ie=1,NX
+
+c......................Find Beta_i(t) from Gamma_ij.
+c......................Also need the sum of Lambda_j*Gamma_ji**2 over all j.ne.i
+
+c.......................loop 430 sums over space.
+ sumljgji=0.
+ do 430 i2=1,nx
+430 if (i2.ne.ie) sumljgji=sumljgji+val(i2)*c(i2,ie)**2
+c
+c Billy said to replace the loop below with the one above. This is the
+c problem that Mick spotted.
+c
+c do 430 i2=1,nx
+c if (i2.eq.ie) GOTO 431
+c 430 sumljgji=sumljgji+val(i2)*c(i2,ie)**2
+c
+431 continue
+
+c.....................find beta.
+ beta = ( (1.-c(ie,ie)) * val(ie) ) /
+ . ( val(ie) * (1.-c(ie,ie))**2 + sumljgji )
+
+c...................Now find TAF. Summation in space over existing points only.
+ do 440 is=1,nx
+440 if (pct(is).eq.0.) taf(ie,j) = taf(ie,j) +
+ . beta * vec(is,ie) * data(is,j)
+
+420 continue
+
+
+ endif
+
+350 CONTINUE
+
+C-------------------------------------------------------------------------
+C.................Renormalize each EOF by the SQRT of its eigenvalue.
+c.................loop over EOF numbers, then over space.
+
+ DO 300 IE=1,NX
+ do 315 j=1,nt
+
+315 if (taf(ie,j) .GT. bad_flag_dat) taf(ie,j)=taf(ie,j)/sqrt(val(ie))
+ DO 316 IS=1,NX
+316 VEC(IS,IE) = VEC(IS,IE)*SQRT(VAL(IE))
+300 CONTINUE
+C----------------------------------------------------------------------
+C.................Find the percentage of total variance accounted for by
+C.................each eigenvector.
+c.................Place this at the end to be able to use pct as dummy
+c.................for counting missing data in TAF calculation.
+ TVAR=0.0
+ DO 220 I=1,NX
+220 TVAR=TVAR+VAL(I)
+ DO 221 I=1,NX
+221 PCT(I)=100.*ABS(VAL(I)/TVAR)
+C------------------------------------------------------------------------
+ RETURN
+ END
+
+C************************************************************************
+ SUBROUTINE QRSYM (A,N,E,X, eofwork)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER N
+ REAL A(N,*),E(*),X(N,*)
+
+* No need to declare Z,T,E,F dimensions since they are not used
+* and Fortran arrays are column major
+ REAL eofwork(wrk9lox:wrk9hix, wrk9loy:wrk9hiy)
+
+*
+* 5/99 ACM Use a work array eofwork rather than explicitly dimensioned
+* arrays ALPHA, BETA, BB, and P (originally declared in HOUSEH)
+c DIMENSION ALPHA(4000),BETA(4000),BB(4000)
+
+ INTEGER nb
+ REAL rnorm, eps
+ REAL macheps
+
+ nb=n
+
+* Set macheps once and pass into QRSTD where its used as ETA
+* and into TRIDIN.
+* Assign 2**(-48) to a variable so it is the correct size REAL
+* (should this be different under double-precision?)
+ macheps = 2.**(-48)
+
+ CALL HOUSEH(A,N,eofwork(1,1),eofwork(1,2),NB,
+ . eofwork(1,4))
+
+ CALL QRSTD (eofwork(1,1),eofwork(1,2),N,E,
+ . eofwork(1,3),RNORM,MACHEPS, EPS)
+
+ CALL TRIDIN(eofwork(1,1),eofwork(1,2),N,E,RNORM,
+ . N,macheps,X,NB,eofwork(1,5),eofwork(1,6),
+ . eofwork(1,7),eofwork(1,8),eofwork(1,9),
+ . eofwork(1,10) )
+
+ CALL BACKS(eofwork(1,2),A,N,X,N,EPS,NB)
+
+ RETURN
+ END
+
+
+C**********************************************************************
+
+ SUBROUTINE HOUSEH (G,N,A,B,NB, p)
+
+c 7/2002 ACM Make the sums etc for calculating the matrix inverse
+c double precision.
+
+ INTEGER NB
+ REAL G(NB,*),A(*),B(*)
+
+c DIMENSION P(2000)
+ REAL P(*)
+
+ INTEGER n, n2, k, k1, i, j, i1
+ REAL*8 sum, sigma, absb, alpha, beta, gamma, t
+
+ N2=N-2
+ IF(N2)45,44,2
+ 2 DO 43 K=1,N2
+ A(K)=G(K,K)
+ SUM=0
+ K1=K+1
+ DO 8 I=K1,N
+ 8 SUM=SUM+G(I,K)**2
+ SIGMA=SUM
+ ABSB=SQRT(SIGMA)
+ ALPHA=G(K+1,K)
+ BETA=-ABSB
+ IF(ALPHA)15,16,16
+ 15 BETA=ABSB
+ 16 B(K)=BETA
+ IF(SIGMA)18,43,18
+ 18 GAMMA=1/(SIGMA-ALPHA*BETA)
+ G(K+1,K)=ALPHA-BETA ! change C so now not Mean Prod Matrix
+ DO 27 I=K1,N
+ SUM=0
+ DO 23 J=K1,I
+ 23 SUM=SUM+G(I,J)*G(J,K)
+ IF(I.EQ.N)GO TO 27
+ I1=I+1
+ DO 26 J=I1,N
+ 26 SUM=SUM+G(J,I)*G(J,K)
+ 27 P(I)=GAMMA*SUM
+ SUM=0
+ DO 30 I=K1,N
+ 30 SUM=SUM+G(I,K)*P(I)
+ T=0.5*GAMMA*SUM
+ DO 32 I=K1,N
+ 32 P(I)=P(I)-T*G(I,K)
+ DO 35 I=K1,N
+ DO 35 J=K1,I
+ 35 G(I,J)=G(I,J)-G(I,K)*P(J)-P(I)*G(J,K)
+ 43 CONTINUE
+ 44 A(N-1)=G(N-1,N-1)
+ B(N-1)=G(N,N-1)
+ 45 A(N)=G(N,N)
+ B(N)=0.0
+ RETURN
+ END
+
+C************************************************************************
+
+ SUBROUTINE QRSTD (ALPHA,BETA,N,E,BB,RNORM,ETA,EPS)
+ REAL ALPHA(*),BETA(*),E(*),BB(*)
+
+ INTEGER n, i, k, m, n1, i1, j
+ REAL eta, delta, t, r, w, c, s, shift, g, p, ek1, rnorm, eps
+
+
+C W.KAHAN AND J.VARAH, TWO WORKING ALGORITHMS FOR THE EIGENVALUES OF A
+C SYMMETRIC TRIDIAGONAL MATRIX. TECHNICAL REPORT NO. CS43, AUGUST 11,
+C 1966. COMP.SC.DEPT. STANFORD UNIVERSITY.
+
+ DO 2 I=1,N
+ E(I)=ALPHA(I)
+ BB(I+1)=BETA(I)**2
+ 2 continue
+ BB(1)=0.0
+ BB(N+1)=0.0
+C INFINITY NORM OF TRIDIAGONAL MATRIX
+ RNORM=0.0
+ DO 5 I=1,N
+ 5 RNORM=AMAX1(RNORM,SQRT(BB(I))+ABS(E(I))+SQRT(BB(I+1)))
+C ETA = RELATIVE MACHINE PRECISION
+ DELTA=ETA*RNORM
+ EPS=DELTA**2
+ IF (EPS.EQ.0) RETURN
+ K=N
+ 6 M=K
+ IF(M.LE.0)GO TO 56
+ 8 K=K-1
+ IF(BB(K+1).GE.EPS)GO TO 8
+C NEXT
+ IF(K.NE.M-1)GO TO 13
+ BB(K+1)=0.0
+ GO TO 6
+C TWOBY2
+ 13 T=E(M)-E(M-1)
+ R=BB(M)
+ IF(K.GE.M-2)GO TO 22
+ W=BB(M-1)
+ C=T**2
+ S=R/(C+W)
+ IF(S*(W+S*C).GE.EPS)GO TO 22
+ M=M-1
+ BB(M+1)=0.0
+ GO TO 13
+C END NEGLIGIBLE BB
+ 22 IF(ABS(T).GE.DELTA)GO TO 25
+ S=SQRT(R)
+ GO TO 28
+ 25 W=2.0/T
+ S=W*R/(SQRT(W**2*R+1.0)+1.0)
+ 28 IF(K.NE.M-2)GO TO 33
+ E(M)=E(M)+S
+ E(M-1)=E(M-1)-S
+ BB(K+1)=0.0
+ GO TO 6
+C DO A QR STEP ON ROWS AND COLUMNS K+1 THROUGH M
+ 33 SHIFT=E(M)+S
+ IF(ABS(T).GE.DELTA)GO TO 37
+ W=E(M-1)-S
+ IF(ABS(W).LT.ABS(SHIFT))SHIFT=W
+ 37 S=0.0
+ G=E(K+1)-SHIFT
+ C=1.0
+ GO TO 45
+C LOOP
+ 40 C=P/T
+ S=W/T
+ W=G
+ EK1=E(K+1)
+ G=C*(EK1-SHIFT)-S*W
+ E(K)=(W-G)+EK1
+C ENTRY
+ 45 IF(ABS(G).GE.DELTA)GO TO 48
+ IF(G.GE.0.0)GO TO 47
+ G=G-C*DELTA
+ GO TO 48
+ 47 G=G+C*DELTA
+ 48 P=G**2/C
+ K=K+1
+ W=BB(K+1)
+ T=W+P
+ BB(K)=S*T
+ 50 IF(K.LT.M)GO TO 40
+ E(K)=G+SHIFT
+ GO TO 6
+C SORT
+ 56 IF(N.EQ.1)RETURN
+ N1=N-1
+ DO 70 I=1,N1
+ K=I
+ T=E(I)
+ I1=I+1
+ DO 62 J=I1,N
+ IF(E(J).LE.T)GO TO 62
+ T=E(J)
+ K=J
+ 62 CONTINUE
+ IF(I.EQ.K)GO TO 70
+ E(K)=E(I)
+ E(I)=T
+ 70 CONTINUE
+ RETURN
+ END
+
+C*************************************************************************
+
+ SUBROUTINE TRIDIN (C,B,N,W,NORM,M1,MACHEPS,Z,NB,M,P,Q,R,INT,X)
+
+ INTEGER nb, nminus1, ii
+ REAL C(*),B(*),W(*),Z(NB,*),
+ . M(*),P(*),Q(*),R(*),INT(*),X(*)
+
+C J.H.WILKINSON, CALCULATION OF THE EIGENVECTORS OF A SYMMETRIC
+C TRIDIAGONAL MATRIX BY INVERSE ITERATION. NUMERISCHE MATHEMATIK 4,
+C 368-376 (1962)
+
+* 9/05 ACM Use a work array eofwork rather than explicitly dimensioned
+* arrays M, P, Q, R, INT, and X
+
+c REAL M(4000),P(4000),Q(4000),R(4000),INT(4000),X(4002)
+
+ INTEGER N,M1
+ REAL NORM,MACHEPS
+
+ INTEGER I,J
+c REAL BI,BI1,Z1,LAMBDA,U,S,V,H,EPS,ETA
+ REAL BI,BI1,LAMBDA,U,V,H,EPS,ETA,BIG,BIGGER
+
+
+* In single-precision these were 1.e10 and 1.e20
+* Determined by trial and error.
+
+#ifdef double_p
+ big = 1.E20
+ bigger = 1.E30
+#else
+ big = 1.E10
+ bigger = 1.E20
+#endif
+
+ IF (N-1)10,20,30
+ 20 Z(1,1)=1.
+ 10 RETURN
+ 30 CONTINUE
+ LAMBDA=NORM
+ EPS=MACHEPS*NORM
+ DO 90 J=1,M1
+ LAMBDA=LAMBDA-EPS
+ IF(W(J).LT.LAMBDA)LAMBDA=W(J)
+ U=C(1)-LAMBDA
+ V=B(1)
+ IF(V.EQ.0)V=EPS
+ NMINUS1=N-1
+ DO 60 I=1,NMINUS1
+ BI=B(I)
+ IF(BI.EQ.0)BI=EPS
+ BI1=B(I+1)
+ IF(BI1.EQ.0)BI1=EPS
+ IF(ABS(BI).LT.ABS(U))GO TO 50
+ M(I+1)=U/BI
+ IF((M(I+1).EQ.0).AND.(BI.LE.EPS))M(I+1)=1
+ P(I)=BI
+ Q(I)=C(I+1)-LAMBDA
+ R(I)=BI1
+ U=V-M(I+1)*Q(I)
+ V=-M(I+1)*R(I)
+ INT(I+1)=+1
+ GO TO 60
+ 50 M(I+1)=BI/U
+ P(I)=U
+ Q(I)=V
+ R(I)=0
+ U=C(I+1)-LAMBDA-M(I+1)*V
+ V=BI1
+ INT(I+1)=-1
+ 60 CONTINUE
+ P(N)=U
+ Q(N)=0
+ R(N)=0
+ X(N+1)=0
+ X(N+2)=0
+ H=0
+ ETA=1.0/N
+ DO 67 II=1,N
+ I=N-II+1
+ U=ETA-Q(I)*X(I+1)-R(I)*X(I+2)
+ IF(P(I).NE.0)GO TO 65
+ X(I)=U/EPS
+ GO TO 66
+ 65 X(I)=U/P(I)
+ 66 H=H+ABS(X(I))
+ 67 CONTINUE
+ DO 68 I=1,N
+ 68 X(I)=X(I)/H
+ DO 75 I=2,N
+ IF(INT(I).LE.0)GO TO 70
+ U=X(I-1)
+ X(I-1)=X(I)
+ X(I)=U-M(I)*X(I-1)
+ GO TO 75
+ 70 X(I)=X(I)-M(I)*X(I-1)
+ 75 CONTINUE
+ H=0
+ DO 82 II=1,N
+ I=N-II+1
+ U=X(I)-Q(I)*X(I+1)-R(I)*X(I+2)
+ IF(P(I).NE.0)GO TO 80
+ X(I)=U/EPS
+ GO TO 81
+ 80 X(I)=U/P(I)
+C 81 H=H+X(I)**2
+ 81 IF (X(I).GT.BIG) THEN
+ H=BIGGER
+ ELSE
+ H=H+X(I)**2
+ ENDIF
+ 82 CONTINUE
+ H=SQRT(H)
+C STORE VECTORS AS COLUMNS
+ DO 85 I=1,N
+ 85 Z(I,J)=X(I)/H
+ 90 CONTINUE
+ RETURN
+ END
+
+C**********************************************************************
+
+ SUBROUTINE BACKS (BETA,A,N,X,M1,EPS,NB)
+ INTEGER n, nb, m1
+ REAL BETA(*), A(NB,*), X(NB,*), EPS
+
+ INTEGER j, kk, k, k1, i
+ REAL s
+
+
+C BACKTRANSFORMATION
+
+ 73 IF (N.LE.2)RETURN
+ DO 90 J=1,M1
+ DO 85 KK=3,N
+ K=N-KK+1
+ 76 IF (ABS(BETA(K)).LE.EPS) GO TO 85
+ S=0.0
+ K1=K+1
+ DO 75 I=K1,N
+ 75 S=S+A(I,K)*X(I,J)
+ S=S/(BETA(K)*A(K1,K))
+ DO 80 I=K1,N
+ 80 X(I,J)=X(I,J)+S*A(I,K)
+ 85 CONTINUE
+ 90 CONTINUE
+
+ RETURN
+ END
+
+************************************************************************
+
+ SUBROUTINE count_neof (arg_1, neof, ok, nx, ny, nt, k1, m1, n1,
+ . arg_lo_ss, arg_hi_ss, arg_incr, mx,
+ . flag, frac_timeser, err_msg, ier)
+
+* Find number of time series with valid data. This will be neof.
+* Set array OK to mark which (x,y) have some good data.
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+* arguments
+ INTEGER neof, nx, ny, nt, k1, m1, n1, mx, ier
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL ok(nx,ny)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+ REAL flag, frac_timeser
+ CHARACTER*(*) err_msg
+
+* local variables
+ INTEGER i, j, i1, j1, l1
+ REAL a_nt
+
+* Set array ok = 1 if frac_timeser fraction of valid data exists at the point.
+
+ a_nt = float(nt)
+
+ neof = 0
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 30 j = 1, ny
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 20 i = 1, nx
+
+ ok(i,j) = 0.
+ DO 10 l1 = arg_lo_ss(T_AXIS,ARG1), arg_hi_ss(T_AXIS,ARG1)
+ IF (arg_1(i1,j1,k1,l1,m1,n1) .ne. flag) then
+ ok(i,j) = ok(i,j) + 1.
+ endif
+ 10 CONTINUE
+ ok(i,j) = ok(i,j) / a_nt
+ IF (ok(i,j) .GE. frac_timeser) neof = neof + 1
+
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 20 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 30 CONTINUE
+
+ ier = 0
+ IF (neof .gt. mx) then
+ WRITE(err_msg,*) 'Increase parameter mx in eof.F ',
+ . 'Set mx at least', neof
+ ier = 1
+ RETURN
+ ENDIF
+
+ RETURN
+ END
+
+************************************************************************
+
+ SUBROUTINE pack_ef (arg_1, ddat_1d, isave_jsave, neof,
+ . ok, frac_timeser, nx, ny, nt, k1, m1, n1,
+ . arg_lo_ss, arg_hi_ss, arg_incr)
+
+* put arg_1(x,y,t) into one list ddat_1d(neof,nt)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER neof, nx, ny, nt, k1, m1, n1
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy, mem1loz:mem1hiz,
+ . mem1lot:mem1hit, mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL ddat_1d(neof,nt)
+ REAL isave_jsave(wrk7lox:wrk7hix, wrk7loy:wrk7hiy,
+ . wrk7loz:wrk7hiz, wrk7lot:wrk7hit,
+ . wrk7loe:wrk7hie, wrk7lof:wrk7hif)
+ REAL ok(nx,ny)
+ REAL frac_timeser
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+ INTEGER i, j, l, i1, j1, l1
+ INTEGER ipack
+
+ ipack = 0
+
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ DO 130 j = 1, ny
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ DO 120 i = 1, nx
+ IF (ok(i,j) .GE. frac_timeser) THEN
+ ipack = ipack + 1
+
+ isave_jsave(ipack,1,1,1,1,1) = i
+ isave_jsave(ipack,2,1,1,1,1) = j
+
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ DO 110 l = 1, nt
+ ddat_1d(ipack, l) = arg_1(i1,j1,k1,l1,m1,n1)
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ 110 CONTINUE
+
+ ENDIF
+ i1 = i1 + arg_incr(X_AXIS,ARG1)
+ 120 CONTINUE
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ 130 CONTINUE
+
+ RETURN
+ END
diff --git a/external_functions/sort/Makefile b/external_functions/sort/Makefile
index 53e5ea3..5b453a9 100644
--- a/external_functions/sort/Makefile
+++ b/external_functions/sort/Makefile
@@ -39,7 +39,7 @@ include ../ef_utility/platform_specific.mk.$(BUILDTYPE)
# Targets
#
-all: sorti_str.so bin_index_wt.so samplei_multi.so samplej_multi.so samplek_multi.so samplel_multi.so is_element_of_str.so samplexyt_nrst.so
+all:
#all: compressi_str.so string_to_id.so
debug:
diff --git a/external_functions/stringfcns/efstrings.F b/external_functions/stringfcns/efstrings.F
index cc2e176..4ac8d51 100644
--- a/external_functions/stringfcns/efstrings.F
+++ b/external_functions/stringfcns/efstrings.F
@@ -113,10 +113,18 @@
INTEGER id
+* Single precision Ferret: string arg and result need to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
REAL bad_flag(EF_MAX_ARGS), bad_flag_result
- REAL arg_1(2,mem1lox:mem1hix, mem1loy:mem1hiy,
+ REAL arg_1(strdf,mem1lox:mem1hix, mem1loy:mem1hiy,
. mem1loz:mem1hiz, mem1lot:mem1hit)
- REAL result(2,memreslox:memreshix, memresloy:memreshiy,
+ REAL result(strdf,memreslox:memreshix, memresloy:memreshiy,
. memresloz:memreshiz, memreslot:memreshit)
REAL*8 tax(wrk1lox:wrk1hix, wrk1loy:wrk1hiy,
. wrk1loz:wrk1hiz, wrk1lot:wrk1hit/2)
diff --git a/external_functions/stringfcns/length_of_strings.F b/external_functions/stringfcns/length_of_strings.F
index 7433b88..3030eec 100644
--- a/external_functions/stringfcns/length_of_strings.F
+++ b/external_functions/stringfcns/length_of_strings.F
@@ -69,8 +69,16 @@
INTEGER id
+* Single precision Ferret: string arg and result need to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
REAL bad_flag(EF_MAX_ARGS), bad_flag_result
- REAL arg_1(2,mem1lox:mem1hix, mem1loy:mem1hiy,
+ REAL arg_1(strdf,mem1lox:mem1hix, mem1loy:mem1hiy,
. mem1loz:mem1hiz, mem1lot:mem1hit)
REAL result(memreslox:memreshix, memresloy:memreshiy,
. memresloz:memreshiz, memreslot:memreshit)
diff --git a/external_functions/stringfcns/maxstrlen.F b/external_functions/stringfcns/maxstrlen.F
index 6daa303..17d8e02 100644
--- a/external_functions/stringfcns/maxstrlen.F
+++ b/external_functions/stringfcns/maxstrlen.F
@@ -70,7 +70,15 @@
INTEGER id
- REAL arg_1(2,mem1lox:mem1hix, mem1loy:mem1hiy,
+* Single precision Ferret: string arg and result need to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
+ REAL arg_1(strdf,mem1lox:mem1hix, mem1loy:mem1hiy,
. mem1loz:mem1hiz, mem1lot:mem1hit)
REAL result(memreslox:memreshix, memresloy:memreshiy,
. memresloz:memreshiz, memreslot:memreshit)
diff --git a/external_functions/stringfcns/pass_thru_string.F b/external_functions/stringfcns/pass_thru_string.F
index 0e85d34..43d6041 100644
--- a/external_functions/stringfcns/pass_thru_string.F
+++ b/external_functions/stringfcns/pass_thru_string.F
@@ -91,10 +91,17 @@
REAL bad_flag(1:EF_MAX_ARGS), bad_flag_result
-! string arg and result need to be twice the length.
- REAL arg_1(2,mem1lox:mem1hix, mem1loy:mem1hiy,
+* Single precision Ferret: string arg and result need to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
+ REAL arg_1(strdf,mem1lox:mem1hix, mem1loy:mem1hiy,
. mem1loz:mem1hiz, mem1lot:mem1hit)
- REAL result(2,memreslox:memreshix, memresloy:memreshiy,
+ REAL result(strdf,memreslox:memreshix, memresloy:memreshiy,
. memresloz:memreshiz, memreslot:memreshit)
* After initialization, the 'res_' arrays contain indexing information
diff --git a/external_functions/stringfcns/pick_a_string.F b/external_functions/stringfcns/pick_a_string.F
index 6fee156..ee12eab 100644
--- a/external_functions/stringfcns/pick_a_string.F
+++ b/external_functions/stringfcns/pick_a_string.F
@@ -130,13 +130,20 @@
REAL bad_flag(1:EF_MAX_ARGS), bad_flag_result
-* ! string arg and result need to be twice the length.
- REAL arg_1(2,mem1lox:mem1hix, mem1loy:mem1hiy,
+* Single precision Ferret: string arg and result need to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
+ REAL arg_1(strdf,mem1lox:mem1hix, mem1loy:mem1hiy,
. mem1loz:mem1hiz, mem1lot:mem1hit)
REAL arg_2(mem2lox:mem1hix, mem2loy:mem1hiy,
. mem2loz:mem1hiz, mem2lot:mem1hit)
- REAL result(2,memreslox:memreshix, memresloy:memreshiy,
+ REAL result(strdf,memreslox:memreshix, memresloy:memreshiy,
. memresloz:memreshiz, memreslot:memreshit)
* After initialization, the 'res_' arrays contain indexing information
diff --git a/external_functions/stringfcns/str_missing.F b/external_functions/stringfcns/str_missing.F
index fbbfe97..785d831 100644
--- a/external_functions/stringfcns/str_missing.F
+++ b/external_functions/stringfcns/str_missing.F
@@ -112,13 +112,20 @@
REAL bad_flag(1:EF_MAX_ARGS), bad_flag_result
-* ! string arg and result need to be twice the length.
+
+* Single precision Ferret: string arg and result need to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy,
. mem1loz:mem1hiz, mem1lot:mem1hit)
- REAL arg_2(2,mem2lox:mem2hix, mem2loy:mem2hiy,
+ REAL arg_2(strdf,mem2lox:mem2hix, mem2loy:mem2hiy,
. mem2loz:mem2hiz, mem2lot:mem2hit)
- REAL arg_3(2,mem3lox:mem3hix, mem3loy:mem3hiy,
+ REAL arg_3(strdf,mem3lox:mem3hix, mem3loy:mem3hiy,
. mem3loz:mem3hiz, mem3lot:mem3hit)
REAL result(memreslox:memreshix, memresloy:memreshiy,
. memresloz:memreshiz, memreslot:memreshit)
diff --git a/external_functions/stringfcns/string_cat3.F b/external_functions/stringfcns/string_cat3.F
index 81d6d9c..9017104 100644
--- a/external_functions/stringfcns/string_cat3.F
+++ b/external_functions/stringfcns/string_cat3.F
@@ -4,6 +4,7 @@
* Ansley Manke
* May 2006
*
+*
* Returns concatenation of 3 strings
*
* In this subroutine we provide information about
@@ -81,14 +82,21 @@
INTEGER id
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
REAL bad_flag(EF_MAX_ARGS), bad_flag_result
- REAL arg_1(2,mem1lox:mem1hix, mem1loy:mem1hiy,
+ REAL arg_1(strdf,mem1lox:mem1hix, mem1loy:mem1hiy,
. mem1loz:mem1hiz, mem1lot:mem1hit)
- REAL arg_2(2,mem2lox:mem2hix, mem2loy:mem2hiy,
+ REAL arg_2(strdf,mem2lox:mem2hix, mem2loy:mem2hiy,
. mem2loz:mem2hiz, mem2lot:mem2hit)
- REAL arg_3(2,mem3lox:mem3hix, mem3loy:mem3hiy,
+ REAL arg_3(strdf,mem3lox:mem3hix, mem3loy:mem3hiy,
. mem3loz:mem3hiz, mem3lot:mem3hit)
- REAL result(2,memreslox:memreshix, memresloy:memreshiy,
+ REAL result(strdf,memreslox:memreshix, memresloy:memreshiy,
. memresloz:memreshiz, memreslot:memreshit)
* After initialization, the 'res_' arrays contain indexing information
diff --git a/external_functions/stringfcns/string_len_sum.F b/external_functions/stringfcns/string_len_sum.F
index 3ab5605..379bde9 100644
--- a/external_functions/stringfcns/string_len_sum.F
+++ b/external_functions/stringfcns/string_len_sum.F
@@ -100,10 +100,17 @@
REAL bad_flag(1:EF_MAX_ARGS), bad_flag_result
* ! string arg and result need to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
- REAL arg_1(2,mem1lox:mem1hix, mem1loy:mem1hiy,
+
+ REAL arg_1(strdf,mem1lox:mem1hix, mem1loy:mem1hiy,
. mem1loz:mem1hiz, mem1lot:mem1hit)
- REAL arg_2(2,mem2lox:mem2hix, mem2loy:mem2hiy,
+ REAL arg_2(strdf,mem2lox:mem2hix, mem2loy:mem2hiy,
. mem2loz:mem2hiz, mem2lot:mem2hit)
REAL result(memreslox:memreshix, memresloy:memreshiy,
. memresloz:memreshiz, memreslot:memreshit)
diff --git a/external_functions/stringfcns/strings_as_args.F b/external_functions/stringfcns/strings_as_args.F
index 2c29641..82abef0 100644
--- a/external_functions/stringfcns/strings_as_args.F
+++ b/external_functions/stringfcns/strings_as_args.F
@@ -108,15 +108,21 @@
REAL bad_flag(1:EF_MAX_ARGS), bad_flag_result
-* ! string arg and result need to be twice the length.
-
- REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy,
+* Single precision Ferret: string arg and result need to be twice the length.
+ INTEGER strdf
+#ifdef double_p
+ PARAMETER (strdf = 1)
+#else
+ PARAMETER (strdf = 2)
+#endif
+
+ REAL arg_1(strdf,mem1lox:mem1hix, mem1loy:mem1hiy,
. mem1loz:mem1hiz, mem1lot:mem1hit)
- REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy,
+ REAL arg_2(strdf,mem2lox:mem2hix, mem2loy:mem2hiy,
. mem2loz:mem2hiz, mem2lot:mem2hit)
REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy,
. mem3loz:mem3hiz, mem3lot:mem3hit)
- REAL result(memreslox:memreshix, memresloy:memreshiy,
+ REAL result(strdf,memreslox:memreshix, memresloy:memreshiy,
. memresloz:memreshiz, memreslot:memreshit)
* After initialization, the 'res_' arrays contain indexing information
@@ -181,7 +187,7 @@
slen = slen1 + slen2
ENDIF
- CALL EF_PUT_STRING (textout, slen, result(i,j,k,l))
+ CALL EF_PUT_STRING (textout, slen, result(1,i,j,k,l))
l1 = l1 + arg_incr(T_AXIS,ARG1)
l2 = l2 + arg_incr(T_AXIS,ARG2)
diff --git a/fer/ccr/EF_InternalUtil.c b/fer/ccr/EF_InternalUtil.c
index 6b47588..56db464 100644
--- a/fer/ccr/EF_InternalUtil.c
+++ b/fer/ccr/EF_InternalUtil.c
@@ -89,6 +89,8 @@
* *acm* 1/12 - Ferret 6.8 ifdef double_p for double-precision ferret, see the
* definition of macro DFTYPE in ferret.h
* *kms* 3/12 Add E and F dimensions
+* *acm* 6/14 New separate function for DSG files
+* *acm* 9/14 Make DATE1900 accept an array of date strings, returning an array of coordinates
*/
@@ -645,7 +647,6 @@ void FORTRAN(rect_to_curv_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *
DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
void FORTRAN(date1900_init)(int *);
-void FORTRAN(date1900_result_limits)(int *);
void FORTRAN(date1900_compute)(int *, DFTYPE *, DFTYPE *);
void FORTRAN(days1900toymdhms_init)(int *);
@@ -693,6 +694,11 @@ void FORTRAN(expndi_id_by_z_counts_init)(int *);
void FORTRAN(expndi_id_by_z_counts_result_limits)(int *);
void FORTRAN(expndi_id_by_z_counts_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+void FORTRAN(expndi_by_m_counts_init)(int *);
+void FORTRAN(expndi_by_m_counts_result_limits)(int *);
+void FORTRAN(expndi_by_m_counts_custom_axes)(int *);
+void FORTRAN(expndi_by_m_counts_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
void FORTRAN(fc_isubset_init)(int *);
void FORTRAN(fc_isubset_result_limits)(int *);
void FORTRAN(fc_isubset_custom_axes)(int *);
@@ -1015,6 +1021,10 @@ void FORTRAN(write_webrow_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *
void FORTRAN(str_mask_init)(int *);
void FORTRAN(str_mask_compute)(int *, DFTYPE *, DFTYPE *);
+void FORTRAN(separate_init)(int *);
+void FORTRAN(separate_result_limits)(int *);
+void FORTRAN(separate_compute)(int *, DFTYPE *, DFTYPE *, DFTYPE *, DFTYPE *);
+
/*
* End of declarations for internally linked external functions
* ------------------------------------ */
@@ -1056,7 +1066,7 @@ int FORTRAN(efcn_scan)( int *gfcn_num_internal )
* int_dlsym.pl. Check that N_INTEF is correctly defined below.
*/
-#define N_INTEF 162
+#define N_INTEF 164
struct {
char funcname[EF_MAX_NAME_LENGTH];
@@ -1222,8 +1232,10 @@ struct {
strcpy(I_EFnames[157].funcname, "fc_isubset");
strcpy(I_EFnames[158].funcname, "expndi_by_z_counts");
strcpy(I_EFnames[159].funcname, "expndi_id_by_z_counts");
- strcpy(I_EFnames[160].funcname, "str_mask");
- strcpy(I_EFnames[161].funcname, "samplexyt_nrst");
+ strcpy(I_EFnames[160].funcname, "expndi_by_m_counts");
+ strcpy(I_EFnames[161].funcname, "str_mask");
+ strcpy(I_EFnames[162].funcname, "samplexyt_nrst");
+ strcpy(I_EFnames[163].funcname, "separate");
/*
* ------------------------------------
@@ -1255,20 +1267,25 @@ struct {
sprintf(path, "%s/ferret_ef_mem_subsc.so", path_ptr);
ferret_ef_mem_subsc_so_ptr = dlopen(path, RTLD_LAZY | RTLD_GLOBAL);
if ( ferret_ef_mem_subsc_so_ptr == NULL ) {
- fprintf(stderr, "**ERROR: efcn_scan: dlopen of %s\n"
- " failed -- %s\n", path, dlerror());
- return_val = -1;
- return return_val;
+ /*
+ * fprintf(stderr, "**ERROR: efcn_scan: dlopen of %s\n"
+ * " failed -- %s\n", path, dlerror());
+ * return_val = -1;
+ * return return_val;
+ */
+ copy_ferret_ef_mem_subsc_ptr = NULL;
}
- copy_ferret_ef_mem_subsc_ptr =
- (void (*)(void)) dlsym(ferret_ef_mem_subsc_so_ptr,
- "copy_ferret_ef_mem_subsc_");
- if ( copy_ferret_ef_mem_subsc_ptr == NULL ) {
- fprintf(stderr, "**ERROR: efcn_scan: copy_ferret_ef_mem_subsc_\n"
- " not found in $FER_LIBS/ferret_ef_mem_subsc.so\n"
- " -- %s\n", dlerror());
- return_val = -1;
- return return_val;
+ else {
+ copy_ferret_ef_mem_subsc_ptr =
+ (void (*)(void)) dlsym(ferret_ef_mem_subsc_so_ptr,
+ "copy_ferret_ef_mem_subsc_");
+ if ( copy_ferret_ef_mem_subsc_ptr == NULL ) {
+ fprintf(stderr, "**ERROR: efcn_scan: copy_ferret_ef_mem_subsc_\n"
+ " not found in $FER_LIBS/ferret_ef_mem_subsc.so\n"
+ " -- %s\n", dlerror());
+ return_val = -1;
+ return return_val;
+ }
}
/*
@@ -3807,7 +3824,6 @@ else if ( !strcmp(name,"rect_to_curv_compute_") ) return (void *)FORTRAN(rect_to
/* date1900.F */
else if ( !strcmp(name,"date1900_init_") ) return (void *)FORTRAN(date1900_init);
-else if ( !strcmp(name,"date1900_result_limits_") ) return (void *)FORTRAN(date1900_result_limits);
else if ( !strcmp(name,"date1900_compute_") ) return (void *)FORTRAN(date1900_compute);
/* days1900toymdhms.F */
@@ -3867,6 +3883,12 @@ else if ( !strcmp(name,"expndi_id_by_z_counts_init_") ) return (void *)FORTRAN(e
else if ( !strcmp(name,"expndi_id_by_z_counts_result_limits_") ) return (void *)FORTRAN(expndi_id_by_z_counts_result_limits);
else if ( !strcmp(name,"expndi_id_by_z_counts_compute_") ) return (void *)FORTRAN(expndi_id_by_z_counts_compute);
+/* expndi_by_m_counts.F */
+else if ( !strcmp(name,"expndi_by_m_counts_init_") ) return (void *)FORTRAN(expndi_by_m_counts_init);
+else if ( !strcmp(name,"expndi_by_m_counts_result_limits_") ) return (void *)FORTRAN(expndi_by_m_counts_result_limits);
+else if ( !strcmp(name,"expndi_by_m_counts_custom_axes_") ) return (void *)FORTRAN(expndi_by_m_counts_custom_axes);
+else if ( !strcmp(name,"expndi_by_m_counts_compute_") ) return (void *)FORTRAN(expndi_by_m_counts_compute);
+
/* fc_isubset.F */
else if ( !strcmp(name,"fc_isubset_init_") ) return (void *)FORTRAN(fc_isubset_init);
else if ( !strcmp(name,"fc_isubset_result_limits_") ) return (void *)FORTRAN(fc_isubset_result_limits);
@@ -4150,10 +4172,14 @@ else if ( !strcmp(name,"write_webrow_init_") ) return (void *)FORTRAN(write_webr
else if ( !strcmp(name,"write_webrow_result_limits_") ) return (void *)FORTRAN(write_webrow_result_limits);
else if ( !strcmp(name,"write_webrow_compute_") ) return (void *)FORTRAN(write_webrow_compute);
-
else if ( !strcmp(name,"str_mask_init_") ) return (void *)FORTRAN(str_mask_init);
else if ( !strcmp(name,"str_mask_compute_") ) return (void *)FORTRAN(str_mask_compute);
+else if ( !strcmp(name,"separate_init_") ) return (void *)FORTRAN(separate_init);
+else if ( !strcmp(name,"separate_result_limits_") ) return (void *)FORTRAN(separate_result_limits);
+else if ( !strcmp(name,"separate_compute_") ) return (void *)FORTRAN(separate_compute);
+
+
return NULL;
}
diff --git a/fer/cferbind/cairoCFerBind_createSurface.c b/fer/cferbind/cairoCFerBind_createSurface.c
index 224e1a1..497b751 100644
--- a/fer/cferbind/cairoCFerBind_createSurface.c
+++ b/fer/cferbind/cairoCFerBind_createSurface.c
@@ -118,12 +118,6 @@ grdelBool cairoCFerBind_createSurface(CFerBind *self)
instdata->surface = NULL;
return 0;
}
- /*
- * Set a low resolution for fallback raster images in vector drawings.
- * We really do not want this to be used or even created.
- */
- if ( instdata->imageformat != CCFBIF_PNG )
- cairo_surface_set_fallback_resolution(instdata->surface, 32.0, 32.0);
}
/* Create the Context if it does not exist */
diff --git a/fer/cferbind/cairoCFerBind_drawPolygon.c b/fer/cferbind/cairoCFerBind_drawPolygon.c
index 679a7f3..5872abb 100644
--- a/fer/cferbind/cairoCFerBind_drawPolygon.c
+++ b/fer/cferbind/cairoCFerBind_drawPolygon.c
@@ -139,8 +139,8 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
/* Fill the rectangle, but preserve the path for stroking */
cairo_fill_preserve(instdata->context);
- /* Stroke the path with a solid cosmetic line */
- cairo_set_line_width(instdata->context, unitfactor);
+ /* Stroke the path with a solid cosmetic (one pixel width) line */
+ cairo_set_line_width(instdata->context, 1.0 * unitfactor);
cairo_set_dash(instdata->context, NULL, 0, 0.0);
cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
@@ -187,7 +187,7 @@ grdelBool cairoCFerBind_drawPolygon(CFerBind *self, double ptsx[], double ptsy[]
penobj->color.greenfrac, penobj->color.bluefrac);
/* Assign the adjusted line width */
adjwidth = penobj->width * instdata->widthfactor;
- /* width of zero is a cosmetic pen - make it 1 pixel wide */
+ /* width of zero is a cosmetic pen - make it one pixel wide */
if ( adjwidth == 0.0 )
adjwidth = 1.0;
adjwidth *= unitfactor;
diff --git a/fer/cferbind/cairoCFerBind_drawRectangle.c b/fer/cferbind/cairoCFerBind_drawRectangle.c
index 21738e1..851202c 100644
--- a/fer/cferbind/cairoCFerBind_drawRectangle.c
+++ b/fer/cferbind/cairoCFerBind_drawRectangle.c
@@ -132,8 +132,8 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
/* Fill the rectangle, but preserve the path for stroking */
cairo_fill_preserve(instdata->context);
- /* Stroke the path with a solid cosmetic line */
- cairo_set_line_width(instdata->context, unitfactor);
+ /* Stroke the path with a solid cosmetic (one pixel width) line */
+ cairo_set_line_width(instdata->context, 1.0 * unitfactor);
cairo_set_dash(instdata->context, NULL, 0, 0.0);
cairo_set_line_cap(instdata->context, CAIRO_LINE_CAP_SQUARE);
cairo_set_line_join(instdata->context, CAIRO_LINE_JOIN_BEVEL);
@@ -180,7 +180,7 @@ grdelBool cairoCFerBind_drawRectangle(CFerBind *self, double left, double bottom
penobj->color.greenfrac, penobj->color.bluefrac);
/* Assign the adjusted line width */
adjwidth = penobj->width * instdata->widthfactor;
- /* width of zero is a cosmetic pen - make it 1 pixel wide */
+ /* width of zero is a cosmetic pen - make it one pixel wide */
if ( adjwidth == 0.0 )
adjwidth = 1.0;
adjwidth *= unitfactor;
diff --git a/fer/cferbind/cairoCFerBind_saveWindow.c b/fer/cferbind/cairoCFerBind_saveWindow.c
index 4c1ab16..7257cd9 100644
--- a/fer/cferbind/cairoCFerBind_saveWindow.c
+++ b/fer/cferbind/cairoCFerBind_saveWindow.c
@@ -221,7 +221,7 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
allannos[j] = '\n';
}
/* Remove the last newline */
- allannos[j-1] = '\0';
+ allannos[j-1] = '\0';
/* padding and pen width in points */
padding = 12.0;
penwidth = 2.0;
@@ -254,8 +254,8 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
return 0;
}
/* Create the Pango layout for the annotations */
- annolayout = pango_cairo_create_layout(annocontext);
- pango_layout_set_width(annolayout, (int) (PANGO_SCALE * annowidth + 0.5));
+ annolayout = pango_cairo_create_layout(annocontext);
+ pango_layout_set_width(annolayout, (int) (PANGO_SCALE * annowidth + 0.5));
pango_layout_set_wrap(annolayout, PANGO_WRAP_WORD_CHAR);
pango_layout_set_markup(annolayout, allannos, j-1);
/* Apply the annotations to this cairo surface */
@@ -376,14 +376,6 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
return 0;
}
- /*
- * Set a low resolution for fallback raster images in vector drawings.
- * We really do not want this to be used or even created.
- */
- if ( strcmp(fmtext, "PNG") != 0 ) {
- cairo_surface_set_fallback_resolution(savesurface, 32.0, 32.0);
- }
-
/* Create a temporary context for this temporary surface */
savecontext = cairo_create(savesurface);
if ( cairo_status(savecontext) != CAIRO_STATUS_SUCCESS ) {
@@ -401,8 +393,6 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
*/
scalefactor *= CCFB_POINTS_PER_PIXEL;
}
- /* Set the scale on the destination so the source will just fit. */
- cairo_scale(savecontext, scalefactor, scalefactor);
/*
* If landscape PostScript, translate and rotate the coordinate system
@@ -433,6 +423,9 @@ grdelBool cairoCFerBind_saveWindow(CFerBind *self, const char *filename,
}
}
+ /* Set the scale on the destination so the source will just fit. */
+ cairo_scale(savecontext, scalefactor, scalefactor);
+
/*
* If not a transparent background, or if the alpha channel
* is not supported, fill in the background (with an opaque
diff --git a/fer/common/EF_mem_subsc.cmn b/fer/common/EF_mem_subsc.cmn
index a260f7c..dda147a 100644
--- a/fer/common/EF_mem_subsc.cmn
+++ b/fer/common/EF_mem_subsc.cmn
@@ -18,6 +18,7 @@
* 6/12 *kms* added EXTERNAL since this block is part of Ferret
* 8/12 *kms* added FERRET_ prefix to common block name to identify source
* (primarily for PyFerret where this becomes global under Python)
+* 10/14 *kms* removed EXTERNAL - for functions, not for common blocks
*
*************************************************************************
diff --git a/fer/common/ferret.parm b/fer/common/ferret.parm
index 6404093..18f349b 100644
--- a/fer/common/ferret.parm
+++ b/fer/common/ferret.parm
@@ -37,6 +37,7 @@
* pauto_1pt_ax, pinfer_frm_aux
* added patnam_sigma, patnam_curvx, patnam_curvy
* turned max_context into a variable to allow aux frames above it
+* V692 7/14 *acm* new transform @WGT, ticket 2180
* this should always match maxdsets in TMAP_FORMAT:
INTEGER max_gfdl_dsets
@@ -286,7 +287,9 @@
. trans_nrst_dist_blw,
. trans_nrst_indx_abv,
. trans_nrst_indx_blw,
- . trans_event_mask
+ . trans_event_mask,
+ . trans_avg_wgt,
+ . trans_4d_avg_wgt
PARAMETER ( trans_compress_code = 30,
. trans_no_transform = 1,
@@ -314,7 +317,9 @@
. trans_nrst_indx_abv = 24,
. trans_nrst_indx_blw = 25,
. trans_event_mask = 26,
- . max_plane_transform = trans_event_mask )
+ . trans_avg_wgt = 27,
+ . trans_4d_avg_wgt = 28,
+ . max_plane_transform = trans_4d_avg_wgt )
PARAMETER ( trans_average = trans_compress_code + 1,
. trans_interpolate = trans_compress_code + 2,
diff --git a/fer/common/interp_stack.parm b/fer/common/interp_stack.parm
index 453294a..ba1014e 100644
--- a/fer/common/interp_stack.parm
+++ b/fer/common/interp_stack.parm
@@ -5,6 +5,7 @@
* 6/01 *sh* added isact_event_mask
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
* V690 12/13 *sh* for auto-curvilinear Ferret
+* V692 7/14 *acm* added isact_avg_wgt
* minimum working space provided to transformations
INTEGER iswksiz
@@ -129,7 +130,9 @@
. isact_nrst_dist_blw,
. isact_nrst_indx_abv,
. isact_nrst_indx_blw,
- . isact_event_mask
+ . isact_event_mask,
+ . isact_avg_wgt,
+ . isact_avg_4d_wgt
PARAMETER (
. isact_interp = isact_trans_code + trans_interpolate,
@@ -173,7 +176,9 @@
. isact_nrst_dist_blw = isact_trans_code + trans_nrst_dist_blw,
. isact_nrst_indx_abv = isact_trans_code + trans_nrst_indx_abv,
. isact_nrst_indx_blw = isact_trans_code + trans_nrst_indx_blw,
- . isact_event_mask = isact_trans_code + trans_event_mask)
+ . isact_event_mask = isact_trans_code + trans_event_mask,
+ . isact_avg_wgt = isact_trans_code + trans_avg_wgt,
+ . isact_avg_4d_wgt = isact_trans_code + trans_4d_avg_wgt)
* classes of stack objects
INTEGER isobj_uvar,
diff --git a/fer/common/plot_setup.parm b/fer/common/plot_setup.parm
index 12fe1df..43e29d6 100644
--- a/fer/common/plot_setup.parm
+++ b/fer/common/plot_setup.parm
@@ -21,8 +21,8 @@
. dflt_imgscale,
. dflt_thicken,
. dflt_textprom
- PARAMETER ( dflt_xinches = 10.50,
- . dflt_yinches = 8.50,
+ PARAMETER ( dflt_xinches = 10.20,
+ . dflt_yinches = 8.80,
. dflt_imgscale = 0.83666,
. dflt_thicken = 1.00,
. dflt_textprom = 1.00 )
@@ -37,10 +37,10 @@
. dflt_con_labsp,
. dflt_con_dshln,
. dflt_vec_len
- PARAMETER ( dflt_xwhitelo = 1.375,
- . dflt_ywhitelo = 1.375,
- . dflt_xwhitehi = 1.375,
- . dflt_ywhitehi = 1.375,
+ PARAMETER ( dflt_xwhitelo = 1.20,
+ . dflt_ywhitelo = 1.40,
+ . dflt_xwhitehi = 1.00,
+ . dflt_ywhitehi = 1.40,
. dflt_tics_lg = 0.25,
. dflt_tics_sm = 0.125,
. dflt_con_labsp = 5.00,
diff --git a/fer/common/slash.parm b/fer/common/slash.parm
index 8ebda1a..9696853 100644
--- a/fer/common/slash.parm
+++ b/fer/common/slash.parm
@@ -63,6 +63,7 @@
* SHOW GRID/FILE, SHOW GRID/CLOBBER, SHOW GRID/APPEND
* V690 12/13 *sh* /SIGMA and /CURVILINEAR
* V687 3/14 *acm* add SET AXIS/NAME
+* V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE and not /XML.
* command qualifier states
INTEGER qual_on,
@@ -425,8 +426,8 @@
. slash_show_grid_x0 = 7,
. slash_show_grid_i0 = 1,
. slash_show_grid_file = 16,
- . slash_show_grid_clobber = 17,
- . slash_show_grid_append = 18,
+ . slash_show_grid_append = 17,
+ . slash_show_grid_clobber = 18,
.
. slash_show_data_brief = 2,
. slash_show_data_file = 8,
diff --git a/fer/ctx/get_var_context.F b/fer/ctx/get_var_context.F
index ae028e3..5665ce1 100644
--- a/fer/ctx/get_var_context.F
+++ b/fer/ctx/get_var_context.F
@@ -65,6 +65,9 @@
* V685 4/13 *sh* parse the auxiliary regridding context terms ("*aux*"), too
* and don't report errors in dependency_tree_mode
* V690 12/13 *sh* bug fix when variable name unrecognized in VTREE mode
+* V693 10/14 *acm fix ticket 2206: If the grid number is a placeholder, don't
+* go call flesh_out_axis etc (See the comment in get_context_mods, where
+* the grid is an encoding of the start/end limits of the regrid spec)
IMPLICIT NONE
@@ -180,7 +183,7 @@
IF ( status .NE. ferr_ok ) GOTO 5000
* can't do more if the grid isn't known
- IF ( cx_grid(var_cx) .EQ. unspecified_int4 ) GOTO 100
+ IF ( cx_grid(var_cx) .LE. unspecified_int4 ) GOTO 100
* data set info may be irrelevant
* indicate that now so memory searches will be correct
diff --git a/fer/ctx/region_class.F b/fer/ctx/region_class.F
index 0a4aab8..c2effde 100644
--- a/fer/ctx/region_class.F
+++ b/fer/ctx/region_class.F
@@ -56,6 +56,7 @@
* V533: *sh* 6/01 - added trans_event_mask
* *acm* 3/12 cleanup ifdefs and unnecessary include files
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V692 7/14 *acm* ticket 2183: handle @WGT transform as for integrals
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -68,6 +69,8 @@
REGION_CLASS = 3 ! uvlim_*_xact
ELSEIF ( cx_trans( idim,cx ) .EQ. trans_integ_indef
. .OR. cx_trans( idim,cx ) .EQ. trans_run_sum
+ . .OR. cx_trans( idim,cx ) .EQ. trans_avg_wgt
+ . .OR. cx_trans( idim,cx ) .EQ. trans_4d_avg_wgt
. .OR. cx_trans( idim,cx ) .EQ. trans_event_mask ) THEN
REGION_CLASS = 1 ! uvlim_*_lo
ELSEIF ( cx_trans( idim,cx ) .EQ. trans_wgted_eq ) THEN
diff --git a/fer/dat/xalgebra_data.F b/fer/dat/xalgebra_data.F
index 2938c05..0c35877 100644
--- a/fer/dat/xalgebra_data.F
+++ b/fer/dat/xalgebra_data.F
@@ -683,10 +683,16 @@
. alg_trans_dflt_arg( 41)/ bad_val4 /,
. alg_trans_text ( 42 ) / 'STD' /,
. alg_trans_title( 42 ) / 'standard deviation' /,
- . alg_trans_num ( 42 ) / trans_std_dev /
+ . alg_trans_num ( 42 ) / trans_std_dev /,
+ . alg_trans_text ( 43 ) / 'WGT' /,
+ . alg_trans_title( 43 ) / 'weights for avg,int' /,
+ . alg_trans_num ( 43 ) / trans_avg_wgt /,
+ . alg_trans_text ( 44 ) / 'WG4' /,
+ . alg_trans_title( 44 ) / '4D weights, avg,int' /,
+ . alg_trans_num ( 44 ) / trans_4d_avg_wgt /
- DATA (alg_trans_num(i),i = 43, num_transforms)
- . /18*unspecified_int4 /
+ DATA (alg_trans_num(i),i = 45, num_transforms)
+ . /16*unspecified_int4 /
DATA
. alg_regrid_title( prgrd_exact ) / ' ' /,
@@ -783,7 +789,7 @@
. /2*.FALSE./
* translation table for substituting 1D transformations with 4D transforms
- DATA num_4d_trans/ 6 /
+ DATA num_4d_trans/ 7 /
DATA alg_1d_to_4d(1) /trans_average/,
. alg_4d_trans(1) /trans_4d_ave/,
. alg_1d_to_4d(2) /trans_integ_def/,
@@ -795,7 +801,9 @@
. alg_1d_to_4d(5) /trans_bad_pt/,
. alg_4d_trans(5) /trans_4d_bad_pt/,
. alg_1d_to_4d(6) /trans_sum/,
- . alg_4d_trans(6) /trans_4d_sum/
+ . alg_4d_trans(6) /trans_4d_sum/,
+ . alg_1d_to_4d(7) /trans_avg_wgt/,
+ . alg_4d_trans(7) /trans_4d_avg_wgt/
END
diff --git a/fer/dat/xrevision_data.F b/fer/dat/xrevision_data.F
index 48ba1eb..1a6179a 100644
--- a/fer/dat/xrevision_data.F
+++ b/fer/dat/xrevision_data.F
@@ -105,13 +105,25 @@
* V6.65 10/01/10
* V6.74 4/2011 to GFDL: double precision, netCDF4.2, fix ticket 1391
* V6.84 12/2012 Ribbon plots, bug fixes.
+* V6.9 4/2014
+* V6.91 internal, not released. Fixes on v6.9
+* V6.92 internal, new color /key options any of
+* /key=vertical,horizontal,centerlabel
+* V6.921 internal, @WGT and defined axis for EZ reads
+* V6.922 final tweaks to /key=centerlab, internal tag for SOCAT testing
+* v6.923 fix ticket 2187
+* v6.924 fix ticket 2186
+* v6.925 fix ticket 2194
+* v6.926 fix ticket 2203, 2200
+* v6.927 fix ticket 2205, 2206
+* v6.93 release
IMPLICIT NONE
include 'xrevision.cmn'
DATA program_name / 'FERRET' /
DATA len_program_name / 6 /
- DATA revision_level / 6.9 /
+ DATA revision_level / 6.93 /
! 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/doo/SOURCE_FILES b/fer/doo/SOURCE_FILES
index 7627c09..e0a1801 100644
--- a/fer/doo/SOURCE_FILES
+++ b/fer/doo/SOURCE_FILES
@@ -9,6 +9,7 @@ dd1step.F\
dd2step.F\
diag_op.F\
do_4d_ave.F\
+do_4d_ave_wgt.F\
do_4d_int_def.F\
do_4d_nbd.F\
do_4d_ngd.F\
@@ -17,6 +18,7 @@ do_4d_string_trans.F\
do_4d_sum.F\
do_4d_trans.F\
do_4d_var.F\
+do_4d_wgt.F\
do_asn_regrid.F\
do_aux_var_regrid.F\
do_aux_var_regrid_1d.F\
@@ -25,6 +27,7 @@ do_aux_var_regrid_line_lin.F\
do_ave_int.F\
do_ave_regrid.F\
do_average.F\
+do_avg_wgt.F\
do_deriv_bkwd.F\
do_deriv_cntr.F\
do_deriv_frwd.F\
@@ -69,6 +72,7 @@ do_string_shift.F\
do_sum.F\
do_var_sub.F\
do_variance.F\
+do_wgt.F\
do_window_regrid.F\
do_xact_regrid.F\
do_xyave_regrid.F\
diff --git a/fer/doo/do_xyave_regrid.F b/fer/doo/do_4d_ave_wgt.F
similarity index 67%
copy from fer/doo/do_xyave_regrid.F
copy to fer/doo/do_4d_ave_wgt.F
index 7876c46..5998181 100644
--- a/fer/doo/do_xyave_regrid.F
+++ b/fer/doo/do_4d_ave_wgt.F
@@ -1,5 +1,7 @@
- SUBROUTINE DO_XYAVE_REGRID( cx_lims, src, msrc, dst, mdst,
- . work, src_cx, dst_cx, iwork2, itot )
+ INTEGER FUNCTION DO_4D_AVE_WGT( idim, arg,
+ . com, com_mr, com_cx,
+ . res, res_mr, res_cx,
+ . boxes )
*
*
@@ -36,32 +38,39 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* call the xy-area regridding routine with appropriate work arrays
+* Return weights as for avg/integral on the grid
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* V200: 12/1/89 - 4D symmetrical version - regrid only 1 axis
-* V552: 4/04 *acm* - bug fix. For @AVE and related transforms @SUM, etc.
-* send src_lo_ss and src_hi_ss for the range on the src
-* axis.
-* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA
+* 7/2014
+
+* V692 7/14 *acm* new transform @WGT, ticket 2180
IMPLICIT NONE
include 'tmap_dims.parm'
include 'ferret.parm'
- include 'xcontext.cmn'
+ include 'errmsg.parm'
+ include 'interp_stack.parm'
+ include 'xprog_state.cmn'
* calling argument declarations:
- INTEGER cx_lims, axis, msrc, mdst, iwork2, itot, src_cx, dst_cx
- REAL src(*), dst(*), work(itot)
+ INTEGER idim, com_mr, com_cx, res_mr, res_cx
+ REAL arg, com(*), res(*), boxes(*)
+
+* internal variable declarations:
+ INTEGER CX_DIM_LEN
+
+* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
+ IF ( mode_diagnostic ) CALL DIAG_OP
+ . ( 'doing', isact_class_trans, res_cx, idim )
+
+* pass the transform to be performeds
+ CALL DO_4D_WGT ( trans_4d_avg_wgt,
+ . com, com_mr, com_cx,
+ . res, res_mr, res_cx,
+ . boxes )
- CALL XYAVE_REGRID( cx_lims,
- . cx_lo_ss(cx_lims,x_dim), cx_hi_ss(cx_lims,x_dim),
- . cx_lo_ss(cx_lims,y_dim), cx_hi_ss(cx_lims,y_dim),
- . src, msrc, dst, mdst, src_cx, dst_cx,
- . work(1), work(iwork2) )
+ DO_4D_AVE_WGT = ferr_ok
RETURN
END
diff --git a/fer/doo/do_4d_wgt.F b/fer/doo/do_4d_wgt.F
new file mode 100644
index 0000000..d1badc2
--- /dev/null
+++ b/fer/doo/do_4d_wgt.F
@@ -0,0 +1,303 @@
+ SUBROUTINE DO_4D_WGT( action,
+ . com, com_mr, com_cx,
+ . res, res_mr, res_cx,
+ . boxes )
+
+*
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* perform a multi-axis transformation
+
+* multi-axis transformations are those special cases where sequential
+* application of single-axis transforms may yield improper results. For
+* example, averaging within a circular region would give inappropriate
+* results if carried out sequentially: the first axis of averaging would
+* be correct but the second axis would weight each averaged row from the
+* first axis equally, despite the fact that they represented different
+* numbers of data points.
+
+* Return weights as for avg/integral on the grid
+
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA
+* 7/2014
+
+* V692 7/14 *acm* new transform @WGT, ticket 2180
+
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'interp_stack.parm'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
+ include 'xmem_subsc.cmn'
+ include 'xunits.cmn_text'
+ external xunits_data
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
+
+* internal variable declarations:
+ LOGICAL GEOG_COS_FACTOR, point, yes_ax(nferdims), no_ax(nferdims),
+ . need_cos, one_y
+ INTEGER idim, i, j, ir, jr, kr, lr, mr, nr, ic, jc, kc, lc, mc, nc,
+ . grid, nbd, ngd, com_lo(nferdims), com_hi(nferdims),
+ . box_offset(nferdims), offset, ind_lo, ind_hi, cos_offset
+ REAL BOX_SIZE, unit, bad_com, bad_res, box, mean, diff,
+ . xbox, ybox, zbox, tbox, ebox, fbox,
+ . yc, yh, yh_2, bb, ybxlo, ybxhi
+ REAL*8 TM_WORLD, dsum, bsum
+
+* calling argument declarations:
+ INTEGER action, com_mr, com_cx, res_mr, res_cx
+ REAL com ( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+ . res ( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+ . m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+ . boxes(*)
+
+* equivalences
+ LOGICAL yes_xax, yes_yax, yes_zax,
+ . yes_tax, yes_eax, yes_fax,
+ . no_xax, no_yax, no_zax,
+ . no_tax, no_eax, no_fax
+
+ INTEGER ioffset, joffset, koffset, loffset, moffset, noffset,
+ . i_lo, j_lo, k_lo, l_lo, m_lo, n_lo,
+ . i_hi, j_hi, k_hi, l_hi, m_hi, n_hi
+
+ EQUIVALENCE ( yes_ax(1), yes_xax ),
+ . ( yes_ax(2), yes_yax ),
+ . ( yes_ax(3), yes_zax ),
+ . ( yes_ax(4), yes_tax ),
+ . ( yes_ax(5), yes_eax ),
+ . ( yes_ax(6), yes_fax ),
+ . ( no_ax(1), no_xax ),
+ . ( no_ax(2), no_yax ),
+ . ( no_ax(3), no_zax ),
+ . ( no_ax(4), no_tax ),
+ . ( no_ax(5), no_eax ),
+ . ( no_ax(6), no_fax ),
+ . ( box_offset(1), ioffset ),
+ . ( box_offset(2), joffset ),
+ . ( box_offset(3), koffset ),
+ . ( box_offset(4), loffset ),
+ . ( box_offset(5), moffset ),
+ . ( box_offset(6), noffset ),
+ . ( com_lo(1), i_lo ),
+ . ( com_lo(2), j_lo ),
+ . ( com_lo(3), k_lo ),
+ . ( com_lo(4), l_lo ),
+ . ( com_lo(5), m_lo ),
+ . ( com_lo(6), n_lo ),
+ . ( com_hi(1), i_hi ),
+ . ( com_hi(2), j_hi ),
+ . ( com_hi(3), k_hi ),
+ . ( com_hi(4), l_hi ),
+ . ( com_hi(5), m_hi ),
+ . ( com_hi(6), n_hi )
+
+* --- end of introductory code ---
+
+* initialize
+ grid = mr_grid( com_mr )
+ bad_com = mr_bad_data( com_mr )
+ bad_res = mr_bad_data( res_mr )
+ point = .FALSE.
+ one_y = .FALSE.
+
+* determine the axes to be transformed
+ DO 10 idim = 1, nferdims
+ yes_ax(idim) = cx_trans(idim,res_cx) .EQ. action
+ no_ax (idim) = .NOT.yes_ax(idim)
+ 10 CONTINUE
+
+* get and save grid box sizes (weights) just once for efficiency
+* ... save all axes in one long array with offsets to find the starts
+* Note that "cx_lo_ss(com_cx,idim)" is subtracted so offsets pre-compensate
+* for the axes starting above index = 1
+
+ offset = 0
+ DO 90 idim = 1, nferdims
+ IF (yes_ax(idim)) THEN
+ box_offset(idim) = offset - cx_lo_ss(com_cx,idim) + 1 ! pre-comp'ed
+ offset = offset +
+ . cx_hi_ss(com_cx,idim)-cx_lo_ss(com_cx,idim)+1
+ ELSE
+ box_offset(idim) = -9999
+ ENDIF
+ 90 CONTINUE
+! COS(latitudes) also stored in the box array (8/96)
+ cos_offset = offset - cx_lo_s2(com_cx) + 1
+
+* ... save the box sizes
+ DO 100 idim = 1, nferdims
+ ind_lo = cx_lo_ss(com_cx,idim)
+ ind_hi = cx_hi_ss(com_cx,idim)
+ offset = box_offset(idim)
+ IF (yes_ax(idim)) THEN
+ point = .FALSE.
+ IF ( ind_lo .EQ. ind_hi ) THEN ! 8/92
+ boxes(ind_lo+offset) = cx_hi_ww(idim,res_cx)
+ . - cx_lo_ww(idim,res_cx)
+ point = boxes(ind_lo+offset) .EQ. 0.0
+ ELSE
+* ... partial box at lower end
+ boxes(ind_lo+offset) = TM_WORLD(ind_lo, grid, idim, box_hi_lim)
+ . - cx_lo_ww(idim,res_cx)
+
+* ... complete boxes mid-axis
+ DO 40 i = ind_lo+1, ind_hi-1
+ 40 boxes(i+offset) = BOX_SIZE( i, grid, idim )
+* ... partial box at upper end
+ boxes(ind_hi+offset) = cx_hi_ww(idim,res_cx)
+ . - TM_WORLD(ind_hi, grid, idim, box_lo_lim)
+ ENDIF
+* ... perform integrations on standard units if possible
+ unit = 1.
+ unit = un_convert( line_unit_code(grid_line(idim,grid)) )
+
+ DO 50 i = ind_lo, ind_hi
+ boxes(i+offset) = boxes(i+offset) * unit
+ 50 continue
+ IF (point) boxes(ind_lo+offset) = 1.
+ ENDIF
+ 100 CONTINUE
+
+* impose cosine factors if latitude and longitude are involved
+* 5/97 - only use COS(y) if X integration is involved and Y axis lims are VALID
+* 3/06 - apply Andrew*s suggested correction for XY integ., bug1348
+* 6/06 fix the correction; boxes(i+offset) is in meters, so convert back to
+* degrees, then radians. Compute the factor, and then convert to meters.
+C See this thread:
+C http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2009/msg00506.html
+C And also ticket 1348. The surface area of sphere depends only on h
+C http://mathworld.wolfram.com/Zone.html. Fix for @DIN too.
+
+ need_cos = GEOG_COS_FACTOR( y_dim,grid )
+ . .AND. yes_xax
+ . .AND. cx_lo_s2(com_cx) .NE. unspecified_int4
+ one_y = (cx_lo_ww(y_dim,res_cx) .EQ. cx_hi_ww(y_dim,res_cx))
+
+ IF ( need_cos ) THEN
+ DO 120 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
+
+C Compute the y boxes if there is a y axis; the computation may be
+C avgs in other directions but we need the ybox size at a given y
+C The top and bottom boxes extend only to the coordinate locations,
+C (Unless there is just one grid cell in the y direction.)
+
+#ifdef double_p
+ ybxlo = deg2rad*
+ . TM_WORLD(j, grid, y_dim, box_lo_lim)
+ ybxhi = deg2rad*
+ . TM_WORLD(j, grid, y_dim, box_hi_lim)
+#else
+ ybxlo = deg2rad*
+ . SNGL( TM_WORLD(j, grid, y_dim, box_lo_lim) )
+ ybxhi = deg2rad*
+ . SNGL( TM_WORLD(j, grid, y_dim, box_hi_lim) )
+#endif
+ IF (j .EQ. cx_lo_s2(com_cx) .AND. .NOT.one_y)
+ . ybxlo = deg2rad* cx_lo_ww(y_dim,res_cx)
+
+ IF (j .EQ. cx_hi_s2(com_cx) .AND. .NOT.one_y)
+ . ybxhi = deg2rad* cx_hi_ww(y_dim,res_cx)
+
+ yh = ybxhi-ybxlo
+ boxes(j+cos_offset) = ABS( SIN(ybxhi) - SIN(ybxlo) )/yh
+
+ 120 CONTINUE
+ ELSE
+ DO 121 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
+ 121 boxes(j+cos_offset) = 1.0
+ ENDIF
+
+* do the transformation: return box size
+
+* Set default box size for untransformed axes
+* (multiplying by 1.0 to have nil effect)
+ xbox = 1.0
+ ybox = 1.0
+ zbox = 1.0
+ tbox = 1.0
+ ebox = 1.0
+ fbox = 1.0
+
+* Loop over the component data, returning box sizes
+
+ n_lo = cx_lo_s6(res_cx)
+ n_hi = cx_hi_s6(res_cx)
+ m_lo = cx_lo_s5(res_cx)
+ m_hi = cx_hi_s5(res_cx)
+ l_lo = cx_lo_s4(res_cx)
+ l_hi = cx_hi_s4(res_cx)
+ k_lo = cx_lo_s3(res_cx)
+ k_hi = cx_hi_s3(res_cx)
+ j_lo = cx_lo_s2(res_cx)
+ j_hi = cx_hi_s2(res_cx)
+ i_lo = cx_lo_s1(res_cx)
+ i_hi = cx_hi_s1(res_cx)
+
+* Set the range of loop indices for the component data on the transformed axes
+ DO 150 idim = 1, nferdims
+ IF (yes_ax(idim)) THEN
+ com_lo(idim) = cx_lo_ss(com_cx,idim)
+ com_hi(idim) = cx_hi_ss(com_cx,idim)
+ ENDIF
+ 150 CONTINUE
+
+ DO 220 nc = n_lo, n_hi
+ IF (yes_fax) fbox = boxes(nc+noffset)
+ DO 220 mc = m_lo, m_hi
+ IF (yes_eax) ebox = boxes(mc+moffset)
+ DO 220 lc = l_lo, l_hi
+ IF (yes_tax) tbox = boxes(lc+loffset)
+ DO 220 kc = k_lo, k_hi
+ IF (yes_zax) zbox = boxes(kc+koffset)
+ DO 220 jc = j_lo, j_hi
+ IF (yes_yax) ybox = boxes(jc+joffset)
+ DO 220 ic = i_lo, i_hi
+ IF (yes_xax) xbox = boxes(ic+ioffset)
+
+ box = xbox * ybox * zbox * tbox * ebox * fbox
+ IF (need_cos) box = box * boxes(jc+cos_offset)
+ res(ic,jc,kc,lc,mc,nc) = box
+
+ 220 CONTINUE
+
+ RETURN
+
+ END
+
diff --git a/fer/doo/do_xyave_regrid.F b/fer/doo/do_avg_wgt.F
similarity index 74%
copy from fer/doo/do_xyave_regrid.F
copy to fer/doo/do_avg_wgt.F
index 7876c46..ac1581b 100644
--- a/fer/doo/do_xyave_regrid.F
+++ b/fer/doo/do_avg_wgt.F
@@ -1,5 +1,7 @@
- SUBROUTINE DO_XYAVE_REGRID( cx_lims, src, msrc, dst, mdst,
- . work, src_cx, dst_cx, iwork2, itot )
+ INTEGER FUNCTION DO_AVG_WGT( idim, arg,
+ . com, com_mr, com_cx,
+ . res, res_mr, res_cx,
+ . box )
*
*
@@ -36,32 +38,42 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* call the xy-area regridding routine with appropriate work arrays
+* average the component grid into the result grid
+* (done by calling a single routine used for both averaging and integrating)
* programmer - steve hankin
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
* written for VAX computer under VMS operating system
*
-* V200: 12/1/89 - 4D symmetrical version - regrid only 1 axis
-* V552: 4/04 *acm* - bug fix. For @AVE and related transforms @SUM, etc.
-* send src_lo_ss and src_hi_ss for the range on the src
-* axis.
+* V200: 6/1/89
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
IMPLICIT NONE
include 'tmap_dims.parm'
include 'ferret.parm'
+ include 'errmsg.parm'
+ include 'interp_stack.parm'
include 'xcontext.cmn'
+ include 'xprog_state.cmn'
* calling argument declarations:
- INTEGER cx_lims, axis, msrc, mdst, iwork2, itot, src_cx, dst_cx
- REAL src(*), dst(*), work(itot)
+ INTEGER idim, com_mr, com_cx, res_mr, res_cx
+ REAL arg, com(*), res(*), box(*)
- CALL XYAVE_REGRID( cx_lims,
- . cx_lo_ss(cx_lims,x_dim), cx_hi_ss(cx_lims,x_dim),
- . cx_lo_ss(cx_lims,y_dim), cx_hi_ss(cx_lims,y_dim),
- . src, msrc, dst, mdst, src_cx, dst_cx,
- . work(1), work(iwork2) )
+* internal variable declarations:
+* ...
+
+* diagnostic mode output: " doing --> VAR_NAME[x=lo:hi at TRN:n,D=#]"
+ IF ( mode_diagnostic ) CALL DIAG_OP
+ . ( 'doing', isact_class_trans, res_cx, idim )
+
+ CALL DO_WGT( isact_avg_wgt, idim,
+ . cx_lo_ss(com_cx,idim), cx_hi_ss(com_cx,idim),
+ . com, com_mr, com_cx,
+ . res, res_mr, res_cx,
+ . box )
+
+ DO_AVG_WGT = ferr_ok
RETURN
END
diff --git a/fer/doo/do_internal_gc_fcn.F b/fer/doo/do_internal_gc_fcn.F
index 518405c..c63a0d8 100644
--- a/fer/doo/do_internal_gc_fcn.F
+++ b/fer/doo/do_internal_gc_fcn.F
@@ -96,6 +96,7 @@
* of argument/return-type variable and predimensional (data size)
* array parameter (pointer size to one in double-precision Ferret).
* V68 5/12 *acm* Add ESEQUENCE, FSEQUENCE, SAMPLEM, SAMPLEN
+* V693 10/14 *acm* ticket 2210: check for negative arguments to SUBSTRING
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -158,7 +159,8 @@
INTEGER max_cmnd_len
PARAMETER ( max_cmnd_len = 2048 )
CHARACTER GET_STRING_ELEMENT*(max_cmnd_len), buff*(max_cmnd_len)
- INTEGER nnew, slen
+ CHARACTER*10 TM_FMT, argval
+ INTEGER nnew, slen, narg
* equivalence conveniences
* "inc" is the increments for each axis of each component
@@ -967,6 +969,15 @@
* Convert the offset and length to integers
ioff = com2(1,i2,j2,k2,l2,m2,n2)
ilen = com3(1,i3,j3,k3,l3,m3,n3)
+* argument checking:
+ IF (ioff.LT.0) THEN
+ narg = 2
+ GOTO 5100
+ ENDIF
+ IF (ilen.LT.0) THEN
+ narg = 3
+ GOTO 5100
+ ENDIF
CALL C_SUBSTR(com1(1,i1,j1,k1,l1,m1,n1),
. ioff, ilen, res(1,i,j,k,l,m,n))
3450 CONTINUE
@@ -1005,4 +1016,9 @@
* error exits
5000 RETURN
+ 5100 argval = TM_FMT(FLOAT(narg), 2, 40, slen)
+ CALL ERRMSG(ferr_out_of_range, status,
+ . 'Negative argument to function. Argument '//
+ . argval(:slen)//' : SUBSTRING', *5000 )
+
END
diff --git a/fer/doo/do_wgt.F b/fer/doo/do_wgt.F
new file mode 100644
index 0000000..b397c70
--- /dev/null
+++ b/fer/doo/do_wgt.F
@@ -0,0 +1,244 @@
+ SUBROUTINE DO_WGT( action, idim, com_lo, com_hi,
+ . com, com_mr, com_cx,
+ . res, res_mr, res_cx,
+ . box )
+
+*
+*
+* This software was developed by the Thermal Modeling and Analysis
+* Project(TMAP) of the National Oceanographic and Atmospheric
+* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
+* hereafter referred to as NOAA/PMEL/TMAP.
+*
+* Access and use of this software shall impose the following
+* obligations and understandings on the user. The user is granted the
+* right, without any fee or cost, to use, copy, modify, alter, enhance
+* and distribute this software, and any derivative works thereof, and
+* its supporting documentation for any purpose whatsoever, provided
+* that this entire notice appears in all copies of the software,
+* derivative works and supporting documentation. Further, the user
+* agrees to credit NOAA/PMEL/TMAP in any publications that result from
+* the use of this software or in any product that includes this
+* software. The names TMAP, NOAA and/or PMEL, however, may not be used
+* in any advertising or publicity to endorse or promote any products
+* or commercial entity unless specific written permission is obtained
+* from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP
+* is not obligated to provide the user with any support, consulting,
+* training or assistance of any kind with regard to the use, operation
+* and performance of this software nor to provide the user with any
+* updates, revisions, new versions or "bug fixes".
+*
+* THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+* ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL,
+* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
+* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
+*
+*
+* Return the weights as they would be used for an integral
+* on a single axis, with correction for latitude if needed.
+*
+* programmer - Ansley Manke
+* NOAA/PMEL, Seattle, WA
+* 7/2014
+*
+* V692 7/14 *acm* new transform @WGT, ticket 2180
+
+ IMPLICIT NONE
+ include 'tmap_dims.parm'
+ include 'ferret.parm'
+ include 'interp_stack.parm'
+ include 'xcontext.cmn'
+ include 'xvariables.cmn'
+ include 'xmem_subsc.cmn'
+ include 'xunits.cmn_text'
+ external xunits_data
+ include 'xtm_grid.cmn_text'
+ external xgt_grid_data
+
+* internal variable declarations:
+ LOGICAL GEOG_COS_FACTOR, need_cos, integrate, point
+ INTEGER i, j, k, l, m, n, grid, lo, hi, axis
+ REAL BOX_SIZE, unit, bad_com, bad_res, cos_factor,
+ . ybxlo, ybxhi, yh
+ REAL*8 TM_WORLD, dsum, bsum
+
+* calling argument declarations:
+ INTEGER action, idim, com_lo, com_hi, com_mr, com_cx, res_mr, res_cx
+ REAL com( m1lox:m1hix,m1loy:m1hiy,m1loz:m1hiz,
+ . m1lot:m1hit,m1loe:m1hie,m1lof:m1hif ),
+ . res( m2lox:m2hix,m2loy:m2hiy,m2loz:m2hiz,
+ . m2lot:m2hit,m2loe:m2hie,m2lof:m2hif ),
+ . box( com_lo:com_hi )
+
+* --- end of introductory code ---
+
+* initialize
+ grid = mr_grid( com_mr )
+ axis = grid_line( idim, grid )
+ lo = com_lo
+ hi = com_hi
+ bad_com = mr_bad_data( com_mr )
+ bad_res = mr_bad_data( res_mr )
+ integrate = action .EQ. isact_integ_def
+ point = .FALSE.
+
+* get and save grid box sizes (weights) just once for efficiency
+* (end boxes may be only partially weighted)
+ IF ( lo .EQ. hi ) THEN ! 8/92
+ box(lo) = cx_hi_ww(idim,res_cx) - cx_lo_ww(idim,res_cx)
+ point = box(lo) .EQ. 0.0
+ ELSE
+ box(lo) = TM_WORLD(lo, grid, idim, box_hi_lim)
+ . - cx_lo_ww(idim,res_cx)
+ DO 100 i = lo+1, hi-1
+ 100 box(i) = BOX_SIZE( i, grid, idim )
+ box(hi) = cx_hi_ww(idim,res_cx)
+ . - TM_WORLD(hi, grid, idim, box_lo_lim)
+ ENDIF
+
+* perform integrations on standard units if possible
+
+ unit = un_convert( line_unit_code(axis) )
+ IF (unit .NE. 1.) THEN
+ DO 110 i = lo, hi
+ 110 box(i) = box(i) * unit
+ ENDIF
+
+* Compute weights
+* ALONG X AXIS
+* (note: X is a special case because it requires COSINE(lat) )
+ IF ( idim .EQ. x_dim ) THEN
+ cos_factor = 1.
+ need_cos = GEOG_COS_FACTOR( idim, grid )
+ . .AND. cx_lo_s2(com_cx).NE.unspecified_int4
+ DO 210 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
+ IF ( need_cos ) THEN
+#ifdef double_p
+ cos_factor = COS( deg2rad *
+ . TM_WORLD(j, grid, y_dim, box_middle) )
+ ybxlo = deg2rad*
+ . TM_WORLD(j,grid,y_dim,box_lo_lim)
+ ybxhi = deg2rad*
+ . TM_WORLD(j,grid,y_dim,box_hi_lim)
+#else
+ cos_factor = COS( deg2rad *
+ . SNGL( TM_WORLD(j, grid, y_dim, box_middle) ) )
+ ybxlo = deg2rad*
+ . SNGL( TM_WORLD(j,grid,y_dim,box_lo_lim) )
+ ybxhi = deg2rad*
+ . SNGL( TM_WORLD(j,grid,y_dim,box_hi_lim) )
+#endif
+ yh = ABS(ybxhi - ybxlo)
+ cos_factor = ABS( SIN(ybxhi) - SIN(ybxlo) )/ yh
+
+
+ ! cos(yc) * abs(sin(yh/2))/(yh/2)
+
+ cos_factor = COS( deg2rad*
+ . TM_WORLD(j, grid, y_dim, box_middle) )*
+ . ABS(SIN(yh/2)/(yh/2) )
+ ENDIF
+
+ DO 210 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
+ DO 210 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
+ DO 210 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
+ DO 210 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
+ IF ( point ) THEN
+ res(i,j,k,l,m,n) = 0.
+ ELSE
+ DO 200 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
+ res(i,j,k,l,m,n) = box(i)* cos_factor
+ 200 CONTINUE
+ ENDIF
+ 210 CONTINUE
+
+* ALONG Y AXIS
+ ELSEIF ( idim .EQ. y_dim ) THEN
+ DO 310 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
+ DO 310 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
+ DO 310 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
+ DO 310 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
+ DO 310 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
+ IF ( point ) THEN
+ res(i,j,k,l,m,n) = 0.
+ ELSE
+ DO 300 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
+ res(i,j,k,l,m,n) = box(j)
+ 300 CONTINUE
+ ENDIF
+ 310 CONTINUE
+
+* ALONG Z AXIS
+ ELSEIF ( idim .EQ. z_dim ) THEN
+ DO 410 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
+ DO 410 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
+ DO 410 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
+ DO 410 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
+ DO 410 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
+ IF ( point ) THEN
+ res(i,j,k,l,m,n) = 0.
+ ELSE
+ DO 400 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
+ res(i,j,k,l,m,n) = box(k)
+ 400 CONTINUE
+ ENDIF
+ 410 CONTINUE
+
+* ALONG T AXIS
+ ELSEIF ( idim .EQ. t_dim ) THEN
+ DO 510 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
+ DO 510 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
+ DO 510 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
+ DO 510 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
+ DO 510 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
+ IF ( point ) THEN
+ res(i,j,k,l,m,n) = 0.
+ ELSE
+ DO 500 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
+ res(i,j,k,l,m,n) = box(l)
+ 500 CONTINUE
+ ENDIF
+ 510 CONTINUE
+
+
+* ALONG E AXIS
+ ELSEIF ( idim .EQ. e_dim ) THEN
+ DO 610 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
+ DO 610 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
+ DO 610 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
+ DO 610 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
+ DO 610 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
+ IF ( point ) THEN
+ res(i,j,k,l,m,n) = 0.
+ ELSE
+ DO 600 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
+ res(i,j,k,l,m,n) = box(m)
+ 600 CONTINUE
+ ENDIF
+ 610 CONTINUE
+
+
+* ALONG F AXIS
+ ELSEIF ( idim .EQ. f_dim ) THEN
+ DO 710 m = cx_lo_s5(com_cx), cx_hi_s5(com_cx)
+ DO 710 l = cx_lo_s4(com_cx), cx_hi_s4(com_cx)
+ DO 710 k = cx_lo_s3(com_cx), cx_hi_s3(com_cx)
+ DO 710 j = cx_lo_s2(com_cx), cx_hi_s2(com_cx)
+ DO 710 i = cx_lo_s1(com_cx), cx_hi_s1(com_cx)
+ IF ( point ) THEN
+ res(i,j,k,l,m,n) = 0.
+ ELSE
+ DO 700 n = cx_lo_s6(com_cx), cx_hi_s6(com_cx)
+ res(i,j,k,l,m,n) = box(n)
+ 700 CONTINUE
+ ENDIF
+ 710 CONTINUE
+
+ ENDIF
+
+ RETURN
+ END
diff --git a/fer/doo/do_xyave_regrid.F b/fer/doo/do_xyave_regrid.F
index 7876c46..0d795ab 100644
--- a/fer/doo/do_xyave_regrid.F
+++ b/fer/doo/do_xyave_regrid.F
@@ -1,5 +1,6 @@
SUBROUTINE DO_XYAVE_REGRID( cx_lims, src, msrc, dst, mdst,
- . work, src_cx, dst_cx, iwork2, itot )
+ . work, src_cx, dst_cx, iwork2, itot,
+ . aweight )
*
*
@@ -54,14 +55,15 @@
include 'xcontext.cmn'
* calling argument declarations:
- INTEGER cx_lims, axis, msrc, mdst, iwork2, itot, src_cx, dst_cx
+ INTEGER cx_lims, axis, msrc, mdst, iwork2, itot, src_cx, dst_cx,
+ . aweight
REAL src(*), dst(*), work(itot)
CALL XYAVE_REGRID( cx_lims,
. cx_lo_ss(cx_lims,x_dim), cx_hi_ss(cx_lims,x_dim),
. cx_lo_ss(cx_lims,y_dim), cx_hi_ss(cx_lims,y_dim),
. src, msrc, dst, mdst, src_cx, dst_cx,
- . work(1), work(iwork2) )
+ . work(1), work(iwork2), aweight )
RETURN
END
diff --git a/fer/doo/xyave_regrid.F b/fer/doo/xyave_regrid.F
index 7cf7b88..c7cfbb9 100644
--- a/fer/doo/xyave_regrid.F
+++ b/fer/doo/xyave_regrid.F
@@ -107,7 +107,7 @@
REAL AXIS_DISTANCE, BOX_SIZE,
. xdist, ydist, area, sum, darea, bad_src, bad_dst,
- . cos_fact, area_earth, ybxlo, ybxhi
+ . cos_fact, area_earth, ybxlo, ybxhi, yh
REAL*8 TWORLD,
. xsrc_lo, xsrc_hi, ysrc_lo, ysrc_hi,
@@ -201,23 +201,16 @@
DO 51 jsrc = jsrc_lo, jsrc_hi
cos_fact = 1.0
IF ( need_cos ) THEN
-! cos_fact = COS(deg2rad*TWORLD(jsrc,src_grid,dim2,box_middle)) !old method!
-! yc = TWORLD(jsrc,src_grid,dim2,box_middle)
-! bx = BOX_SIZE( jsrc, src_grid, dim2 )
-! yh_2 = 0.5*deg2rad * bx
-! yc = deg2rad * yc
-! cos_fact = COS(yc) * 2.*ABS( SIN(yh_2) )
-
-C The above are all OK if the coordinate point is in the middle of the box.
-C If the coordinate is not in the middle of the cell then it should be
-C ABS(SIN(ybxhi)-SIN(ybxlo))
+
C See this thread:
C http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2009/msg00506.html
C And also ticket 1348.
ybxlo = deg2rad* TWORLD(jsrc,src_grid,dim2,box_lo_lim)
ybxhi = deg2rad* TWORLD(jsrc,src_grid,dim2,box_hi_lim)
- cos_fact = ABS( SIN(ybxhi) - SIN(ybxlo) )
+
+ yh = ybxhi-ybxlo
+ cos_fact = ABS( SIN(ybxhi) - SIN(ybxlo) )/ yh
ENDIF
diff --git a/fer/ef_utility/ef_get_string_arg_elem_len_sub.F b/fer/ef_utility/ef_get_string_arg_elem_len_sub.F
index 97bbd62..382a2f9 100644
--- a/fer/ef_utility/ef_get_string_arg_elem_len_sub.F
+++ b/fer/ef_utility/ef_get_string_arg_elem_len_sub.F
@@ -43,6 +43,8 @@
* and we can call GET_STRING_ELEMENT to get the length of a string element.
*
* acm 12/03 from ef_get_arg_string
+* V691+*acm* 8/14 Fix ticket 2190: long strings were being cut off.
+*
*
* 3/12 *kms* Added E and F dimensions
@@ -52,9 +54,9 @@
. slen, max_line_len
REAL*8 arg(lox:hix, loy:hiy, loz:hiz, lot:hit, loe:hie, lof:hif)
- CHARACTER*512 text
+ CHARACTER*2048 text
- CHARACTER GET_STRING_ELEMENT*512
+ CHARACTER GET_STRING_ELEMENT*2048
text = GET_STRING_ELEMENT(lox, hix, loy, hiy, loz, hiz,
. lot, hit, loe, hie, lof, hif, arg,
diff --git a/fer/ef_utility/ef_get_string_arg_element_6d.F b/fer/ef_utility/ef_get_string_arg_element_6d.F
index 467845d..490eb03 100644
--- a/fer/ef_utility/ef_get_string_arg_element_6d.F
+++ b/fer/ef_utility/ef_get_string_arg_element_6d.F
@@ -41,6 +41,8 @@ c* This returns an element of the string array which was passed as an argument
c* to the function and for convenience, its length.
*
* 3/12 *kms* Added E and F dimensions, appended _6D to subroutine name
+* V691+*acm* 8/14 Fix ticket 2190: long strings were being cut off.
+*
SUBROUTINE EF_GET_STRING_ARG_ELEMENT_6D(id, iarg, arg,
@@ -61,7 +63,7 @@ c* to the function and for convenience, its length.
. lot, hit, loe, hie, lof, hif
INTEGER mr_list(EF_MAX_ARGS)
CHARACTER buff*128
- PARAMETER (max_line_len = 512)
+ PARAMETER (max_line_len = 2048)
INTEGER arg_lo_ss(nferdims,EF_MAX_ARGS),
. arg_hi_ss(nferdims,EF_MAX_ARGS),
diff --git a/fer/ef_utility/ef_get_string_arg_element_len_6d.F b/fer/ef_utility/ef_get_string_arg_element_len_6d.F
index ff00bbc..5638cab 100644
--- a/fer/ef_utility/ef_get_string_arg_element_len_6d.F
+++ b/fer/ef_utility/ef_get_string_arg_element_len_6d.F
@@ -42,6 +42,8 @@
* was passed as an argument to the external function.
*
* 3/12 *kms* Added E and F dimensions, appended _6D to subroutine name
+* V691+*acm* 8/14 Fix ticket 2190: long strings were being cut off.
+*
IMPLICIT NONE
INCLUDE 'tmap_dims.parm'
@@ -57,7 +59,7 @@
. lot, hit, loe, hie, lof, hif
INTEGER mr_list(EF_MAX_ARGS)
CHARACTER buff*128
- PARAMETER (max_line_len = 512)
+ PARAMETER (max_line_len = 2048)
INTEGER arg_lo_ss(nferdims,EF_MAX_ARGS),
. arg_hi_ss(nferdims,EF_MAX_ARGS),
diff --git a/fer/ef_utility/ef_get_string_arg_element_sub.F b/fer/ef_utility/ef_get_string_arg_element_sub.F
index 3f4bc5f..e2dd622 100644
--- a/fer/ef_utility/ef_get_string_arg_element_sub.F
+++ b/fer/ef_utility/ef_get_string_arg_element_sub.F
@@ -41,6 +41,8 @@
* and we can call GET_STRING_ELEMENT to get a string element.
*
* 3/12 *kms* Added E and F dimensions
+* V691+*acm* 8/14 Fix ticket 2190: long strings were being cut off.
+*
SUBROUTINE EF_GET_STRING_ARG_ELEMENT_SUB( lox, hix, loy, hiy,
. loz, hiz, lot, hit, loe, hie, lof, hif, arg,
@@ -53,7 +55,7 @@
CHARACTER*(*) text
REAL*8 arg(lox:hix, loy:hiy, loz:hiz, lot:hit, loe:hie, lof:hif)
- CHARACTER GET_STRING_ELEMENT*512
+ CHARACTER GET_STRING_ELEMENT*2048
text = GET_STRING_ELEMENT(lox, hix, loy, hiy, loz, hiz,
. lot, hit, loe, hie, lof, hif, arg,
diff --git a/fer/ef_utility/ef_get_string_arg_max_len.F b/fer/ef_utility/ef_get_string_arg_max_len.F
index 3227dfe..2b5d7a2 100644
--- a/fer/ef_utility/ef_get_string_arg_max_len.F
+++ b/fer/ef_utility/ef_get_string_arg_max_len.F
@@ -37,6 +37,8 @@
* This returns the maximum length of the string elements of a string array
* which was passed as an argument to the external function.
*
+* V691+*acm* 8/14 Fix ticket 2190: long strings were being cut off.
+*
IMPLICIT NONE
INCLUDE 'tmap_dims.parm'
@@ -54,7 +56,7 @@
. lot, hit, loe, hie, lof, hif
INTEGER mr_list(EF_MAX_ARGS)
CHARACTER buff*64
- PARAMETER (max_line_len = 512)
+ PARAMETER (max_line_len = 2048)
INTEGER arg_lo_ss(nferdims,EF_MAX_ARGS),
. arg_hi_ss(nferdims,EF_MAX_ARGS),
diff --git a/fer/efi/SOURCE_FILES b/fer/efi/SOURCE_FILES
index 9cfa530..730d3d7 100644
--- a/fer/efi/SOURCE_FILES
+++ b/fer/efi/SOURCE_FILES
@@ -46,6 +46,7 @@ expndi_by_t.F\
expndi_by_z.F\
expndi_by_z_counts.F\
expndi_id_by_z_counts.F\
+expndi_by_m_counts.F\
fc_isubset.F\
fcat.F\
fcat_str.F\
@@ -127,6 +128,7 @@ scat2grid_nobs_xy.F\
scat2grid_nobs_xyt.F\
scat2grid_subs.F\
secs_to_ymdhms.F\
+separate.F\
sorti.F\
sorti_str.F\
sortj.F\
diff --git a/fer/efi/date1900.F b/fer/efi/date1900.F
index dd1d9c1..776206c 100644
--- a/fer/efi/date1900.F
+++ b/fer/efi/date1900.F
@@ -39,6 +39,9 @@
* an argument rather than a return from function; under
* 64-bit the return always yielded 0.
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
+* V69+ *acm* 9/14 Make DATE1900 accept an array of date strings,
+* returning an array of coordinates
+
* In this subroutine we provide information about
* the function. The user configurable information
@@ -88,15 +91,15 @@
* V
CALL ef_set_desc (id,
- . 'Convert a date into Julian days since 1-Jan-1900' )
+ . 'Convert date strings into Julian days since 1-Jan-1900' )
CALL ef_set_num_args(id, 1)
CALL ef_set_axis_inheritance_6d(id,
- . NORMAL, NORMAL,
+ . IMPLIED_BY_ARGS, NORMAL,
. NORMAL, NORMAL,
. NORMAL, NORMAL)
- CALL ef_set_piecemeal_ok_6d(id, NO, NO, NO, NO, NO, NO)
+ CALL ef_set_piecemeal_ok_6d(id, YES, NO, NO, NO, NO, NO)
CALL ef_set_num_work_arrays(id, 0)
@@ -108,7 +111,7 @@
CALL ef_set_arg_desc(id, arg,
. 'dd-MMM-yy or dd-MMM-yyyy (e.g. "20-Dec-00")')
CALL ef_set_axis_influence_6d(id, arg,
- . NO, NO, NO, NO, NO, NO)
+ . YES, NO, NO, NO, NO, NO)
* ^
* |
@@ -118,40 +121,6 @@
RETURN
END
-
-
-*
-* In this subroutine we provide information about the lo and hi
-* limits associated with each abstract or custom axis. The user
-* configurable information consists of the following:
-*
-* lo_ss lo subscript for an axis
-*
-* hi_ss hi subscript for an axis
-*
-
- SUBROUTINE date1900_result_limits(id)
-
- IMPLICIT NONE
- INCLUDE 'EF_Util.cmn'
-
- INTEGER id
-
-* **********************************************************************
-* USER CONFIGURABLE PORTION |
-* |
-* V
-
-
-* ^
-* |
-* USER CONFIGURABLE PORTION |
-* **********************************************************************
-
- RETURN
- END
-
-
*
* In this subroutine we compute the result
*
@@ -178,6 +147,19 @@
. memresloz:memreshiz, memreslot:memreshit,
. memresloe:memreshie, memreslof:memreshif)
+
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable''s axes.
+
+ INTEGER res_lo_ss(6),
+ . res_hi_ss(6),
+ . res_incr (6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
REAL bad_flag(EF_MAX_ARGS), bad_flag_result
************************************************************************
@@ -185,26 +167,39 @@
* |
* V
- INTEGER slen
- CHARACTER str_date*12
- REAL res
- INTEGER TM_LENSTR1
+ INTEGER slen, i, j, k, l, m, n
+ CHARACTER str_date*12
+ REAL res
+ INTEGER TM_LENSTR1
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+C result and arg_1 have same array dimension limits
- CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
- CALL ef_get_arg_string(id, 1, str_date)
+ DO 100 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+ DO 100 m=res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ DO 100 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ DO 100 k=res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+ DO 100 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+ DO 100 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+
+ CALL ef_get_string_arg_element_6d(id, ARG1, arg_1,
+ . i, j, k, l, m, n, slen, str_date)
* make it a null-terminated string
- slen = MIN(TM_LENSTR1(str_date)+1,12)
- str_date(slen:slen) = CHAR(0)
-
- CALL DATE_DECODE(str_date, res)
- IF ( res .EQ. -1E34 ) THEN
- result(memreslox, memresloy, memresloz,
- . memreslot, memresloe, memreslof) = bad_flag_result
- ELSE
- result(memreslox, memresloy, memresloz,
- . memreslot, memresloe, memreslof) = res
- ENDIF
+ slen = MIN(TM_LENSTR1(str_date)+1,12)
+ str_date(slen:slen) = CHAR(0)
+
+ CALL DATE_DECODE(str_date, res)
+ IF ( res .EQ. -1E34 ) THEN
+ result(i, j, k, l, m, n) = bad_flag_result
+ ELSE
+ result(i, j, k, l, m, n) = res
+ ENDIF
+
+ 100 CONTINUE
* ^
* |
diff --git a/fer/efi/expndi_by_m_counts.F b/fer/efi/expndi_by_m_counts.F
new file mode 100644
index 0000000..ddbc449
--- /dev/null
+++ b/fer/efi/expndi_by_m_counts.F
@@ -0,0 +1,318 @@
+*
+* expndi_by_m_counts.F
+*
+* Ansley Manke (from expndi_by_z_counts)
+* 4/2014
+*
+* Expand argument 1 by creating a 2D XE structure from it with the
+* separation between X rows given by the lengths specified in
+* argument 2. Argument 2 is a list of length N, where N is the number of
+* X rows to create, and each item in the list is the length of that
+* column (the length of the cruise or profile). Thus the X rows created
+* are "ragged" Typical use is that arg 1 is a collection of vertical casts
+* appended end-to-end and that arg 2 is the number of values in each cast.
+* The sum of the values in arg 2 is the length of argument 1.
+
+* Args 3 and 4 are constants -- the size of the X and E axes, respectively
+
+* In this subroutine we provide information about
+* the function. The user configurable information
+* consists of the following:
+*
+* descr Text description of the function
+*
+* num_args Required number of arguments
+*
+* axis_inheritance Type of axis for the result
+* ( CUSTOM, IMPLIED_BY_Z_ARGS, q, ABSTRACT )
+* CUSTOM - user defined axis
+* IMPLIED_BY_Z_ARGS - same axis as the incoming argument
+* NORMAL - the result is normal to this axis
+* ABSTRACT - an axis which only has index values
+*
+* piecemeal_ok For memory optimization:
+* axes where calculation may be performed piecemeal
+* ( YES, NO )
+*
+*
+* For each argument we provide the following information:
+*
+* name Text name for an argument
+*
+* unit Text units for an argument
+*
+* desc Text description of an argument
+*
+* axis_influence Are this argument's axes the same as the result grid?
+* ( YES, NO )
+*
+* axis_extend How much does Ferret need to extend arg limits relative to result
+*
+
+
+ SUBROUTINE expndi_by_m_counts_init(id)
+
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id, arg
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ CALL ef_set_desc(id,
+ . 'Expand arg1 into an XE grid. (split I variable into E-Rows)' )
+
+ CALL ef_set_num_args(id, 3)
+ CALL ef_set_has_vari_args(id, NO)
+ CALL ef_set_axis_inheritance_6d(id, CUSTOM, NORMAL,
+ . NORMAL, NORMAL, CUSTOM, NORMAL)
+
+ arg = 1
+ CALL ef_set_arg_name(id, arg, 'dat')
+ CALL ef_set_arg_desc(id, arg, '1-D variable to expand')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+ arg = 2
+ CALL ef_set_arg_name(id, arg, 'counts')
+ CALL ef_set_arg_desc(id, arg,
+ . '1-D list on E axis: count of values in each trajectory')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+
+ arg = 3
+ CALL ef_set_arg_name(id, arg, 'max_row_len')
+ CALL ef_set_arg_desc(id, arg,
+ . 'I size of result (constant)')
+ CALL ef_set_axis_influence_6d(id, arg, NO, NO, NO, NO, NO, NO)
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+
+ SUBROUTINE expndi_by_m_counts_custom_axes(id)
+
+ IMPLICIT NONE
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id
+
+ REAL size, ene
+ integer arg, idim, nm
+
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+*
+* Use utility functions to get context information about the arguments.
+*
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+* output X axis size: Longest feature
+
+ CALL ef_get_one_val(id, ARG3, size)
+ CALL ef_set_custom_axis(id, X_AXIS, 1.0, size, 1.0, 'Obs', NO)
+
+
+* output E axis size: Rowsize
+ arg = 2
+ nm = arg_hi_ss(E_AXIS,arg)-arg_lo_ss(E_AXIS,arg) + 1
+ ene = FLOAT(nm)
+ CALL ef_set_custom_axis(id, E_AXIS, 1., ene, 1., 'Row', NO)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+*
+* In this subroutine we provide information about the lo and hi
+* limits associated with each abstract or custom axis. The user
+* configurable information consists of the following:
+*
+* lo_ss lo subscript for an axis
+*
+* hi_ss hi subscript for an axis
+*
+
+ SUBROUTINE expndi_by_m_counts_result_limits(id)
+
+ INCLUDE 'EF_Util.cmn'
+
+ INTEGER id
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ REAL size
+ integer nm, arg, idim
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS),
+ . arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr (6,EF_MAX_ARGS)
+
+*
+* Use utility functions to get context information about the arguments.
+*
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+
+* output X axis size: Longest feature
+ CALL ef_get_one_val(id, ARG3, size)
+ nm = INT(ABS(size))
+ CALL ef_set_axis_limits(id, X_AXIS, 1, nm)
+
+* output E axis size
+ arg = 1
+ nm = arg_hi_ss(E_AXIS,arg)-arg_lo_ss(E_AXIS,arg) + 1
+ CALL ef_set_axis_limits(id, E_AXIS, 1, nm)
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
+*
+* In this subroutine we compute the result
+*
+ SUBROUTINE expndi_by_m_counts_compute(id, arg_1, arg_2, arg_3,
+ . result)
+
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
+
+ INTEGER id
+
+ REAL bad_flag(EF_MAX_ARGS), bad_flag_result
+ REAL arg_1(mem1lox:mem1hix, mem1loy:mem1hiy,
+ . mem1loz:mem1hiz, mem1lot:mem1hit,
+ . mem1loe:mem1hie, mem1lof:mem1hif)
+ REAL arg_2(mem2lox:mem2hix, mem2loy:mem2hiy,
+ . mem2loz:mem2hiz, mem2lot:mem2hit,
+ . mem2loe:mem2hie, mem2lof:mem2hif)
+ REAL arg_3(mem3lox:mem3hix, mem3loy:mem3hiy,
+ . mem3loz:mem3hiz, mem3lot:mem3hit,
+ . mem3loe:mem3hie, mem3lof:mem3hif)
+ REAL result(memreslox:memreshix, memresloy:memreshiy,
+ . memresloz:memreshiz, memreslot:memreshit,
+ . memresloe:memreshie, memreslof:memreshif)
+
+* After initialization, the 'res_' arrays contain indexing information
+* for the result axes. The 'arg_' arrays will contain the indexing
+* information for each variable's axes.
+
+ INTEGER res_lo_ss(6), res_hi_ss(6), res_incr(6)
+ INTEGER arg_lo_ss(6,EF_MAX_ARGS), arg_hi_ss(6,EF_MAX_ARGS),
+ . arg_incr(6,EF_MAX_ARGS)
+
+
+* **********************************************************************
+* USER CONFIGURABLE PORTION |
+* |
+* V
+
+ INTEGER i,j,k,l,m,n
+ INTEGER i1, j1, k1, l1, m1, n1
+ INTEGER i2, j2, k2, l2, m2, n2
+ INTEGER imax, iout, isum, mmax, mrow, mout
+
+ CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
+ CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
+ CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
+
+* limits on output arrays
+ imax = res_hi_ss(X_AXIS)
+ mmax = res_hi_ss(E_AXIS)
+
+* sum of counts in arg 2 must be length of x-dimension of arg1
+
+ do 20 i2 = arg_lo_ss(X_AXIS,ARG2), arg_hi_ss(X_AXIS,ARG2)
+ do 20 j2 = arg_lo_ss(Y_AXIS,ARG2), arg_hi_ss(Y_AXIS,ARG2)
+ do 20 k2 = arg_lo_ss(Z_AXIS,ARG2), arg_hi_ss(Z_AXIS,ARG2)
+ do 20 L2 = arg_lo_ss(T_AXIS,ARG2), arg_hi_ss(T_AXIS,ARG2)
+ do 20 n2 = arg_lo_ss(F_AXIS,ARG2), arg_hi_ss(F_AXIS,ARG2)
+ isum = 0
+ DO 10 m2 = arg_lo_ss(E_AXIS,ARG2), arg_hi_ss(E_AXIS,ARG2)
+ IF (arg_2(i2,j2,k2,l2,m2,n2) .EQ. bad_flag(ARG2) .OR.
+ . INT(arg_2(i2,j2,k2,l2,m2,n2)) .LT. 0)
+ . CALL EF_BAIL_OUT(id, 'arg 2 must be non-missing counts GE zero')
+ isum = isum + INT(arg_2(i2,j2,k2,l2,m2,n2))
+ 10 CONTINUE
+ IF (isum .NE. (arg_hi_ss(X_AXIS,ARG1)-arg_lo_ss(X_AXIS,ARG1)+1) )
+ . CALL EF_BAIL_OUT(id,
+ . 'arg 2 values (counts) must sum to x-dimension length of of arg1 ')
+ 20 CONTINUE
+
+* pre-fill the entire output result with missing value flags
+* (since length of each profile may have different number of pts)
+ DO 50 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+ DO 50 m=res_lo_ss(E_AXIS), res_hi_ss(E_AXIS)
+ DO 50 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+ DO 50 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+ DO 50 k=res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+ DO 50 i=res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
+ result(i,j,k,l,m,n) = bad_flag_result
+ 50 CONTINUE
+
+* fill in the points as specified by the counts
+
+ n1 = arg_lo_ss(F_AXIS,ARG1)
+ n2 = arg_lo_ss(F_AXIS,ARG2)
+ DO 400 n=res_lo_ss(F_AXIS), res_hi_ss(F_AXIS)
+
+ l1 = arg_lo_ss(T_AXIS,ARG1)
+ l2 = arg_lo_ss(T_AXIS,ARG2)
+ DO 400 l=res_lo_ss(T_AXIS), res_hi_ss(T_AXIS)
+
+ k1 = arg_lo_ss(Z_AXIS,ARG1)
+ k2 = arg_lo_ss(Z_AXIS,ARG2)
+ DO 400 k=res_lo_ss(Z_AXIS), res_hi_ss(Z_AXIS)
+
+ j1 = arg_lo_ss(Y_AXIS,ARG1)
+ j2 = arg_lo_ss(Y_AXIS,ARG2)
+ DO 400 j=res_lo_ss(Y_AXIS), res_hi_ss(Y_AXIS)
+
+ i1 = arg_lo_ss(X_AXIS,ARG1)
+ i2 = arg_lo_ss(X_AXIS,ARG2)
+
+ m1 = arg_lo_ss(E_AXIS,ARG1)
+ m2 = arg_lo_ss(E_AXIS,ARG2)
+
+ i1 = 1
+ DO 200 mout=arg_lo_ss(E_AXIS,ARG2),arg_hi_ss(E_AXIS,ARG2)
+ DO 100 iout = 1, arg_2(i2,j2,k2,l2,mout,n1)
+ result(iout,j,k,l,mout,n) = arg_1(i1,j1,k1,l1,m1,n1)
+
+ i1 = i1 + 1
+ 100 CONTINUE
+ 200 CONTINUE
+
+ j1 = j1 + arg_incr(Y_AXIS,ARG1)
+ j2 = j2 + arg_incr(Y_AXIS,ARG2)
+ k1 = k1 + arg_incr(Z_AXIS,ARG1)
+ k2 = k2 + arg_incr(Z_AXIS,ARG2)
+ l1 = l1 + arg_incr(T_AXIS,ARG1)
+ l2 = l2 + arg_incr(T_AXIS,ARG2)
+ n1 = n1 + arg_incr(F_AXIS,ARG1)
+ n2 = n2 + arg_incr(F_AXIS,ARG2)
+ 400 CONTINUE
+
+
+* ^
+* |
+* USER CONFIGURABLE PORTION |
+* **********************************************************************
+
+ RETURN
+ END
+
diff --git a/fer/efi/labwid.F b/fer/efi/labwid.F
index 1d1facd..4a17129 100644
--- a/fer/efi/labwid.F
+++ b/fer/efi/labwid.F
@@ -3,7 +3,6 @@
*
* Ansley Manke
* March 1, 2005
-* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -43,6 +42,8 @@
* function, will be linked internally; but it is convenient to implement
* it as an external function.
+* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
+* V69+ 5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
SUBROUTINE labwid_init(id)
@@ -182,8 +183,8 @@
ht = height
DO 40 n = 1, numlines
- CALL getlabfonts (strng, lnbeg, lnend, n, npnew, nfnew,
- . newfont, newpen, nchr)
+ CALL getlabfonts (strng, lnbeg, lnend, n, fontprefix,
+ . npnew, nfnew, newfont, newpen, nchr)
risc_buff = strng(lnbeg(n):lnend(n))
xmn = SYMWID(ht,nchr+npen+nfont,
diff --git a/fer/efi/list_value_xml.F b/fer/efi/list_value_xml.F
index 44f3ba3..f96db0b 100644
--- a/fer/efi/list_value_xml.F
+++ b/fer/efi/list_value_xml.F
@@ -4,6 +4,7 @@
* Ansley Manke
* May 24, 2011
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
+* V691+*acm* 8/14 Fix ticket 2190: long strings were being cut off.
*
* This function writes a string value to an xml string, and with a given tag
* and option to enclose it in CDATA escape. e.g.
@@ -237,7 +238,6 @@
* Get the value (string)
CALL ef_get_string_arg_element_6d(id, ARG2, arg_2,
. i,j,k,l,m,n,vlen,value)
-
i = arg_lo_ss(X_AXIS,ARG3)
j = arg_lo_ss(Y_AXIS,ARG3)
k = arg_lo_ss(Z_AXIS,ARG3)
@@ -276,6 +276,7 @@
vlen = TM_LENSTR1(second)
slen = TM_LENSTR1(third)
outstring = first(1:tlen)//second(1:vlen)//third(1:slen)
+ vlen = tlen+vlen+slen
ELSE
write (first, 1030) tag(1:tlen)
write (second, 1040) value(1:vlen)
@@ -284,6 +285,7 @@
vlen = TM_LENSTR1(second)
slen = TM_LENSTR1(third)
outstring = first(1:tlen)//second(1:vlen)//third(1:slen)
+ vlen = tlen+vlen+slen
ENDIF
vlen = TM_LENSTR1(outstring)
diff --git a/fer/efi/samplexy_curv.F b/fer/efi/samplexy_curv.F
index d979bad..014ce16 100644
--- a/fer/efi/samplexy_curv.F
+++ b/fer/efi/samplexy_curv.F
@@ -278,11 +278,13 @@
LOGICAL need_modulo
REAL ylocations(2)
REAL xpt, ypt, ydiff, yd, add_xcoord, xadd, xcoord
+ REAL xcoord_diff, xcoordlast, tol
REAL xptmin, xptmax, xcoordmin, xcoordmax
REAL fxbot, fxtop, fbb, ftb, fbt, ftt
REAL xbot, xtop, ybot, ytop
REAL xfrac, yfrac
CHARACTER*255 err_msg
+ parameter (tol = 140.)
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -462,6 +464,8 @@ C Check that sample x and y are simple lists of points - same length
DO 700 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
* Find all locations of xpt in arg_2, longitudes of data
+* When a change of sign corresponds with crossing a branch cut, that
+* is not saved as a location where xpt-minus-coordinate changes sign.
xadd = 0.
xpt = arg_4(i4,j4,k4,l4,m4,n4)
@@ -470,30 +474,34 @@ C Check that sample x and y are simple lists of points - same length
. xadd = add_xcoord
nloc = 0
+ i2 = arg_lo_ss(X_AXIS,ARG2)
+ j2 = arg_lo_ss(Y_AXIS,ARG2)
+ xcoordlast = arg_2(i2,j2,k2,l2,m2,n2) + xadd
DO 200 j2 = arg_lo_ss(Y_AXIS,ARG2), arg_hi_ss(Y_AXIS,ARG2)
i2 = arg_lo_ss(X_AXIS,ARG2)
xcoord = arg_2(i2,j2,k2,l2,m2,n2) + xadd
-c icross = SIGN(1, (xpt - xcoord) )
icross = 1
IF ((xpt - xcoord) .LT. 0.) icross = -1
DO 100 i2 = arg_lo_ss(X_AXIS,ARG2), arg_hi_ss(X_AXIS,ARG2)
xcoord = arg_2(i2,j2,k2,l2,m2,n2) + xadd
+ xcoord_diff = ABS(xcoordlast-xcoord)
+ IF (xcoord_diff .GE. tol) icross = -1*icross
-c iloc = SIGN(1, (xpt-xcoord) )
iloc = 1
- IF ((xpt-xcoord) .LT. 0. ) iloc = -1
+
+ IF ((xpt-xcoord) .LT. 0.) iloc = -1
IF (icross .NE. iloc)THEN
nloc = nloc + 1
xlocations(nloc,1,1,1,1,1) =
. MAX(i2-1,arg_lo_ss(X_AXIS,ARG2))
xlocations(nloc,2,1,1,1,1) = j2
-c icross = SIGN(1, (xpt - xcoord) )
icross = 1
IF ((xpt - xcoord) .LT. 0.) icross = -1
ENDIF
+ xcoordlast = xcoord
100 CONTINUE
200 CONTINUE
diff --git a/fer/efi/samplexy_curv_avg.F b/fer/efi/samplexy_curv_avg.F
index 480e6e7..c016fc2 100644
--- a/fer/efi/samplexy_curv_avg.F
+++ b/fer/efi/samplexy_curv_avg.F
@@ -282,7 +282,9 @@
REAL fbb, ftb, fbt, ftt
REAL sum, count
REAL add_xcoord, xadd, xcoord
+ REAL xcoord_diff, xcoordlast, tol
CHARACTER*255 err_msg
+ parameter (tol = 140.)
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
@@ -462,6 +464,8 @@ C Check that sample x and y are simple lists of points - same length
DO 700 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
* Find all locations of xpt in arg_2, longitudes of data
+* When a change of sign corresponds with crossing a branch cut, that
+* is not saved as a location where xpt-minus-coordinate changes sign.
xadd = 0.
xpt = arg_4(i4,j4,k4,l4,m4,n4)
@@ -470,18 +474,21 @@ C Check that sample x and y are simple lists of points - same length
. xadd = add_xcoord
nloc = 0
+ i2 = arg_lo_ss(X_AXIS,ARG2)
+ j2 = arg_lo_ss(Y_AXIS,ARG2)
+ xcoordlast = arg_2(i2,j2,k2,l2,m2,n2) + xadd
DO 200 j2 = arg_lo_ss(Y_AXIS,ARG2), arg_hi_ss(Y_AXIS,ARG2)
i2 = arg_lo_ss(X_AXIS,ARG2)
xcoord = arg_2(i2,j2,k2,l2,m2,n2) + xadd
-c icross = SIGN(1, (xpt - xcoord) )
icross = 1
IF ((xpt - xcoord) .LT. 0.) icross = -1
DO 100 i2 = arg_lo_ss(X_AXIS,ARG2), arg_hi_ss(X_AXIS,ARG2)
xcoord = arg_2(i2,j2,k2,l2,m2,n2) + xadd
+ xcoord_diff = ABS(xcoordlast-xcoord)
+ IF (xcoord_diff .GE. tol) icross = -1*icross
-c iloc = SIGN(1, (xpt-xcoord) )
iloc = 1
IF ((xpt-xcoord) .LT. 0. ) iloc = -1
@@ -490,10 +497,10 @@ c iloc = SIGN(1, (xpt-xcoord) )
xlocations(nloc,1,1,1,1,1) =
. MAX(i2-1,arg_lo_ss(X_AXIS,ARG2))
xlocations(nloc,2,1,1,1,1) = j2
-c icross = SIGN(1, (xpt - xcoord) )
icross = 1
IF ((xpt - xcoord) .LT. 0.) icross = -1
ENDIF
+ xcoordlast = xcoord
100 CONTINUE
200 CONTINUE
diff --git a/fer/efi/samplexy_curv_nrst.F b/fer/efi/samplexy_curv_nrst.F
index 01a3211..94974ee 100644
--- a/fer/efi/samplexy_curv_nrst.F
+++ b/fer/efi/samplexy_curv_nrst.F
@@ -279,9 +279,12 @@
REAL xpt, ypt, ydiff, yd
REAL xptmin, xptmax, xcoordmin, xcoordmax
REAL add_xcoord, xadd, xcoord, sqdd
+ REAL xcoord_diff, xcoordlast, tol
REAL xval, yval, sqdmin
CHARACTER*255 err_msg
+ parameter (tol = 140.)
+
CALL ef_get_res_subscripts_6d(id, res_lo_ss, res_hi_ss, res_incr)
CALL ef_get_arg_subscripts_6d(id, arg_lo_ss, arg_hi_ss, arg_incr)
CALL ef_get_bad_flags(id, bad_flag, bad_flag_result)
@@ -460,6 +463,8 @@ C Check that sample x and y are simple lists of points - same length
DO 700 i = res_lo_ss(X_AXIS), res_hi_ss(X_AXIS)
* Find all locations of xpt in arg_2, longitudes of data
+* When a change of sign corresponds with crossing a branch cut, that
+* is not saved as a location where xpt-minus-coordinate changes sign.
xadd = 0.
xpt = arg_4(i4,j4,k4,l4,m4,n4)
@@ -469,6 +474,10 @@ C Check that sample x and y are simple lists of points - same length
nloc = 0
+ i2 = arg_lo_ss(X_AXIS,ARG2)
+ j2 = arg_lo_ss(Y_AXIS,ARG2)
+ xcoordlast = arg_2(i2,j2,k2,l2,m2,n2) + xadd
+
DO 200 j2 = arg_lo_ss(Y_AXIS,ARG2), arg_hi_ss(Y_AXIS,ARG2)
i2 = arg_lo_ss(X_AXIS,ARG2)
xcoord = arg_2(i2,j2,k2,l2,m2,n2) + xadd
@@ -477,6 +486,8 @@ C Check that sample x and y are simple lists of points - same length
DO 100 i2 = arg_lo_ss(X_AXIS,ARG2), arg_hi_ss(X_AXIS,ARG2)
xcoord = arg_2(i2,j2,k2,l2,m2,n2) + xadd
+ xcoord_diff = ABS(xcoordlast-xcoord)
+ IF (xcoord_diff.GE.tol) icross = -1*icross
iloc = 1
IF ((xpt-xcoord) .LT. 0. ) iloc = -1
@@ -489,6 +500,7 @@ C Check that sample x and y are simple lists of points - same length
icross = 1
IF ((xpt - xcoord) .LT. 0.) icross = -1
ENDIF
+ xcoordlast = xcoord
100 CONTINUE
200 CONTINUE
diff --git a/external_functions/decimate/separate.F b/fer/efi/separate.F
similarity index 91%
copy from external_functions/decimate/separate.F
copy to fer/efi/separate.F
index 48b3b29..b671aa5 100644
--- a/external_functions/decimate/separate.F
+++ b/fer/efi/separate.F
@@ -75,7 +75,7 @@
SUBROUTINE separate_init(id)
IMPLICIT NONE
- INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INCLUDE 'EF_Util.cmn'
INTEGER id, arg
@@ -85,7 +85,7 @@
* V
CALL ef_set_desc(id,
- . 'Insert a bad-value between features' )
+ . 'Insert a bad-value between features (Discrete Sampling Geometries datasets)' )
CALL ef_set_num_args(id, 3)
CALL ef_set_has_vari_args(id, NO)
@@ -123,7 +123,7 @@
SUBROUTINE separate_result_limits(id)
- INCLUDE 'ferret_cmn/EF_Util.cmn'
+ INCLUDE 'EF_Util.cmn'
INTEGER id
@@ -170,8 +170,8 @@
SUBROUTINE separate_compute(id, arg_1, arg_2, arg_3, result)
IMPLICIT NONE
- INCLUDE 'ferret_cmn/EF_Util.cmn'
- INCLUDE 'ferret_cmn/EF_mem_subsc.cmn'
+ INCLUDE 'EF_Util.cmn'
+ INCLUDE 'EF_mem_subsc.cmn'
INTEGER id
@@ -228,16 +228,20 @@
msum = msum + rend
IF (msum .GT. nx) msum = nx+1
DO i = i1, msum
- result(ir) = arg_1(i,k,k,k,k,k)
- IF (ir.GT.1 .AND. ifix .AND.
- . result(ir ).NE.bad_flag_result .AND.
- . result(ir-1).NE.bad_flag_result) THEN
- IF ( result(ir)-result(ir-1) .GT. tol)
- . result(ir) = result(ir) - 360.
- IF ( result(ir)-result(ir-1) .LT. -1*tol)
- . result(ir) = result(ir) + 360.
-
- ENDIF
+ IF (arg_1(i,k,k,k,k,k) .NE. bad_flag(ARG1)) THEN
+ result(ir) = arg_1(i,k,k,k,k,k)
+ IF (ir.GT.1 .AND. ifix) THEN
+ IF (result(ir ).NE.bad_flag_result .AND.
+ . result(ir-1).NE.bad_flag_result) THEN
+ IF ( result(ir)-result(ir-1) .GT. tol)
+ . result(ir) = result(ir) - 360.
+ IF ( result(ir)-result(ir-1) .LT. -1*tol)
+ . result(ir) = result(ir) + 360.
+ ENDIF
+ ENDIF
+ ELSE
+ result(ir) = bad_flag_result
+ ENDIF
ir = ir + 1
IF (ir .GT. res_hi_ss(X_AXIS)) GOTO 9000
ENDDO
diff --git a/fer/gnl/SOURCE_FILES b/fer/gnl/SOURCE_FILES
index 1f75d77..4a0bcf4 100644
--- a/fer/gnl/SOURCE_FILES
+++ b/fer/gnl/SOURCE_FILES
@@ -50,6 +50,7 @@ init_aggregate_dset.F\
init_journal.F\
init_memory.F\
initialize.F\
+isit_const_arr_var.F\
isit_coord_var.F\
line_facts.F\
line_facts_xml.F\
diff --git a/fer/gnl/cdf_list.F b/fer/gnl/cdf_list.F
index 31d67bf..48631ac 100644
--- a/fer/gnl/cdf_list.F
+++ b/fer/gnl/cdf_list.F
@@ -259,7 +259,7 @@
IF ( status .NE. merr_ok ) GOTO 5800
* update Conventions attribute in the file
- buff1 = 'CF-1.0'
+ buff1 = 'CF-1.6'
CALL CD_CONVENTIONS_OUT( append, cdfid, buff1, status )
IF ( status .NE. merr_ok ) GOTO 5800
diff --git a/fer/gnl/get_context_mods.F b/fer/gnl/get_context_mods.F
index 9e752cf..31d21a6 100644
--- a/fer/gnl/get_context_mods.F
+++ b/fer/gnl/get_context_mods.F
@@ -151,6 +151,7 @@
* Detect 'sigma' and 'curvi' automation flags
* Note that errors will be silent in dependency_tree_mode
* Set cx_g_eq_regrid logical (used to be local "regrid_dims")
+* V6.91+ *acm* 8/14 Fix ticket 2189
* specifiers may give coordinate in subscript units (/I,/J,/K,/L) or
* may give coordinate in "world" units (/X,/Y,/Z,/T)
@@ -295,6 +296,11 @@
IF ( text_buff( istart+1:istart+1 ) .NE. ' '
. .AND. text_buff( istart+1:istart+1 ) .NE. '='
. .AND. text_buff( istart+1:istart+1 ) .NE. tab ) GOTO 50
+* We just want to go on if there is a grave-accent expression, e.g.
+* `var,r=dsetnum` inside the "d="
+ do ii = istart+2,iend
+ IF ( text_buff(ii:ii) .EQ. '`') GOTO 50
+ enddo
! ENDIF
* ... D=data_set given
equal_pos = ATOM_POS( text_buff(istart:iend), '=' )
diff --git a/fer/ef_utility/ef_get_string_arg_element_sub.F b/fer/gnl/isit_const_arr_var.F
similarity index 65%
copy from fer/ef_utility/ef_get_string_arg_element_sub.F
copy to fer/gnl/isit_const_arr_var.F
index 3f4bc5f..50eb139 100644
--- a/fer/ef_utility/ef_get_string_arg_element_sub.F
+++ b/fer/gnl/isit_const_arr_var.F
@@ -1,7 +1,5 @@
-* ef_get_string_arg_element_sub.F
-*
-* acm 12/03 from ef_get_arg_string
-*
+ SUBROUTINE ISIT_CONST_ARR_VAR ( cx, const_arr_var, 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),
@@ -34,30 +32,45 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* This returns an element of the string array which was passed as an argument
-* to the function.
-*
-* Inside this subroutine arg is an array of pointers (cast as real*8),
-* and we can call GET_STRING_ELEMENT to get a string element.
-*
-* 3/12 *kms* Added E and F dimensions
+
+* See if the expression is a constant-array variable. Only checks the
+* simple definition of the variable, not a full-on Ferret parsing of the
+* variable and handling as a stack.
+
+* 9/2014 for ticket 981
+
+ INCLUDE 'ferret.parm'
+ INCLUDE 'errmsg.parm'
+ include 'tmap_dims.parm'
+ include 'interp_stack.parm'
+ include 'xvariables.cmn'
+ include 'xcontext.cmn'
+ include 'xprog_state.cmn'
+
+* calling argument declarations
+ LOGICAL const_arr_var
+ INTEGER cx, status
+
+* local variable declarations
+
+ INTEGER cat, var, lo_isp, item, itype
+ CHARACTER*128 buff
+
+ const_arr_var = .FALSE.
+
+ cat = cx_category( cx )
+ var = cx_variable( cx )
- SUBROUTINE EF_GET_STRING_ARG_ELEMENT_SUB( lox, hix, loy, hiy,
- . loz, hiz, lot, hit, loe, hie, lof, hif, arg,
- . i, j, k, l, m, n, max_line_len, slen, text )
+ IF (cat .EQ. cat_const_var) const_arr_var = .TRUE.
- INTEGER i, j, k, l, m, n,
- . lox, hix, loy, hiy, loz, hiz,
- . lot, hit, loe, hie, lof, hif,
- . slen, max_line_len
- CHARACTER*(*) text
- REAL*8 arg(lox:hix, loy:hiy, loz:hiz, lot:hit, loe:hie, lof:hif)
+ IF (cat .EQ. cat_user_var) THEN
- CHARACTER GET_STRING_ELEMENT*512
+ DO item = 1, uvar_num_items( var )
+ itype = uvar_item_type ( item, var )
+ IF (itype .EQ. alg_const_var) const_arr_var = .TRUE.
+ ENDDO
- text = GET_STRING_ELEMENT(lox, hix, loy, hiy, loz, hiz,
- . lot, hit, loe, hie, lof, hif, arg,
- . i, j, k, l, m, n, max_line_len, slen)
+ ENDIF
RETURN
END
diff --git a/fer/gnl/list_cmnd_data.F b/fer/gnl/list_cmnd_data.F
index 8371d3f..ff387bb 100644
--- a/fer/gnl/list_cmnd_data.F
+++ b/fer/gnl/list_cmnd_data.F
@@ -87,6 +87,7 @@
* start each row labelling the coordinate values. (bug 1273)
* V650: *acm* 2/10 - Clean up line with coordinates on listings with tabs/commas
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V691+ *acm* 9/14 Ticket 2199: for string variables don't list a BAD FLAG in the header.
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -268,6 +269,7 @@
line_buff = ' '
WRITE ( line_buff, '(1PG14.7)' ) cx_bad_data(cx)
line_buff = TM_FMT(cx_bad_data(cx),prec_digits,16,vlen)
+ IF (itsa_string) line_buff = ' '
CALL SPLIT_LIST( pttmode_explct, list_lun,
. ' BAD FLAG : '//
. line_buff, 38 )
diff --git a/fer/gnl/list_multi_sub.F b/fer/gnl/list_multi_sub.F
index acd704f..6ab7852 100644
--- a/fer/gnl/list_multi_sub.F
+++ b/fer/gnl/list_multi_sub.F
@@ -84,6 +84,7 @@
* is that they'll be read into some other software e.g.
* spreadsheets, so the user wants the missing flags in there.
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V691+ *acm* 9/14 Ticket 2199: for string variables don't list a BAD FLAG in the header.
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -352,7 +353,9 @@
bad_buff = ' '
blen = 1
- IF (do_comma_del .OR. do_tab_del) THEN
+! do not write a bad-flag notation for string variables.
+ IF ((do_comma_del .OR. do_tab_del) .AND.
+ . (mr_type(mr_list(ivar)) .NE. ptype_string)) THEN
bad_buff = ' BAD FLAG : '//
. TM_FMT(bad(ivar),prec_digits,16,blen)
blen = blen + 14
diff --git a/fer/gnl/repl_exprns.F b/fer/gnl/repl_exprns.F
index 8896bdc..d26b022 100644
--- a/fer/gnl/repl_exprns.F
+++ b/fer/gnl/repl_exprns.F
@@ -105,6 +105,10 @@
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* V684 *acm* 12/12 Add data type of DOUBLE for return=dtype
* V685 *sh* 11/13 Add return=status and return=ready
+* V69+ *acm* 9/14 Ticket 2197. After return=status and return=ready need to unset the
+* flag dependency_tree_mode to turn regular error reporting back on.
+* V69+ *acm* 9/14 Ticket 981. If the variable is a constant-array, evaluate it to get
+* the grid size rather than returning the nominal length.
#include "netcdf.inc"
include 'tmap_dims.parm'
@@ -134,14 +138,14 @@
* internal variable declarations:
LOGICAL need_formatting, zero_fill, coordvar,
- . do_err, do_eval, get_ready
+ . do_err, do_eval, get_ready, was_dep, const_arr_var
INTEGER CGRID_SIZE, CGRID_AXIS, TM_LENSTR1, CX_DIM_LEN,
. FIND_DSET_NUMBER, str_len, lenbuff, iend, itmp, axis,
. mr, cx, mr_temp, i, i2, use_digits, true_end,
. qual_end, brkt, idim, use_width, dset, varid,
. vartype, nvdims, vdims(8), nvatts, ist, ind,
. attype, attlen, inxt, attoutflag,outflag, fertype,
- . attid, ieq, dqote, base_isp, base_cx
+ . attid, ieq, dqote, base_isp, base_cx, cat, var
REAL result, val
REAL*8 TM_WORLD, TM_WW_AXLEN, ww
CHARACTER TM_FMT*18, LEFINT*16, VAR_TITLE*(max_len),
@@ -344,6 +348,7 @@
get_ready = repl(1:4) .EQ. 'ISRE'
CALL GET_DEPENDENCY_STATUS(memory, cmnd(istart:iend),
. repl, str_len, status)
+ CALL EXIT_DEPENDENCY_MODE
IF (status.NE. ferr_ok) GOTO 5050
IF (get_ready) THEN
* return=READY gives merely a 1 or 0
@@ -378,6 +383,7 @@
cx = is_cx(1) ! always comes back as the first context
+
* ... if the result has any axes with unknown limits then we have to do a
* full evaluation. This happens (only?) from grid-changing fcns that
* return ABSTRACT axes, on which limits may depend on data values
@@ -397,6 +403,13 @@
190 CONTINUE
ENDIF ! `d=1,return=varnames`
+* If it's a constant-array variable, we'd like to return its actual size, not the
+* nominal length of the abstract axis. This should not be a performance problem.
+
+ CALL ISIT_CONST_ARR_VAR ( cx, const_arr_var, status )
+ IF (const_arr_var) CALL EVAL_EXPR ( memory, cx_last,
+ . cmnd(istart:iend), apply_cx, status )
+
ENDIF
* ... RETURN= information request: "repl" contains the keyword
* Add to this error string when adding new arguments:
@@ -816,8 +829,10 @@
lencmnd = lencmnd - ((true_end-istart+3) - str_len)
ENDIF
+
* successful translation of a grave-accented expression
1000 did_sub = .TRUE.
+
RETURN
* error exits
diff --git a/fer/gnl/sample.F b/fer/gnl/sample.F
index 7f79b67..660f651 100644
--- a/fer/gnl/sample.F
+++ b/fer/gnl/sample.F
@@ -73,6 +73,7 @@
* v552 4/03 *acm* up VAR_TRANS to 150 characters (variables are up to 128, plus
* space for the transformation specifier)
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -96,7 +97,7 @@
. TM_HAS_STRING
INTEGER TM_LENSTR1, CGRID_SIZE, STR_UPCASE,
. CX_DIM_LEN,
- . mblk1, nblks, col_mblk1, col_nblks, slen,
+ . mblk1, nblks, grid_blocks, col_mblk1, col_nblks, slen,
. ssorww(4), out_lun,
. i, flen, fmlen, npts, cx, ndim, dim(4), cxpts(2:5)
REAL missing
@@ -138,17 +139,17 @@
* Decode the specification of subscript or world coordinate
* /OPT2 = "C" (all coordinates) or "I" (all indices) or "CCIN", ...
- DO 200 i = 1, 4
+ DO 200 i = 1, nferdims
200 ssorww(i) = by_ww ! default to "C"
IF ( opt2_string .NE. ' ' ) THEN
i = STR_UPCASE( opt2_string, opt2_string )
slen = TM_LENSTR1( opt2_string )
IF ( slen.NE.1 .AND. slen.NE.4 ) GOTO 5400
IF ( slen.EQ.1 ) THEN ! replicate single char shorthand
- DO 210 i = 2, 4
+ DO 210 i = 2, nferdims
210 opt2_string(i:i) = opt2_string(1:1)
ENDIF
- DO 220 i = 1, 4
+ DO 220 i = 1, nferdims
IF ( opt2_string(i:i) .EQ. 'C' ) THEN
ssorww(i) = by_ww
ELSEIF ( opt2_string(i:i) .EQ. 'I' ) THEN
@@ -170,13 +171,13 @@
* make sure the field of data provided doesn't create ambiguities on the
* unsampled axes (i.e. multiple points provided but no sampling coordinates)
cx = cx_list(1)
- DO 300 i = 1, 4
+ DO 300 i = 1, nferdims
IF ( ssorww(i) .EQ. by_nothin
. .AND. CX_DIM_LEN(i, cx) .GT. 1 ) GOTO 5500
300 CONTINUE
* make sure there is no attempt to sample on a normal axis
- DO 400 i = 1, 4
+ DO 400 i = 1, nferdims
IF ( ssorww(i) .NE. by_nothin
. .AND. cx_lo_ss(cx,i) .EQ. unspecified_int4 ) GOTO 5700
400 CONTINUE
@@ -197,13 +198,20 @@
flen = TM_LENSTR1( fname )
fmlen = TM_LENSTR1( fmt )
-* allocate memory for consolidated 4D coordinates
- CALL GET_MEMORY( npts*4, mblk1, nblks, status )
+* allocate memory for consolidated 6D coordinates
+
+
+* COMPUTE # BLOCKS NEEDED
+
+ grid_blocks = ( npts*nferdims + mem_blk_size - 1 ) / mem_blk_size
+
+ CALL GET_MEMORY( npts*nferdims, grid_blocks, mblk1, nblks, status )
IF ( status .NE. ferr_ok ) GOTO 5000
* allocate memory for output record buffer if needed
IF ( columns .GT. 0 ) THEN
- CALL GET_MEMORY( columns, col_mblk1, col_nblks, status )
+ grid_blocks = ( columns + mem_blk_size - 1 ) / mem_blk_size
+ CALL GET_MEMORY( columns, grid_blocks, col_mblk1, col_nblks, status )
IF ( status .NE. ferr_ok ) GOTO 5000
ELSE
col_mblk1 = 1 ! dummy, unused
diff --git a/fer/gnl/set_var.F b/fer/gnl/set_var.F
index 4ba5330..9e1bddd 100644
--- a/fer/gnl/set_var.F
+++ b/fer/gnl/set_var.F
@@ -82,6 +82,7 @@
* V683 8/12 *acm* Move writing of notes about output precision to cdf_list.F
* V685 *acm* 3/13 For Ensemble aggregations, call the ds_type 'ENS'
* V690 *sh* 1/14 Added SET VARIABLE/SIGMA=varname
+* V690 *acm* 3/14 Fix ticket 2152, error messages on illegal SET VAR/NAME
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -667,7 +668,9 @@
. 'illegal new name given for '
. //risc_buff(:len_rbuff),
. *5000 )
- 5400 IF (dset .GT. 0) THEN
+ 5400 CALL PARSE_NAM_DSET( newname, cx_last, dset,
+ . cat, var, mod_cx, status )
+ IF (cat .EQ. cat_file_var) THEN
CALL ERRMSG( ferr_invalid_command, status,
. 'illegal new name. Variable '
. //newname_lc(:len_rbuff)//' exists in dataset ',
diff --git a/fer/gnl/show_1_function.F b/fer/gnl/show_1_function.F
index 598678b..fda705a 100644
--- a/fer/gnl/show_1_function.F
+++ b/fer/gnl/show_1_function.F
@@ -265,6 +265,8 @@
ENDIF
IF (itype .EQ. parg_type_string) THEN
risc_buff = risc_buff(:ll) // ' (STRING)'
+ ELSE
+ IF (detail) risc_buff = risc_buff(:ll) // ' (FLOAT)'
ENDIF
ll = TM_LENSTR1(risc_buff)
diff --git a/fer/gnl/show_1_pyvar.F b/fer/gnl/show_1_pyvar.F
index a38d195..2fe5c41 100644
--- a/fer/gnl/show_1_pyvar.F
+++ b/fer/gnl/show_1_pyvar.F
@@ -59,8 +59,8 @@
* local variables
CHARACTER*256 myline
- CHARACTER*17 axstr(4), fltstr
- INTEGER j, k, q, starti(4), grid, listdims
+ CHARACTER*17 axstr(nferdims), fltstr
+ INTEGER j, k, q, starti(nferdims), grid, listdims
REAL*8 lo, hi
listdims = nferdims
diff --git a/fer/gnl/show_data.F b/fer/gnl/show_data.F
index ad81467..c4bce01 100644
--- a/fer/gnl/show_data.F
+++ b/fer/gnl/show_data.F
@@ -39,6 +39,7 @@
* V6.8 acm 6/12 Implement mode_6d_lab, set by default. If canceled, the
* various SHOW commnands will not list info for E,F dimensions.
* V685 4/13 *acm* Ability to define ensemble with /HIDDEN
+* V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -190,7 +191,7 @@
IF ( .NOT.sbrief ) CALL SHOW_DATA_SET_VARS
. (show_lun, iset, svars, status)
IF ( sfile ) CALL SHOW_DATA_FILES
- . (ttout_lun, iset)
+ . (show_lun, iset)
IF ( sattr ) CALL SHOW_DATA_SET_ATTRS
. (show_lun, iset)
ENDIF
diff --git a/fer/gnl/show_grid.F b/fer/gnl/show_grid.F
index 8f974c4..2017e2c 100644
--- a/fer/gnl/show_grid.F
+++ b/fer/gnl/show_grid.F
@@ -67,6 +67,7 @@
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* V6.8 acm 6/12 Implement mode_6d_lab, set by default. If canceled, the
* various SHOW commnands will not list info for E,F dimensions.
+* V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE and not /XML.
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -99,9 +100,9 @@
* list and describe the axes of the grid
risc_buff = ' '
WRITE ( risc_buff, 3000 )
- CALL SPLIT_LIST(pttmode_explct, ttout_lun, risc_buff, 0)
+ CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
DO 110 idim = 1, listdims
- CALL LINE_FACTS( ttout_lun, idim, grid, idim )
+ CALL LINE_FACTS( show_lun, idim, grid, idim )
110 CONTINUE
* list the data on any axis that has been especially requested
diff --git a/fer/ino/init_ez_dset.F b/fer/ino/init_ez_dset.F
index a66de8e..c3133c0 100644
--- a/fer/ino/init_ez_dset.F
+++ b/fer/ino/init_ez_dset.F
@@ -74,6 +74,8 @@
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
* *acm* 3/12 cleanup old VMS ifdef
* V687 2.14 *acm* fix ticket 2144: Make buffer for list of varnames longer
+* V692 7/14 *acm* fix ticket 2182: For ez datasets opened w/o a grid spec,
+* count the records and define an axis
include 'tmap_dims.parm'
# include "tmap_dset.parm"
@@ -99,10 +101,11 @@
LOGICAL have_type
INTEGER TM_LENSTR1, TM_DSET_NUMBER, GRID_FROM_NAME,
. tmap_status, loc, skip, grid, columns,
- . order(nferdimsp1), idim, s1, slen, ndigits
- CHARACTER TM_INQ_PATH*2048, var_list*2048,
+ . order(nferdimsp1), idim, s1, slen, ndigits, nread,
+ . ndims, nvars, ngatts, recdim
+ CHARACTER TM_INQ_PATH*2048, TM_FMT*12, var_list*2048,
. path_name*2048, ezform*80, title*128, grid_name*64,
- . type*2048, ctype*16, delim*24
+ . type*2048, ctype*16, delim*24, buff*20
REAL rval
* local parameter declarations
@@ -305,9 +308,31 @@
IF ( status .NE. ferr_ok ) RETURN
IF ( .NOT.VALID_GRID( grid ) ) GOTO 5500
ELSEIF ( .NOT.already_init ) THEN
-* ... insert the default defining grid
- have_mods = .TRUE.
- grid = mgrid_ez_dflt
+
+* ... insert the default defining grid for STREAM
+ if (ezform(:3) .EQ. 'STR') then
+ have_mods = .TRUE.
+ grid = mgrid_ez_dflt
+ ELSE
+
+* ... For ascii and unformatted sets, get the datset count and define a
+* basic x axis, not the ez abstract axis
+ CALL EZ_COUNT_DSET ( dset, ezform, nread, status )
+ IF ( status .NE. ferr_ok ) RETURN
+
+ IF (columns .GT. 1) THEN
+ CALL CD_GET_DS_INFO (dset, ndims, nvars, ngatts,
+ . recdim, status)
+ nread = nread*columns/nvars
+ ENDIF
+
+ buff = TM_FMT(FLOAT(nread), 10, 12, slen)
+ grid_name = 'X[GX=1:'//buff(:slen)//':1]'
+ grid = GRID_FROM_NAME( grid_name, cx_last, status )
+ IF ( status .NE. ferr_ok ) RETURN
+ IF ( .NOT.VALID_GRID( grid ) ) GOTO 5500
+ have_mods = .TRUE.
+ endif
ELSE
grid = int4_init
ENDIF
diff --git a/fer/ino/var_ss_lims.F b/fer/ino/var_ss_lims.F
index 03a158f..84a5ebc 100644
--- a/fer/ino/var_ss_lims.F
+++ b/fer/ino/var_ss_lims.F
@@ -101,12 +101,12 @@
ENDIF
* return subscript limits
- IF ( cat .EQ. cat_file_var ) THEN
- lo_ss = ds_grid_start(idim, var)
- hi_ss = ds_grid_end (idim, var)
- ELSE
+ IF ( cat .EQ. cat_pystat_var ) THEN
lo_ss = pyvar_grid_start(idim, var)
hi_ss = pyvar_grid_end (idim, var)
+ ELSE
+ lo_ss = ds_grid_start(idim, var)
+ hi_ss = ds_grid_end (idim, var)
ENDIF
RETURN
diff --git a/fer/mem/SOURCE_FILES b/fer/mem/SOURCE_FILES
index 2dafa4c..bcf45dd 100644
--- a/fer/mem/SOURCE_FILES
+++ b/fer/mem/SOURCE_FILES
@@ -49,6 +49,7 @@ purge_mr_grid.F\
purge_pystat_var.F\
purge_pystat_dset_vars.F\
purge_user_var.F\
+r_cgrid_size_delta.F\
re_assign_variable.F\
release_work_spc.F\
un_cache.F\
diff --git a/fer/mem/assign_mr_cx.F b/fer/mem/assign_mr_cx.F
index 3b846da..bb9f390 100644
--- a/fer/mem/assign_mr_cx.F
+++ b/fer/mem/assign_mr_cx.F
@@ -43,6 +43,7 @@
* V530: 6/01 *sh* save the delta value, too
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
* V685+ 10/13 *sh* added auxiliary regridding "aux" variables
+* V692 7/14 *acm* ticket 2183: handle @WGT transform as for integrals
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -89,6 +90,8 @@
* (e.g. DEFINE UAVE = U[K=1:3 at AVE])
IF ( (trans .EQ. trans_integ_indef) .OR.
+ . (trans .EQ. trans_avg_wgt) .OR.
+ . (trans .EQ. trans_4d_avg_wgt) .OR.
. ( (trans .GT. trans_compress_code) .AND.
. (trans .NE. trans_max) .AND.
. (trans .NE. trans_min) ) .OR.
diff --git a/fer/mem/create_mem_var.F b/fer/mem/create_mem_var.F
index cf2e7dc..54f930a 100644
--- a/fer/mem/create_mem_var.F
+++ b/fer/mem/create_mem_var.F
@@ -46,6 +46,7 @@
* V533 6/01 *sh* - use CGRID_SIZE_DELTA to allow mem vars with delta values
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -59,19 +60,27 @@
* internal variable declarations:
INTEGER CGRID_SIZE_DELTA,
- . grid_size, start_block, num_blocks
+ . grid_size, start_block, num_blocks, num_slen, grid_blocks
+ REAL R_CGRID_SIZE_DELTA, rgrid_size
+ CHARACTER LEFINT*12, num_str*12
* amount of storage space required
- grid_size = CGRID_SIZE_DELTA( cx )
+* Compute as a real - grid sizes may overflow integer storage.
+
+ rgrid_size = R_CGRID_SIZE_DELTA( cx ) ! as a real
+
* ... note: later we will want an array of word sizes indexed by type
#ifdef double_p
- IF (cx_type(cx) .EQ. ptype_string) grid_size = grid_size
+ IF (cx_type(cx) .EQ. ptype_string) rgrid_size = rgrid_size
#else
- IF (cx_type(cx) .EQ. ptype_string) grid_size = grid_size*2 ! 8 byte ptr
+ IF (cx_type(cx) .EQ. ptype_string) rgrid_size = rgrid_size*2 ! 8 byte ptr
#endif
+* COMPUTE # BLOCKS NEEDED
+ grid_blocks = INT( ( rgrid_size + mem_blk_size - 1 ) / mem_blk_size )
+
* claim the storage space
- CALL GET_MEMORY( grid_size, start_block, num_blocks, status )
+ CALL GET_MEMORY( INT(rgrid_size), grid_blocks, start_block, num_blocks, status )
IF ( status .NE. ferr_ok ) RETURN
* catalog it in the memory variable table
@@ -84,4 +93,14 @@
IF ( status .NE. ferr_ok ) RETURN
RETURN
+
+5100 CONTINUE
+ num_str = LEFINT(INT((rgrid_size+0.99999E6)/1.0E6),num_slen)
+ CALL ERRMSG( ferr_insuff_memory,status,
+ . num_str(:num_slen)//' Mwords were requested. ', *5130)
+5130 CALL WARN('You can use SET MEMORY/SIZE=xxx to increase memory.')
+ CALL WARN('The "Memory use" section of the FERRET '
+ . //'Users Guide has further tips.')
+
+ RETURN
END
diff --git a/fer/mem/create_temp_mem_var.F b/fer/mem/create_temp_mem_var.F
index 961c4ec..ee9753e 100644
--- a/fer/mem/create_temp_mem_var.F
+++ b/fer/mem/create_temp_mem_var.F
@@ -47,6 +47,7 @@
* V533 6/01 *sh* - use CGRID_SIZE_DELTA to allow mem vars with delta values
* V68 *acm* 1/12 ifdef double_p for double-precision ferret.
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -60,19 +61,27 @@
* internal variable declarations:
INTEGER CGRID_SIZE_DELTA,
- . grid_size, start_block, num_blocks
+ . grid_size, start_block, num_blocks, grid_blocks
+ REAL R_CGRID_SIZE_DELTA, rgrid_size
* amount of storage space required
- grid_size = CGRID_SIZE_DELTA( cx )
+* Compute as a real - grid sizes may overflow integer storage.
+
+ rgrid_size = R_CGRID_SIZE_DELTA( cx ) ! as a real
+
* ... note: later we will want an array of word sizes indexed by type
#ifdef double_p
- IF (cx_type(cx) .EQ. ptype_string) grid_size = grid_size
+ IF (cx_type(cx) .EQ. ptype_string) rgrid_size = rgrid_size
#else
- IF (cx_type(cx) .EQ. ptype_string) grid_size = grid_size*2 ! 8 byte ptr
+ IF (cx_type(cx) .EQ. ptype_string) rgrid_size = rgrid_size*2 ! 8 byte ptr
#endif
* claim the storage space
- CALL GET_MEMORY( grid_size, start_block, num_blocks, status )
+
+* COMPUTE # BLOCKS NEEDED
+ grid_blocks = ( INT(rgrid_size) + mem_blk_size - 1 ) / mem_blk_size
+
+ CALL GET_MEMORY( INT(rgrid_size), grid_blocks, start_block, num_blocks, status )
IF ( status .NE. ferr_ok ) RETURN
* catalog it in the memory variable table
diff --git a/fer/mem/find_mem_var.F b/fer/mem/find_mem_var.F
index b32081d..4e6aa35 100644
--- a/fer/mem/find_mem_var.F
+++ b/fer/mem/find_mem_var.F
@@ -74,6 +74,7 @@
* - check that the delta value matches
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
* V685 4/13-3/14 *sh* support for auxiliary variables used in regridding
+* V692 7/14 *acm* ticket 2183: handle @WGT transform as for integrals
* (V510) How on cache hits on external functions (EFs) work:
* uvar_given is used to encapsulate information about cache reuse for EF
@@ -276,7 +277,9 @@
IF ( has_trans ) THEN
DO 70 idim = 1, nferdims
IF ( normal(idim) ) GOTO 70
- IF ( cx_trans( idim, cx ) .EQ. trans_integ_indef ) THEN
+ IF ( cx_trans( idim, cx ) .EQ. trans_integ_indef .OR.
+ . cx_trans( idim, cx ) .EQ. trans_avg_wgt .OR.
+ . cx_trans( idim, cx ) .EQ. trans_4d_avg_wgt) THEN
IF ( mr_lo_ww(idim,mv).NE.cx_lo_ww(idim,cx) ) GOTO 100
IF ( mr_hi_ww(idim,mv).NE.cx_hi_ww(idim,cx) ) THEN
ww_hi_bound = TM_WORLD( cx_hi_ss(cx,idim),
diff --git a/fer/mem/get_memory.F b/fer/mem/get_memory.F
index a494313..ad7d223 100644
--- a/fer/mem/get_memory.F
+++ b/fer/mem/get_memory.F
@@ -1,4 +1,4 @@
- SUBROUTINE GET_MEMORY ( num_words, mblk, num_blocks, status )
+ SUBROUTINE GET_MEMORY ( num_words, grid_blocks, mblk, num_blocks, status )
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
@@ -33,7 +33,7 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* find and reserve a section of contiguous memory sufficient to hold num_words
+* find and reserve a section of contiguous memory sufficient to hold grid_blocks
* procedure:
* first check the list of free memory regions to see if there is one big enough
* if not then delete variables working from the tail of the priority chain
@@ -60,6 +60,7 @@
* of error statement
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
* V685 *acm* 6/13 Increase nominal length of abstract axis
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -68,18 +69,15 @@
include 'xvariables.cmn'
* calling argument declarations:
- INTEGER num_words, mblk, num_blocks, status
+ INTEGER num_words, grid_blocks, mblk, num_blocks, status
* internal variable declarations:
INTEGER mr, next, prev, size, new_mblk, num_slen
+ REAL rgrid_blocks
CHARACTER LEFINT*12, num_str*12
-* Number of words reasonable?
- if (num_words .lt. 0) goto 5200
-
-
-* COMPUTE # BLOCKS NEEDED
- num_blocks = ( num_words + mem_blk_size - 1 ) / mem_blk_size
+* Check for unspecified limits on abstract axis
+ IF ( num_words .EQ. 99999999 ) GOTO 5100
* LOOK FOR A MEMORY REGION ALREADY AVAILABLE
* ... use linked list into free memory regions
@@ -90,7 +88,7 @@
* ... another region to check out - is it big enough ?
size = mblk_size ( mblk )
- IF ( size .LT. num_blocks ) THEN
+ IF ( size .LT. grid_blocks ) THEN
mblk = mblk_flink( mblk )
GOTO 100
ELSE
@@ -100,10 +98,10 @@
* NOTHING BIG ENOUGH IS AVAILABLE AT PRESENT
* delete from tail of deletion priority chain looking for something big enough
200 mr = mr_del_blink(0)
- IF ( mr .EQ. 0 ) GOTO 5100
+ IF ( mr .EQ. 0 ) GOTO 5200
CALL DELETE_VARIABLE( mr )
size = mr_del_last_size
- IF ( size .LT. num_blocks ) THEN
+ IF ( size .LT. grid_blocks ) THEN
GOTO 200
ELSE
mblk = mr_del_last_mblk
@@ -113,22 +111,23 @@
500 prev = mblk_blink( mblk )
next = mblk_flink( mblk )
- IF ( size .EQ. num_blocks ) THEN
+ IF ( size .EQ. grid_blocks ) THEN
* ... perfect size - remove it from the free list
mblk_flink( prev ) = next
mblk_blink( next ) = prev
ELSE
* ... unnecessarily big - bite off only what we need
- new_mblk = mblk + num_blocks
+ new_mblk = mblk + grid_blocks
mblk_flink( new_mblk ) = next
mblk_blink( new_mblk ) = prev
- mblk_size ( new_mblk ) = size - num_blocks
+ mblk_size ( new_mblk ) = size - grid_blocks
mblk_flink( prev ) = new_mblk
mblk_blink( next ) = new_mblk
ENDIF
* success - set up the requested region and give it to them
+ num_blocks = grid_blocks
mblk_size ( mblk ) = num_blocks
status = ferr_ok
@@ -136,25 +135,22 @@
mblk_blink( mblk ) = unspecified_int4 ! temp diag
5000 RETURN
- 5100 CONTINUE
- IF ( num_words .EQ. 99999999 ) THEN
- num_str = LEFINT(num_words,num_slen)
- CALL ERRMSG( ferr_dim_underspec, status,
- . num_str(:num_slen)//' words were requested. ', *5125)
- 5125 CALL WARN('Check for unspecified limits on an ABSTRACT axis')
- CALL WARN('Use the SHOW GRID command to see the axes')
- ELSE
- num_str = LEFINT(INT((num_words+0.99999E6)/1.0E6),num_slen)
- CALL ERRMSG( ferr_insuff_memory,status,
+ 5100 num_str = LEFINT(num_words,num_slen)
+ CALL ERRMSG( ferr_dim_underspec, status,
+ . num_str(:num_slen)//' words were requested. ', *5105)
+ 5105 CALL WARN('Check for unspecified limits on an ABSTRACT axis')
+ CALL WARN('Use the SHOW GRID command to see the axes')
+ RETURN
+ 5200 CONTINUE
+ rgrid_blocks = FLOAT(mem_blk_size)* FLOAT(grid_blocks)/ 1.e6
+ num_str = LEFINT(INT(rgrid_blocks),num_slen)
+
+ CALL ERRMSG( ferr_insuff_memory,status,
. num_str(:num_slen)//' Mwords were requested. ', *5130)
- 5130 CALL WARN('You can use SET MEMORY/SIZE=xxx to increase memory.')
- CALL WARN('The "Memory use" section of the FERRET '
+ 5130 CALL WARN('You can use SET MEMORY/SIZE=xxx to increase memory.')
+ CALL WARN('The "Memory use" section of the FERRET '
. //'Users Guide has further tips.')
- ENDIF
GOTO 5000
- 5200 CONTINUE
- CALL ERRMSG( ferr_insuff_memory,status,
- . 'A negative number of words were requested. ', *5210)
- 5210 CALL WARN('The current grid is most likely too large')
RETURN
END
+
diff --git a/fer/mem/get_work_mr.F b/fer/mem/get_work_mr.F
index 112d60a..e085e4c 100644
--- a/fer/mem/get_work_mr.F
+++ b/fer/mem/get_work_mr.F
@@ -49,6 +49,7 @@
* 2/00 *sh* bug fix - initialize mr_grid
* V533 7/01 *sh* - set data type
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -61,11 +62,13 @@
INTEGER size, mr, status
* internal variable declarations
- INTEGER start_block, num_blocks, idim
+ INTEGER start_block, num_blocks, grid_blocks, idim
* --- end of introductory code ---
- CALL GET_MEMORY( size, start_block, num_blocks, status )
+* COMPUTE # BLOCKS NEEDED
+ grid_blocks = ( size + mem_blk_size - 1 ) / mem_blk_size
+ CALL GET_MEMORY( size, grid_blocks, start_block, num_blocks, status )
* get a free slot in the memory variable table
CALL STACK_PTR_UP( cx_stack_ptr, max_context, status )
diff --git a/fer/mem/get_work_spc.F b/fer/mem/get_work_spc.F
index 973a74e..7b0abe9 100644
--- a/fer/mem/get_work_spc.F
+++ b/fer/mem/get_work_spc.F
@@ -45,6 +45,7 @@
* revision 0.0 - 2/19/87
* V510: *sh 1/2000 - bug fix when unable to allocate requested work space
* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -56,6 +57,9 @@
* calling argument declarations:
INTEGER size, start_block, status
+* internal variable declarations:
+ INTEGER grid_blocks
+
* --- end of introductory code ---
IF ( size .LE. sp_last_size ) THEN
@@ -63,7 +67,9 @@
ELSE
CALL RELEASE_WORK_SPC
- CALL GET_MEMORY( size, sp_start_block, sp_num_blocks, status )
+* COMPUTE # BLOCKS NEEDED
+ grid_blocks = ( size + mem_blk_size - 1 ) / mem_blk_size
+ CALL GET_MEMORY( size, grid_blocks, sp_start_block, sp_num_blocks, status )
IF ( status .EQ. ferr_ok ) THEN
sp_last_size = sp_num_blocks * mem_blk_size
ELSE
diff --git a/fer/mem/get_work_spc.F b/fer/mem/r_cgrid_size_delta.F
similarity index 66%
copy from fer/mem/get_work_spc.F
copy to fer/mem/r_cgrid_size_delta.F
index 973a74e..ef4675b 100644
--- a/fer/mem/get_work_spc.F
+++ b/fer/mem/r_cgrid_size_delta.F
@@ -1,7 +1,5 @@
- SUBROUTINE GET_WORK_SPC ( size, start_block, status )
+ REAL FUNCTION R_CGRID_SIZE_DELTA ( cx )
-*
-*
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration''s (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -35,43 +33,39 @@
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
*
-* provide a region of temporary working space to the calling routine.
-* For greatest speed simply reuse the last provided if it is large enough
+* Real-number version of cgrid_size_delta.
+* determine the number of values in a 2D grid that lies within the plane
+* of the specified context
+* Unlike CGRID_SIZE this routine *IS* sensitive to cx_delta values
-* programmer - steve hankin
-* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
-* written for VAX computer under VMS operating system
-*
-* revision 0.0 - 2/19/87
-* V510: *sh 1/2000 - bug fix when unable to allocate requested work space
-* 2/12 *kms* Add E and F dimensions (use nferdims in tmap_dims.parm)
+* Ansley Manke 9/2014
IMPLICIT NONE
include 'tmap_dims.parm'
include 'ferret.parm'
- include 'errmsg.parm'
- include 'xvariables.cmn'
- include 'xwork_space.cmn'
+ include 'xcontext.cmn'
-* calling argument declarations:
- INTEGER size, start_block, status
+* calling argument declarations
+ INTEGER cx
-* --- end of introductory code ---
+* internal variable declarations
+ INTEGER idim
+ REAL size, delta
- IF ( size .LE. sp_last_size ) THEN
- status = ferr_ok
+* determine the delta product
+ size = 1
+ DO 10 idim = 1, nferdims
+ IF (cx_delta(idim,cx) .NE. unspecified_val8) THEN
+ delta = cx_delta(idim,cx)
+ ELSE
+ delta = 1.
+ ENDIF
+ size = size *
+ . (FLOAT(cx_hi_ss(cx,idim)-cx_lo_ss(cx,idim))/delta + 1.)
+ 10 CONTINUE
- ELSE
- CALL RELEASE_WORK_SPC
- CALL GET_MEMORY( size, sp_start_block, sp_num_blocks, status )
- IF ( status .EQ. ferr_ok ) THEN
- sp_last_size = sp_num_blocks * mem_blk_size
- ELSE
- sp_last_size = 0
- ENDIF
- ENDIF
+* the result
+ R_CGRID_SIZE_DELTA = size
- start_block = sp_start_block
RETURN
END
-
diff --git a/fer/ocn/calc_cvar.F b/fer/ocn/calc_cvar.F
index a6bfb1e..63b4fe8 100644
--- a/fer/ocn/calc_cvar.F
+++ b/fer/ocn/calc_cvar.F
@@ -50,6 +50,7 @@
* V312: 5/94 - array "memory" as a calling argument
* V320: 12/29/94 - use SPLIT_LIST to redirect tty output for GUI
* V685 *acm* 6/13 Increase nominal length of abstract axis
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
* calling arguments:
* inp cx - "context" of the desired result (variable,data set and region)
@@ -57,7 +58,6 @@
* component variables of the calculation
* out mres - memory variable number of requested result
-#ifdef unix
include 'tmap_dims.parm'
include 'ferret.parm'
include 'errmsg.parm'
@@ -67,16 +67,6 @@
include 'xcalc_vars.cmn'
include 'xprog_state.cmn'
include 'xcontext.cmn'
-#else
- INCLUDE 'FERRET_CMN:FERRET.PARM'
- INCLUDE 'FERRET_CMN:ERRMSG.PARM'
- INCLUDE 'FERRET_CMN:INSTANCE_TABLE.PARM'
- INCLUDE 'FERRET_CMN:GFDL.PARM'
- INCLUDE 'FERRET_CMN:XVARIABLES.CMN'
- INCLUDE 'FERRET_CMN:XCALC_VARS.CMN'
- INCLUDE 'FERRET_CMN:XPROG_STATE.CMN'
- INCLUDE 'FERRET_CMN:XCONTEXT.CMN'
-#endif
INTEGER max_components
PARAMETER ( max_components = 20 )
@@ -90,7 +80,7 @@
INTEGER CGRID_SIZE, MGRID_SIZE, CGRID_AXIS, MR_DIM_LEN,
. nmr, mxtra, cx_xtra, cx_lrg, grid_size, temp_grid_size,
. var, ncomp, icomp, iend, k, i, idim, mr, fp, grid,
- . temp_start_blk, temp_nblks, dlo, dhi,
+ . temp_start_blk, temp_nblks, dlo, dhi, grid_blocks,
. loest_ss, hiest_ss, res_ss_lo(4), res_ss_hi(4)
REAL dt
REAL*8 TM_WORLD
@@ -561,7 +551,10 @@
400 cx_variable( cx_xtra ) = pvcoe
CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
temp_grid_size = MGRID_SIZE( mrl(1) ) ! working space for "AIR"
- CALL GET_MEMORY( temp_grid_size,temp_start_blk,temp_nblks,status )
+
+* COMPUTE # BLOCKS NEEDED
+ grid_blocks = ( temp_grid_size + mem_blk_size - 1 ) / mem_blk_size
+ CALL GET_MEMORY( temp_grid_size, grid_blocks,temp_start_blk,temp_nblks,status )
IF ( status .NE. ferr_ok ) GOTO 5100
CALL EXPL_CORIOLIS(
. memory( 1, mr_blk1( mrl(1) ) ), mrl(1) , ! u
@@ -576,7 +569,8 @@
410 cx_variable( cx_xtra ) = pucoe
CALL RE_ASSIGN_VARIABLE( mxtra, cx_xtra )
temp_grid_size = MGRID_SIZE( mrl(1) ) ! working space for "AIR"
- CALL GET_MEMORY( temp_grid_size,temp_start_blk,temp_nblks,status )
+ grid_blocks = ( temp_grid_size + mem_blk_size - 1 ) / mem_blk_size
+ CALL GET_MEMORY( temp_grid_size, grid_blocks,temp_start_blk,temp_nblks,status )
IF ( status .NE. ferr_ok ) GOTO 5100
CALL EXPL_CORIOLIS(
. memory( 1, mr_blk1( mrl(1) ) ), mrl(1) , ! u
diff --git a/fer/plt/disp_data_set_up.F b/fer/plt/disp_data_set_up.F
index efeac27..13bd2ed 100644
--- a/fer/plt/disp_data_set_up.F
+++ b/fer/plt/disp_data_set_up.F
@@ -58,6 +58,7 @@
* V533: *sh* 6/01 - include CGRID_SIZE in determination of axis buffer sizes
* only if PLOT/VS
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -76,7 +77,7 @@
LOGICAL plot_vs
INTEGER MR_DIM_LEN, CX_DIM_LEN, CGRID_SIZE,
. idim, ndim, dim(nferdims), mr1, ax_len, cx, ivar,
- . factor, loc
+ . factor, loc, grid_blocks
CHARACTER buff*4
* check for PLOT/VS -- significant in axis buffer sizes
@@ -136,9 +137,13 @@
ENDIF
* allocate working storage
- CALL GET_MEMORY( ax_len, ax1_start, ax1_blks, status )
+
+* COMPUTE # BLOCKS NEEDED
+ grid_blocks = ( ax_len + mem_blk_size - 1 ) / mem_blk_size
+
+ CALL GET_MEMORY( ax_len, grid_blocks, ax1_start, ax1_blks, status )
IF ( status .NE. ferr_ok ) GOTO 5020
- CALL GET_MEMORY( ax_len, ax2_start, ax2_blks, status )
+ CALL GET_MEMORY( ax_len, grid_blocks, ax2_start, ax2_blks, status )
IF ( status .NE. ferr_ok ) GOTO 5010
* successful completion
diff --git a/fer/plt/disp_set_up.F b/fer/plt/disp_set_up.F
index 9c49c80..69020c4 100644
--- a/fer/plt/disp_set_up.F
+++ b/fer/plt/disp_set_up.F
@@ -156,6 +156,7 @@
* for coordinate data will be enough for the grid and if not
* return an error message.
* V686 *acm* 12/13 Symbokls AX_HORIZ and AX_VERT may be x,y,z,t,e,f
+* V691 *acm* 5/14 Clean up temp memory used for computing histogram levels
C replace includes with those from plot_set_up,
C plus those starting w/ xbox_bounds:
@@ -717,6 +718,9 @@ C ACM added 8/2001 save cal id if vertical time axis
CALL compute_histo_bins (memory(1,xblk1), memory(1,hblk1),
. bad_x, nsiz, status)
+
+* ... clean up temporary variable
+ CALL DELETE_VARIABLE( mvh_temp )
ENDIF
* For cases where regrid was set in AXIS_INTERVALS not because of a
diff --git a/fer/plt/plot_set_up.F b/fer/plt/plot_set_up.F
index 6a11a15..9220f5b 100644
--- a/fer/plt/plot_set_up.F
+++ b/fer/plt/plot_set_up.F
@@ -50,7 +50,7 @@
* written for VAX computer under VMS operating system
*
* revision 0.0 - 7/8/87 - based on DISP_SET_UP rev 1.1
-* revision 0.1 - 7/21/87 - added transpose option and AXIS_ENDS
+* revision 0.1 - 7/21/87 - added transpose option and
* revision 0.2 - 8/26/87 - added TAXIS ON for time axis plots
* revision 0.3 - 2/29/88 - allowed for non-geometric axes, time axis formats,
* non-inverted Z data,
@@ -150,6 +150,10 @@
* PyFr *kms* 7/13 Scale default lettering sizes by textscale
* V6.85 *acm* 9/13 New PLOT/COLOR w/o argument for all-color line plot
* V685+ *acm 12/13 In dependent axis setup, make sure variable the_taxis is set.
+* V691 *acm* 5/14 For ribbon line plots, set up for histogram levels
+* V691 *acm* 7/14 Fix ticket 2187: axis labels for PLOT/VS plots.
+* V693 *acm* 10/14 Fix 2122: Check for a valid axis if they've asked for a
+* log axis before proceeding with vlimits or hlimits
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -201,7 +205,7 @@
. slen2, slen3, tax, plot_mem_used, nload, i,
. pxlim, pylim, phlim, pvlim,pindeplim, pdeplim,
. dep_axtyp, indep_axtyp, the_taxis, ribbon_var,
- . junits, iaxis
+ . junits, iaxis, hblk1, mvh_temp
INTEGER TM_GET_CALENDAR_ID, cal_id_1, cal_id_2,
. cal_id_old, cal_id_new
@@ -345,11 +349,9 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
IF ( status .NE. ferr_ok ) GOTO 5000
var1 = 2 ! since first var is independent axis
ndv = nmv - 1 ! # of dependent variables
- IF ( use_keys .AND. (.NOT. nokey)) THEN
- plot_title = KEY_STRING( cx_list(1), key_doc, slen )
- ELSE
- plot_title = FULL_VAR_TITLE( cx_list(1), slen )
- ENDIF
+ use_keys = .FALSE.
+ plot_title = FULL_VAR_TITLE( cx_list(1), slen )
+
* ... label the independent axis as the first var given
IF ( .NOT.no_labels ) THEN
buff1 = VAR_UNITS(cx_x)
@@ -378,6 +380,18 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
IF (tax .EQ. 0) tax = grid_line(t_dim,cx_grid(cx_list(var1)) )
cal_name = line_cal_name(tax)
cal_id_1 = TM_GET_CALENDAR_ID ( cal_name )
+
+* Check for a valid axis if they've asked for a log axis before proceeding
+ IF (indep_is_log) THEN
+ CALL AXIS_ENDS(indep_ax,indep_dim,grid1,ind_min,ind_max,
+ . delta, indep_is_log, indep_axtyp, status)
+ IF ( status .NE. ferr_OK ) THEN
+ first = ind_min
+ last = ind_max
+ GOTO 5170
+ ENDIF
+ ENDIF
+
CALL EQUAL_RANGE(
. cmnd_buff(qual_start(pindeplim):qual_end(pindeplim)),
. indep_dim, ind_min, ind_max, delta,
@@ -595,6 +609,7 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
iunits = TM_UNIT_ID(buff1)
IF (iunits .EQ. 4) THEN
delta = unspecified_val8
+
CALL AXIS_ENDS(dep_ax,dep_dim,grid1,dep_min,dep_max,
. delta, dep_is_log, dep_axtyp, status)
@@ -639,9 +654,27 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
* Compute the mean and standard dev for ribbon-color variable,
* needed for computing color levels. Results stored in PPLUS common.
+* If histogram-based levels are requested, compute the
+* histogram bins.
IF (ribbon_plot .AND. ipl.EQ.ribbon_var) THEN
- CALL COMPUTE_MNSTD (dep_dat, mr_bad_data(mv), .TRUE., npts, status)
+
+ IF (need_histo) THEN
+* create temporary buffer to contain workspace
+ CALL CREATE_TEMP_MEM_VAR( cx, mvh_temp, status )
+ IF ( status .NE. ferr_ok ) RETURN
+ hblk1 = mr_blk1( mvh_temp )
+ plot_mem_used = plot_mem_used + npts
+
+ CALL compute_histo_bins (dep_dat, memory(1,hblk1),
+ . mr_bad_data(mv), npts, status)
+
+* ... clean up temporary variable
+ CALL DELETE_VARIABLE( mvh_temp )
+ ELSE
+ CALL COMPUTE_MNSTD (dep_dat, mr_bad_data(mv), need_std, npts, status)
+ ENDIF
+
ENDIF
* ... check that there is a range of dependent data for PLOT+ auto-scaling
@@ -746,6 +779,18 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
CALL WARN( 'Use /HLIMITS and /VLIMITS instead.')
denig_xylim_msg_done = .TRUE.
ENDIF
+
+* Check for valid log axis before proceeding
+ IF (indep_is_log) THEN
+ CALL AXIS_ENDS ( indep_ax, indep_dim, grid1,
+ . ind_min, ind_max, delta,
+ . indep_is_log, indep_axtyp, status )
+ IF ( status .NE. ferr_OK ) THEN
+ first = ind_min
+ last = ind_max
+ GOTO 5170
+ ENDIF
+ ENDIF
CALL EQUAL_RANGE(
. cmnd_buff(qual_start(pindeplim):qual_end(pindeplim)),
. indep_dim, ind_min, ind_max, delta,
@@ -781,7 +826,6 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
. SECS_TO_TSTEP( grid1, the_taxis, ind_min ),
. SECS_TO_TSTEP( grid1, the_taxis, ind_max ) )
ELSE
-
CALL AXIS_ENDS ( indep_ax, indep_dim, grid1,
. ind_min, ind_max, delta,
. indep_is_log, indep_axtyp, status )
@@ -799,6 +843,7 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
ENDIF
* ... dependent axis scaling
* force axis scaling if the data has no range
+
IF (the_taxis .EQ. 0) the_taxis = dep_dim
IF ( pdeplim .GT. 0 ) THEN
@@ -807,6 +852,17 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
CALL WARN( 'Use /HLIMITS and /VLIMITS instead.')
denig_xylim_msg_done = .TRUE.
ENDIF
+* Check for valid log axis before proceeding
+ IF (dep_is_log) THEN
+ CALL AXIS_ENDS( dep_ax, the_taxis, grid, dep_min, dep_max,
+ . delta, dep_is_log, dep_axtyp, status )
+ IF ( status .NE. ferr_OK ) THEN
+ first = dep_min
+ last = dep_max
+ GOTO 5170
+ ENDIF
+ ENDIF
+
CALL EQUAL_RANGE(
. cmnd_buff(qual_start(pdeplim):qual_end(pdeplim)),
. dep_dim, dep_min, dep_max, delta,
@@ -823,6 +879,7 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
ELSEIF ( all_1_dep ) THEN
IF (only_val .EQ. bad_val4) val1 = 0.0 ! 10/99
+
CALL AXIS_ENDS( dep_ax, the_taxis, grid,val1-1.D0,val1+1.D0,1.D0,
. dep_is_log, dep_axtyp, status )
IF ( status .NE. ferr_OK ) THEN
@@ -834,6 +891,7 @@ c IF ( plot_mem_used .GT. 0.999*pplmem_nsize ) GOTO 5150 ! test is now i
CALL MINMAX( dep_dat, npts, mr_bad_data(mv), lo, hi )
dep_min = DBLE( lo )
dep_max = DBLE( hi )
+
CALL AXIS_ENDS( dep_ax, the_taxis, grid, dep_min, dep_max,
. delta, dep_is_log, dep_axtyp, status )
IF ( status .NE. ferr_OK ) THEN
diff --git a/fer/plt/polygon_set_up.F b/fer/plt/polygon_set_up.F
index 73d5ccb..5a37449 100644
--- a/fer/plt/polygon_set_up.F
+++ b/fer/plt/polygon_set_up.F
@@ -131,6 +131,7 @@
* V6.85 *acm* 9/13 Change to CALL LINE_STYLE, implementing new PLOT/COLOR w/o
* argument for all-color line plot
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* V691 *acm* 5/14 Clean up temp memory used for computing histogram levels
include 'tmap_dims.parm'
include 'xtm_grid.cmn_text'
@@ -774,6 +775,9 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
CALL compute_histo_bins (x_dat, memory(1,hblk1),
. mr_bad_data(mr_color), ncolor, status)
+
+* ... clean up temporary variable
+ CALL DELETE_VARIABLE( mvh_temp )
ENDIF
* ... check for adequate PLOT+ memory to store the npts for each poly.
@@ -958,6 +962,18 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
IF (tax.EQ.mnormal) tax = grid_line(t_dim,cx_grid(cx_x ))
cal_name = line_cal_name(tax)
cal_id = TM_GET_CALENDAR_ID ( cal_name )
+
+* Check for valid log axis before proceeding if log and limits are given
+ IF (is_logx) THEN
+ CALL AXIS_ENDS(x_ax, coord_dim, cx_grid(cx_x), vmin,
+ . vmax, delta, x_is_log, x_axtyp, status )
+ IF ( status .NE. ferr_ok ) THEN
+ first = vmin
+ last = vmax
+ GOTO 5400
+ ENDIF
+ ENDIF
+
CALL EQUAL_RANGE(
. cmnd_buff(qual_start(pxdenig):qual_end(pxdenig)),
. x_dim, vmin, vmax, delta,
@@ -1022,6 +1038,18 @@ c IF ( npoly .GE. NPOLYGON ) GOTO 5160
IF (tax.EQ.mnormal) tax = grid_line(t_dim,cx_grid(cx_x ))
cal_name = line_cal_name(tax)
cal_id = TM_GET_CALENDAR_ID ( cal_name )
+
+* Check for valid log axis before proceeding if log and limits are given
+ IF (y_is_log) THEN
+ CALL AXIS_ENDS(y_ax,coord_dim,cx_grid(cx_y),
+ . vmin,vmax,delta, y_is_log, y_axtyp, status )
+ IF ( status .NE. ferr_ok ) THEN
+ first = vmin
+ last = vmax
+ GOTO 5400
+ ENDIF
+ ENDIF
+
CALL EQUAL_RANGE(
. cmnd_buff(qual_start(pydenig):qual_end(pydenig)),
. y_dim, vmin, vmax, delta,
diff --git a/fer/stk/get_dependencies.F b/fer/stk/get_dependencies.F
index ee16de6..a111cfe 100644
--- a/fer/stk/get_dependencies.F
+++ b/fer/stk/get_dependencies.F
@@ -42,6 +42,8 @@
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
*
* V685+ 9/13 *sh*
+* V692 10/14 *acm* Ticket 2204: initialize the new context before
+* putting info init
include 'tmap_errors.parm'
include 'tmap_dims.parm'
@@ -67,6 +69,8 @@
CALL STACK_PTR_UP( cx_stack_ptr, max_context, status )
IF ( status .NE. ferr_ok ) GOTO 5000
cx = cx_stack_ptr
+* Make the new context empty
+ CALL INIT_EMPTY_CONTEXT ( cx )
cx_data_set(cx) = dset
cx_variable(cx) = uvar
cx_category(cx) = cat_user_var
@@ -95,6 +99,7 @@
* a uvar has just been reported. Are we done ?
300 IF ( isp .EQ. isp_orig ) THEN
* ... yes - clean up and go home
+ IF (status .NE. ferr_ok) GOTO 5000
IF ( cx_stack_ptr .NE. cx_orig ) WRITE (6,*) 'cx_stk_lev_crptn'
RETURN
ELSE
diff --git a/fer/stk/interp_stack.F b/fer/stk/interp_stack.F
index 963406e..7c93dc0 100644
--- a/fer/stk/interp_stack.F
+++ b/fer/stk/interp_stack.F
@@ -135,7 +135,7 @@
. DO_NEAREST_DIST_ABOVE, DO_NEAREST_DIST_BELOW,
. DO_NEAREST_INDEX_ABOVE,DO_NEAREST_INDEX_BELOW,
. DO_EVENT, DO_SMTH_MEDIAN, DO_SMTH_MIN, DO_SMTH_MAX,
- . DO_STDDEV
+ . DO_STDDEV, DO_AVG_WGT, DO_4D_AVE_WGT
* calling arguments:
* in isp_base - stack level at which to begin calculations
@@ -566,8 +566,12 @@ c GOTO 5000
CALL IS_TRANS( memory, DO_INTERPOLATE, *2500, status )
ELSEIF ( act .EQ. isact_average ) THEN
CALL IS_TRANS( memory, DO_AVERAGE, *2500, status )
+ ELSEIF ( act .EQ. isact_avg_wgt ) THEN
+ CALL IS_TRANS( memory, DO_AVG_WGT, *2500, status )
ELSEIF ( act .EQ. isact_4d_ave ) THEN ! 7/96
CALL IS_TRANS( memory, DO_4D_AVE, *2500, status )
+ ELSEIF ( act .EQ. isact_avg_4d_wgt ) THEN
+ CALL IS_TRANS( memory, DO_4D_AVE_WGT, *2500, status )
ELSEIF ( act .EQ. isact_integ_def ) THEN ! 7/96
CALL IS_TRANS( memory, DO_INTEG_DEF, *2500, status )
ELSEIF ( act .EQ. isact_4d_int_def ) THEN
diff --git a/fer/stk/is_aggregate_gather.F b/fer/stk/is_aggregate_gather.F
index 42c44bd..e3bae72 100644
--- a/fer/stk/is_aggregate_gather.F
+++ b/fer/stk/is_aggregate_gather.F
@@ -42,6 +42,7 @@
* NOAA/PMEL, Seattle, WA - Thermal Modeling and Analysis Program
*
* V680 5/12 *acm* 6D Ferret, changes for DEFINE DATA/AGGREGATE
+* V69+ 5/14 *acm* Fixes for ticket 2177: datasets with _FillValue, no missing_value
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -68,8 +69,8 @@
INTEGER NCF_GET_ATTR_FROM_ID,
. com_mr, res_mr, com_cx, res_cx, dflt_cx, com_isp, res_isp,
. frag, idim, top, imemb, memb_dset, len, igrid, iline,
- . varid, attlen, maxlen, fer_uvar, nv
- REAL vbad
+ . varid, attlen, maxlen, fer_uvar, nv, is_phas_keep
+ REAL vbad, cx_bad_pre
CHARACTER*128 VAR_CODE, vname
CHARACTER*10 buff
@@ -85,6 +86,7 @@
dflt_cx = is_big_cx( res_isp )
idim = is_axis( res_isp )
frag = is_sum ( res_isp )
+ cx_bad_pre = cx_bad_data(com_cx)
* diagnostic mode output: " doing aggregate gather VAR_NAME[x=lo:hi at TRN:n,D=#]"
* Put in the M index value just for this output
@@ -117,6 +119,7 @@
ENDIF
* copy data just received into the result
+ is_phas_keep = is_phase(isp)
CALL COPY_AGG_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx,
. memory(1,mr_blk1(res_mr)), res_mr, is_phase(isp) )
@@ -165,7 +168,13 @@
got_it = NC_GET_ATTRIB( memb_dset, varid, 'missing_value',
. .FALSE., vname, maxlen, attlen,
. attoutflag, buff, vbad )
- IF (.NOT.got_it) vbad = bad_val4
+ IF (.NOT.got_it) THEN
+
+ got_it = NC_GET_ATTRIB( memb_dset, varid, '_FillValue',
+ . .FALSE., vname, maxlen, attlen,
+ . attoutflag, buff, vbad )
+ IF (.NOT.got_it) vbad = bad_val4
+ ENDIF
cx_grid( com_cx ) = igrid
cx_data_set(com_cx) = memb_dset
@@ -181,6 +190,18 @@
CALL FLESH_OUT_AXIS( idim, com_cx, status )
IF ( status .NE. ferr_ok ) GOTO 5000
+
+* updated value for bad? If so update the data in the result
+* taking that bad-value into account
+
+ IF (vbad .NE. cx_bad_pre) THEN
+ cx_bad_data(res_cx) = cx_bad_data(dflt_cx)
+ CALL COPY_AGG_INTO( memory(1,mr_blk1(com_mr)), com_mr, com_cx,
+ . memory(1,mr_blk1(res_mr)), res_mr, is_phas_keep )
+
+ ENDIF
+
+
ENDIF ! or end this above flesh_out??
is_uvar(com_isp) = cx_variable(com_cx)
diff --git a/fer/stk/is_counter_var.F b/fer/stk/is_counter_var.F
index 749194a..0a5dd9b 100644
--- a/fer/stk/is_counter_var.F
+++ b/fer/stk/is_counter_var.F
@@ -41,6 +41,7 @@
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
* *acm* 4/12 6D Ferret: time axis may be in t or f direction.
* V683 *acm*10/12 Improve handling of F axes and info about the calendar of the grid.
+* V69+ *acm*10/14 Bug 2200: assign mr subscripts correctly
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -84,8 +85,8 @@
cx_hi_ss ( cx, idim ) = unspecified_int4
cx_by_ss ( idim, cx ) = .TRUE.
- mr_lo_ss ( cx, idim ) = unspecified_int4
- mr_hi_ss ( cx, idim ) = unspecified_int4
+ mr_lo_ss ( mr, idim ) = unspecified_int4
+ mr_hi_ss ( mr, idim ) = unspecified_int4
cx_trans ( idim, cx ) = trans_no_transform
cx_trans_arg( idim, cx ) = bad_val4
diff --git a/fer/stk/is_dependencies.F b/fer/stk/is_dependencies.F
index 6ae060b..f570f48 100644
--- a/fer/stk/is_dependencies.F
+++ b/fer/stk/is_dependencies.F
@@ -45,6 +45,7 @@
* NOAA/PMEL, Seattle, WA - Tropical Modeling and Analysis Program
*
* V690 9/13 *sh* -- with provisions for aux variables tested and refined
+* V693 10/14*acm* -- Fix tickets 2201, 2215
* calling argument declarations:
INTEGER status
@@ -240,6 +241,17 @@
. hi_cx,
. var_status )
+* Ticket 2201:
+* get_var_context increments line_use_cnt, and defines a grid. Store
+* the uvar_grid so that the axes may be canceled later.
+* Ticket 2115: If it's a grid as defined in get_context where we've
+* encoded the start/end limits of the uvar name into the grid (see
+* get_context_mods) do not store that grid number.
+
+ IF (cx_category(hi_cx) .EQ. cat_user_var) THEN
+ IF (cx_grid(hi_cx) .GE. unspecified_int4) uvar_grid(uvar,dset) = cx_grid(hi_cx)
+ ENDIF
+
* have we returned here after reporting auxvar dependencies?
* if so we have already reported this variable
IF (delayed_by_auxvars) THEN
diff --git a/fer/stk/is_do_gc_fcn.F b/fer/stk/is_do_gc_fcn.F
index 6664b40..6149c4a 100644
--- a/fer/stk/is_do_gc_fcn.F
+++ b/fer/stk/is_do_gc_fcn.F
@@ -87,8 +87,8 @@
. typ1, typ2, typ3, typ4, typ5, typ6, typ7, typ8, typ9,
. typr, pdim1, pdim2, pdim3, pdim4, pdim5, pdim6, pdim7,
. pdim8, pdim9, pdimr, frame_bottom, com_cx, res_mr,
- . itype
- CHARACTER*40 alt_name
+ . itype, arg_first_mismatch, slen
+ CHARACTER*40 TM_FMT, alt_name
* convenience equivalences
INTEGER com(10), typ(9), pdim(9)
@@ -147,6 +147,7 @@
* trap attempts to pass arguments of the wrong type (1/99)
+ arg_first_mismatch = 0
check_alt_fcn = .FALSE.
DO 100 icom = 1, num_com
iarg = GCF_ARG_EVAL_ORDER(ifcn, icom)
@@ -161,6 +162,8 @@
IF (itype .NE. parg_type_float_or_string)
. check_alt_fcn = .TRUE.
ENDIF
+ IF (check_alt_fcn .AND. arg_first_mismatch.EQ.0)
+ . arg_first_mismatch = iarg
100 CONTINUE
* Does the function designate an alternate function for strings?
@@ -341,7 +344,9 @@
5200 CONTINUE
* Could not match argument types
risc_buff = alg_text
+ alt_name = TM_FMT(FLOAT(arg_first_mismatch), 2, 40, slen)
CALL ERRMSG( ferr_invalid_command, status,
- . 'string/numeric data type mix-up: '//risc_buff, *5000 )
+ . 'string/numeric data type mix-up. Argument '//
+ . alt_name(:slen)//' : '//risc_buff, *5000 )
END
diff --git a/fer/stk/is_trans.F b/fer/stk/is_trans.F
index 73c4e74..3426fd7 100644
--- a/fer/stk/is_trans.F
+++ b/fer/stk/is_trans.F
@@ -75,8 +75,11 @@
* message if a 4-D transform was requested but the dimensions
* are not available in the grid.
* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
+* V691+ *acm* 8/14 Fix ticket 2196. Fill transformations component index range should
+* be limited to the range of the axis.
include 'tmap_dims.parm'
+ include 'xtm_grid.cmn_text'
include 'ferret.parm'
include 'errmsg.parm'
include 'interp_stack.parm'
@@ -100,7 +103,7 @@
. slen, cx_valid,
. res_isp, com_isp, res_cx, com_cx, com_mr, res_mr, idim,
. trans, grid, lo_off, hi_off, ss_lo, ss_hi, wksiz, wkblk,
- . mrlist(2), axes(nferdims), idim1, i, ndim
+ . mrlist(2), axes(nferdims), idim1, i, ndim, axis
REAL arg
REAL*8 TM_WORLD, ww, ww_lo, ww_hi
CHARACTER VAR_TRANS*150, buff*150
@@ -312,6 +315,16 @@
. cx_lo_ss(com_cx,idim) = cx_lo_ss(res_cx,idim) + lo_off
IF ( cx_hi_ss(res_cx,idim) .LT. cx_hi_ss(cx_valid,idim) )
. cx_hi_ss(com_cx,idim) = cx_hi_ss(res_cx,idim) + hi_off
+
+* The above can send the index range outside the line dimensions. Ticket 2196.
+* If its modulo that's ok otherwise limit to the index rangen for the axis
+
+ axis = grid_line( idim, cx_grid(com_cx) )
+ IF (.NOT. line_modulo(axis)) THEN
+ cx_lo_ss(com_cx,idim) = MAX(1, cx_lo_ss(com_cx,idim))
+ cx_hi_ss(com_cx,idim) = MIN(line_dim(axis), cx_hi_ss(com_cx,idim))
+ ENDIF
+
cx_by_ss(idim,res_cx) = .TRUE.
CALL FLESH_OUT_AXIS( idim, com_cx, status )
IF ( status .NE. ferr_ok ) GOTO 5000
diff --git a/fer/stk/offset_ss.F b/fer/stk/offset_ss.F
index f9c72ed..4946d49 100644
--- a/fer/stk/offset_ss.F
+++ b/fer/stk/offset_ss.F
@@ -53,6 +53,7 @@
* V581: 3/05 *acm* Fix bug 1207: CDB, CIB, CDA, CIA are one-sided: return
* offset only in one direction.
* *acm* 3/12 6D Ferret (common uses nferdims in tmap_dims.parm)
+* V692 7/14 *acm* ticket 2183: handle @WGT transform as for integrals
* calling argument declarations:
INTEGER idim, cx, lo_off, hi_off, status
@@ -165,7 +166,15 @@
.
. offset_lo ( trans_event_mask ) / 0 /,
. offset_hi ( trans_event_mask ) / 0 /,
- . offset_supplied ( trans_event_mask ) / .FALSE. /
+ . offset_supplied ( trans_event_mask ) / .FALSE. /,
+ .
+ . offset_lo ( trans_avg_wgt ) / 0 /,
+ . offset_hi ( trans_avg_wgt ) / 0 /,
+ . offset_supplied ( trans_avg_wgt ) / .FALSE. /,
+ .
+ . offset_lo ( trans_4d_avg_wgt ) / 0 /,
+ . offset_hi ( trans_4d_avg_wgt ) / 0 /,
+ . offset_supplied ( trans_4d_avg_wgt ) / .FALSE. /
* --- end of introductory code ---
* initiailize
diff --git a/fer/utl/get_dependency_status.F b/fer/utl/get_dependency_status.F
index b9cd973..dd9154f 100644
--- a/fer/utl/get_dependency_status.F
+++ b/fer/utl/get_dependency_status.F
@@ -1,4 +1,5 @@
- SUBROUTINE GET_DEPENDENCY_STATUS ( memory, expr, status_string, slen, status )
+ SUBROUTINE GET_DEPENDENCY_STATUS
+ . ( memory, expr, status_string, slen, status )
*
*
@@ -42,6 +43,7 @@
* written for VAX computer under VMS operating system
* V685+ *sh* 11/13
+* V690 *sg* 5/14 - bug fix: changed declaraation type of "memory"
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -51,7 +53,7 @@
* calling argument declarations:
INTEGER status, slen
- INTEGER memory(mem_blk_size, max_mem_blks )
+ REAL memory(mem_blk_size, max_mem_blks )
CHARACTER*(*) expr, status_string
* internal variable declarations:
diff --git a/fer/utl/get_string_element.F b/fer/utl/get_string_element.F
index 45c9dcc..c28bc94 100644
--- a/fer/utl/get_string_element.F
+++ b/fer/utl/get_string_element.F
@@ -49,6 +49,7 @@
* V553: 9/03 *kob* - increase locbuff to 512 from 100 - it was cutting strings
* short* *acm* 3/12 Add E and F dimensions (use nferdims in tmap_dims.parm)
* 3/12 *kms* int_buff and size_ibuff declared locally
+* V691+:8/14 *acm* - increase locbuff to 2048 - it was cutting strings
IMPLICIT NONE
include 'tmap_dims.parm'
@@ -62,7 +63,7 @@
* internal variable declarations
INTEGER GET_C_STRING_LEN, flen
- CHARACTER*512 locbuff
+ CHARACTER*2048 locbuff
INTEGER size_ibuff
PARAMETER ( size_ibuff = 2048 )
INTEGER*2 int_buff(size_ibuff/2)
diff --git a/fer/utl/parse_number_list.F b/fer/utl/parse_number_list.F
index 1401af5..4ecefcc 100644
--- a/fer/utl/parse_number_list.F
+++ b/fer/utl/parse_number_list.F
@@ -41,6 +41,8 @@
* V500: *sh* 12/98
* 2/99 - bug fix - 2 commas together
* *acm* 3/12 cleanup ifdefs and unnecessary include files. Add disclaimer.
+* V69+ *acm* 5/14 ticket 2174: check that the expression is just a constant
+* before reading from the buffer into the array.
* calling argument declarations
INTEGER nmax, n, status
@@ -48,7 +50,8 @@
CHARACTER*(*) string
* internal variable declarations
- INTEGER comma_pos, last_comma_pos, slen
+ LOGICAL TM_NUMBER
+ INTEGER TM_LENSTR1, comma_pos, last_comma_pos, slen
CHARACTER buff*64
include 'ferret.parm'
@@ -82,7 +85,11 @@
IF ( buff .EQ. ' ' ) THEN
array(n) = bad_val4
ELSE
- READ ( buff, *, ERR=5000 ) array(n)
+ IF (TM_NUMBER (buff)) THEN
+ READ ( buff, *, ERR=5000 ) array(n)
+ ELSE
+ GOTO 5200
+ ENDIF
ENDIF
ENDIF
GOTO 1000
@@ -94,7 +101,11 @@
IF ( buff .EQ. ' ' ) THEN
array(n) = bad_val4
ELSE
- READ ( buff, *, ERR=5000 ) array(n)
+ IF (TM_NUMBER (buff)) THEN
+ READ ( buff, *, ERR=5000 ) array(n)
+ ELSE
+ GOTO 5200
+ ENDIF
ENDIF
ENDIF
last_comma_pos = last_comma_pos + comma_pos
@@ -114,4 +125,8 @@
5000 CALL ERRMSG( ferr_syntax, status, string(last_comma_pos+1:),
. *4999 )
5100 CALL ERRMSG( ferr_internal, status, string, *4999 )
+ 5200 CALL ERRMSG( ferr_syntax, status,
+ . 'must be a constant '//
+ . buff(:TM_LENSTR1(buff)), *4999 )
+
END
diff --git a/fer/utl/report_aux_dependency.F b/fer/utl/report_aux_dependency.F
index 1de4688..0fc103a 100644
--- a/fer/utl/report_aux_dependency.F
+++ b/fer/utl/report_aux_dependency.F
@@ -73,7 +73,8 @@
INTEGER work(dependency_max_recs, dependency_nfields)
* internal variable declarations
- INTEGER tree_level, its_aux
+ INTEGER tree_level
+ LOGICAL its_aux
PARAMETER (its_aux = .TRUE.)
diff --git a/fer/xeq/xeq_cancel.F b/fer/xeq/xeq_cancel.F
index d360752..74607b8 100644
--- a/fer/xeq/xeq_cancel.F
+++ b/fer/xeq/xeq_cancel.F
@@ -1223,7 +1223,7 @@ c ENDIF
5830 CALL ERRMSG( ferr_erreq, status, 'Cannot close file', *5000 )
5920 slen = TM_LENSTR(buff)
CALL ERRMSG( ferr_invalid_command, status,
- . 'variable, axis, or attribute does not exist'//
+ . 'variable, axis, or attribute does not exist: '//
. buff(:slen), *5000 )
6210 CALL ERRMSG( ferr_invalid_command, status, 'unknown axis: '//
. cmnd_buff(item_start(item):item_end(item)), *5000 )
diff --git a/fer/xeq/xeq_contour.F b/fer/xeq/xeq_contour.F
index 4d928d5..8694af8 100644
--- a/fer/xeq/xeq_contour.F
+++ b/fer/xeq/xeq_contour.F
@@ -120,6 +120,7 @@
* PyFr *kms* 7/13 Scale default lettering sizes by textscale;
* use scaled label heights and spacings instead of
* hard-coded values.
+* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -142,10 +143,12 @@
REAL memory( mem_blk_size, max_mem_blks )
* internal variable declarations:
- LOGICAL no_range, overlay, transpz, no_labels, fill, usa_line,
+ LOGICAL TM_HAS_STRING,
+ . no_range, overlay, transpz, no_labels, fill, usa_line,
. do_key, spectrum, set_up, noaxes, axes, pattern,
- . no_data, is_logh, is_logv, inc_grid
- INTEGER TM_LENSTR1, status, slen, sp, ipen, icolor,
+ . no_data, is_logh, is_logv, inc_grid,
+ . changed_key
+ INTEGER TM_LENSTR, TM_LENSTR1, status, slen, sp, ipen, icolor,
. ax1_blks, ax1_start, loc, sigdig,
. ax2_blks, ax2_start, patt, i, nparm, num_it,
. s1, s2, it_start(4), it_end(4), iax(4), density,
@@ -158,7 +161,7 @@
. fname*128, buff*25, sfile*2048
* internal parameter declarations:
- LOGICAL norm_dims_only, not_vector, continuous_key,
+ LOGICAL norm_dims_only, not_vector,
. is_shade, use_cell
PARAMETER ( norm_dims_only = .FALSE.,
. not_vector = .FALSE. )
@@ -386,16 +389,32 @@ c nlev = 1
IF ( do_key ) THEN
CALL PPLCMD ( from, line, 0, 'SHAKEY 1,1', 1, 1 )
-* ... /KEY=continouus ?
- loc = qual_given( slash_cont_key )
+* ... /KEY[=continuous,horizontal,centerlabel ?
+
+ loc = qual_given( slash_shad_key )
+
IF ( loc .GT. 0) THEN
- CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+ CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
. buff, status )
IF ( status .NE. ferr_ok ) GOTO 5000
- IF ( buff(1:3) .EQ. 'CON' ) THEN
- continuous_key = .TRUE.
+
+ IF (TM_LENSTR(buff) .GT. 0) THEN
+ changed_key = .FALSE.
+ IF ( TM_HAS_STRING(buff, 'CON') ) THEN
+ changed_key = .TRUE.
CALL PPLCMD (from, line, 0, 'S_KEY 1', 1, 1 )
ENDIF
+ IF ( TM_HAS_STRING(buff, 'CEN') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 2', 1, 1 )
+ ENDIF
+ IF ( TM_HAS_STRING(buff, 'HOR') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 3', 1, 1 )
+ ENDIF
+ IF (.NOT. changed_key) GOTO 5460
+ ENDIF
+
ENDIF
ELSE
@@ -578,8 +597,8 @@ c done in disp_set_up. If mode_nodata_lab is false then leave this off.
c IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
-* restore default (non-continuous) key style?
- IF (continuous_key ) CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
+* restore default key style?
+ IF (changed_key ) CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
* interrupt occurred during plot ?
IF ( ppl_interrupted ) GOTO 1000
@@ -613,6 +632,9 @@ c IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
5450 CALL ERRMSG( ferr_out_of_range, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. 'AXES arguments must be 0 or 1', *1000 )
+ 5460 CALL ERRMSG( ferr_syntax, status,
+ . cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
+ . 'Unrecognized argument to KEY command', *1000 )
5500 CALL ERRMSG( ferr_out_of_range, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. 'Value from 0 to 100 must be given', *1000 )
diff --git a/fer/xeq/xeq_plot.F b/fer/xeq/xeq_plot.F
index 1a09f9c..2483d95 100644
--- a/fer/xeq/xeq_plot.F
+++ b/fer/xeq/xeq_plot.F
@@ -105,6 +105,8 @@
* V6.85 *acm* 9/13 New qualifier PLOT/%%%%%%% for first color in multi-line plot
* http://www.pmel.noaa.gov/maillists/tmap/ferret_users/fu_2013/msg00536.html
+* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+
include 'tmap_dims.parm'
include 'ferret.parm'
include 'errmsg.parm'
@@ -126,16 +128,19 @@
include 'LINES.INC'
include 'gkscm1_inc.decl'
include 'GKSCM1.INC' ! wsid
+ include 'cont_inc.decl' ! with iautoc and nlev
+ include 'CONT.INC'
* calling argument declarations:
REAL memory( mem_blk_size, max_mem_blks )
* internal variable declarations:
- LOGICAL overlay, transpz, versus,
+ LOGICAL TM_HAS_STRING,
+ . overlay, transpz, versus,
. no_labels, set_up, noaxes, axes, use_line,
. is_logh, is_logv, nokey, no_data, no_range,
- . continuous_key, do_key, spectrum
- INTEGER TM_LENSTR1, STR_UPCASE, STR_SAME,
+ . changed_key, do_key, spectrum
+ INTEGER TM_LENSTR1, TM_LENSTR, STR_UPCASE, STR_SAME,
. symbol, icolor, ipen, icolor1, ipen1, status,
. loc, limit, slen, thick, step_inc,
. ax1_blks, ax1_start,
@@ -444,17 +449,31 @@ c IF (.NOT.versus) GOTO 5470
IF ( do_key ) THEN
CALL PPLCMD ( from, line, 0, 'SHAKEY 1,1', 1, 1 )
-* ... /KEY[=continouus] ?
+
+* ... /KEY[=continuous,horizontal,centerlabel ?
+
loc = qual_given( slash_plot_key )
IF ( loc .GT. 0) THEN
- CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+ CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
. buff, status )
IF ( status .NE. ferr_ok ) GOTO 5000
- IF ( buff(1:3) .EQ. 'CON' ) THEN
- continuous_key = .TRUE.
+ IF (TM_LENSTR(buff) .GT. 0) THEN
+ changed_key = .FALSE.
+ IF ( TM_HAS_STRING(buff, 'CON') ) THEN
+ changed_key = .TRUE.
CALL PPLCMD (from, line, 0, 'S_KEY 1', 1, 1 )
ENDIF
+ IF ( TM_HAS_STRING(buff, 'CEN') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 2', 1, 1 )
+ ENDIF
+ IF ( TM_HAS_STRING(buff, 'HOR') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 3', 1, 1 )
+ ENDIF
+ IF (.NOT. changed_key) GOTO 5520
+ ENDIF
ENDIF
ELSE
@@ -575,6 +594,8 @@ c IF ( loc .GT. 0 .AND. .NOT.versus ) THEN
. memory( 1, ax2_start ),
. status )
IF ( status .NE. ferr_ok ) GOTO 5000
+
+ IF (need_histo) iautoc = 1
c when it's an overlay, 'No Valid Data' is part of the plot key,
c done in plot_set_up.
@@ -663,6 +684,9 @@ c done in plot_set_up.
* restore axes? (5/29/97 revised 3/2002
c IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
+* restore default color key style?
+ IF (changed_key ) CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
+
* restore dash settings? (5/29/97 revised 3/2002
IF ( do_dash .EQ. 1 ) CALL PPL_DASH_RESTORE
@@ -749,4 +773,8 @@ c IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
5510 CALL ERRMSG( ferr_syntax, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. '/COLOR must have an argument for PLOT/OVERLAY', *1000 )
+
+ 5520 CALL ERRMSG( ferr_syntax, status,
+ . cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
+ . 'Unrecognized argument to KEY command', *1000 )
END
diff --git a/fer/xeq/xeq_polygon.F b/fer/xeq/xeq_polygon.F
index ced72eb..770a9d4 100644
--- a/fer/xeq/xeq_polygon.F
+++ b/fer/xeq/xeq_polygon.F
@@ -71,6 +71,7 @@
* PyFr *kms* 7/13 EQUAL_COLOR now returns a color ID, and EQUAL_THICK
* returns a pen ID from a color ID and a thickness.
* PyFr *kms* 7/13 Added /OPACITY
+* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -101,11 +102,12 @@
REAL memory( mem_blk_size, max_mem_blks )
* internal variable declarations:
- LOGICAL no_range, do_key, spectrum, pattern, use_line
- LOGICAL overlay, transpz, no_labels, set_up, noaxes, axes
- LOGICAL fill_it, is_logh, is_logv, no_data, is_modx,
- . do_mod_minus, do_mod_plus
- INTEGER sp, patt, TM_LENSTR1, STR_UPCASE
+ LOGICAL TM_HAS_STRING, no_range, do_key, spectrum, pattern,
+ . use_line, overlay, transpz, no_labels, set_up,
+ . noaxes, axes, line_it, fill_it, is_logh, is_logv,
+ . no_data, is_modx, do_mod_minus, do_mod_plus,
+ . changed_key
+ INTEGER sp, patt, TM_LENSTR1, TM_LENSTR, STR_UPCASE
INTEGER symbol, icolor, ipen, status,
. loc, limit, slen, coord_ax,
. ax1_blks, ax1_start,
@@ -290,16 +292,30 @@ CC => Set values here instead.
IF ( do_key ) THEN
CALL PPLCMD ( from, line, 0, 'SHAKEY 1,1', 1, 1 )
-* ... /KEY=continouus ?
- loc = qual_given(slash_polygon_key )
+* ... /KEY[=continuous,horizontal,centerlabel ?
+
+ loc = qual_given(slash_polygon_key )
IF ( loc .GT. 0) THEN
- CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+ CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
. buff, status )
IF ( status .NE. ferr_ok ) GOTO 5000
- IF ( buff(1:3) .EQ. 'CON' ) THEN
- continuous_key = .TRUE.
+ IF (TM_LENSTR(buff) .GT. 0) THEN
+ changed_key = .FALSE.
+ IF ( TM_HAS_STRING(buff, 'CON') ) THEN
+ changed_key = .TRUE.
CALL PPLCMD (from, line, 0, 'S_KEY 1', 1, 1 )
ENDIF
+ IF ( TM_HAS_STRING(buff, 'CEN') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 2', 1, 1 )
+ ENDIF
+ IF ( TM_HAS_STRING(buff, 'HOR') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 3', 1, 1 )
+ ENDIF
+ IF (.NOT. changed_key) GOTO 5460
+ ENDIF
+
ENDIF
ELSE
@@ -543,6 +559,9 @@ c IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
5450 CALL ERRMSG( ferr_out_of_range, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. 'AXES arguments must be 0 or 1', *1000 )
+ 5460 CALL ERRMSG( ferr_syntax, status,
+ . cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
+ . 'Unrecognized argument to KEY command', *1000 )
5500 CALL ERRMSG( ferr_out_of_range, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. 'Value from 0 to 100 must be given', *1000 )
diff --git a/fer/xeq/xeq_shade.F b/fer/xeq/xeq_shade.F
index 3c66ea8..30acf87 100644
--- a/fer/xeq/xeq_shade.F
+++ b/fer/xeq/xeq_shade.F
@@ -104,6 +104,7 @@
* V6.85 *acm* 3/13 Fix ticket 2049; check we can open palette file
* PyFr *kms* 6/13 Added /OPACITY
* PyFr *kms* 7/13 Scale default lettering sizes by textscale
+* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
include 'tmap_dims.parm'
include 'ferret.parm'
@@ -125,11 +126,13 @@
REAL memory( mem_blk_size, max_mem_blks )
* internal variable declarations:
- LOGICAL no_range, overlay, transpz, no_labels, do_key,
+ LOGICAL TM_HAS_STRING,
+ . no_range, overlay, transpz, no_labels, do_key,
. spectrum, set_up, noaxes, axes, pattern, no_data,
- . is_logh, is_logv, is_shade, use_cell, inc_grid
+ . is_logh, is_logv, is_shade, use_cell, inc_grid,
+ . changed_key
- INTEGER TM_LENSTR1, STR_UPCASE, status, slen, sp, patt,
+ INTEGER TM_LENSTR1, TM_LENSTR, STR_UPCASE, status, slen, sp, patt,
. ax1_blks, ax1_start,
. ax2_blks, ax2_start, i, nparm, num_it,
. loc, s1, s2, it_start(4), it_end(4), iax(4),
@@ -142,7 +145,7 @@
. fname*128, buff*25, sfile*2048
* internal parameter declarations:
- LOGICAL norm_dims_only, not_vector, continuous_key
+ LOGICAL norm_dims_only, not_vector
PARAMETER ( norm_dims_only = .FALSE.,
. not_vector = .FALSE. )
@@ -274,17 +277,31 @@ c nlev = 1
IF ( do_key ) THEN
CALL PPLCMD ( from, line, 0, 'SHAKEY 1,1', 1, 1 )
-* ... /KEY[=continouus] ?
+* ... /KEY[=continuous,horizontal,centerlabel ?
+
loc = qual_given( slash_shad_key )
IF ( loc .GT. 0) THEN
- CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
+ CALL EQUAL_STRING( cmnd_buff(qual_start(loc):qual_end(loc)),
. buff, status )
IF ( status .NE. ferr_ok ) GOTO 5000
- IF ( buff(1:3) .EQ. 'CON' ) THEN
- continuous_key = .TRUE.
+ IF (TM_LENSTR(buff) .GT. 0) THEN
+ changed_key = .FALSE.
+ IF ( TM_HAS_STRING(buff, 'CON') ) THEN
+ changed_key = .TRUE.
CALL PPLCMD (from, line, 0, 'S_KEY 1', 1, 1 )
ENDIF
+ IF ( TM_HAS_STRING(buff, 'CEN') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 2', 1, 1 )
+ ENDIF
+ IF ( TM_HAS_STRING(buff, 'HOR') ) THEN
+ changed_key = .TRUE.
+ CALL PPLCMD (from, line, 0, 'S_KEY 3', 1, 1 )
+ ENDIF
+ IF (.NOT. changed_key) GOTO 5460
+ ENDIF
+
ENDIF
ELSE
@@ -451,8 +468,8 @@ c done in disp_set_up. If mode_nodata_lab is false then leave this off.
c IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
-* restore default (non-continuous) key style?
- IF (continuous_key ) CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
+* restore default key style?
+ IF (changed_key ) CALL PPLCMD (from, line, 0, 'S_KEY 0', 1, 1 )
* interrupt occurred during plot ?
IF ( ppl_interrupted ) GOTO 1000
@@ -484,6 +501,9 @@ c IF ( axes .or. noaxes ) CALL PPL_AXES_RESTORE
5450 CALL ERRMSG( ferr_out_of_range, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. 'AXES arguments must be 0 or 1', *1000 )
+ 5460 CALL ERRMSG( ferr_syntax, status,
+ . cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
+ . 'Unrecognized argument to KEY command', *1000 )
5500 CALL ERRMSG( ferr_out_of_range, status,
. cmnd_buff(qual_start(loc):qual_end(loc))//pCR//
. 'Value from 0 to 100 must be given', *1000 )
diff --git a/fer/xeq/xeq_show.F b/fer/xeq/xeq_show.F
index 2681306..27f8c29 100644
--- a/fer/xeq/xeq_show.F
+++ b/fer/xeq/xeq_show.F
@@ -184,6 +184,9 @@
* V690 *sh* 12/13 Added SHOW TRANSFORMS of auxiliary variable regridding
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
* V690 *sh* 1/14 Add SHOW VAR/SIGMA
+* V691+*acm* 8/14 Fix ticket 2188: SHOW MEMORY should say memory words are 8 bytes.
+* V691+ 8/14 *acm* Fix ticket 2194: SHOW with /OUTFILE and not /XML.
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
IMPLICIT NONE
@@ -285,10 +288,10 @@
. cache_size, cache_nelems, cache_preemption,
. sho_file, idim, ndims, nvars, ngatts, recdim, npts,
. vartype, outflag, num_clim_1, num_clim_n,
- . base_cx, base_isp
+ . base_cx, base_isp, grid_blocks
INTEGER saved_num_indices, saved_index_list(max_uvar),
. arr_buff(max_uvar)
- REAL xtemp, ytemp, attvals(100), cache_mb, cache_n, cache_p
+ REAL xtemp, ytemp, attvals(100), cache_mb, cache_n, cache_p, rsize
CHARACTER EXPR_NAME*8, TM_FMT*12, VAR_CODE*128,
. default*10, show_str*2048, arg*128, name*128, argsym*120
CHARACTER varatt*641, varname*512, attname*128,
@@ -580,6 +583,9 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
risc_buff = '</axes>'
CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
ENDIF
+
+ IF (sho_file .GT. 0) CLOSE( UNIT = show_lun, ERR = 5000 )
+
IF ( limited_show ) RETURN
* SHOW EXPRESSION
@@ -902,7 +908,12 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
ELSE
arg = unspecified_name4
ENDIF
- CALL GET_MEMORY( max_mrs, v1_blk1, v1_nblks, status )
+ rsize = FLOAT(max_mrs)
+
+* COMPUTE # BLOCKS NEEDED
+ grid_blocks = ( INT(rsize) + mem_blk_size - 1 ) / mem_blk_size
+
+ CALL GET_MEMORY( INT(rsize), grid_blocks, v1_blk1, v1_nblks, status )
IF ( status .NE. ferr_ok ) GOTO 5000
CALL SHOW_DIAG_VARS( arg, memory(1,v1_blk1) )
CALL FREE_MEMORY( v1_blk1, v1_nblks )
@@ -963,6 +974,7 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
ENDIF
CALL DISPLAY_DEPENDENCY( memory(1,dependency_block1) )
1010 CALL EXIT_DEPENDENCY_MODE
+ IF (sho_file .GT. 0) CLOSE( UNIT = show_lun, ERR = 5000 )
RETURN
ENDIF
@@ -973,7 +985,7 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
IF ( iqual .GT. 0 ) THEN
CALL EQUAL_STRING( cmnd_buff(qual_start(iqual):qual_end(iqual)),
. show_str, status ) ! show_str is just a buffer
- IF ( status .NE. ferr_ok ) RETURN
+ IF ( status .NE. ferr_ok ) GOTO 4030
IF ( show_str .EQ. ' ' ) THEN
rqst_dset = pdset_irrelevant ! global variables
ELSE
@@ -981,7 +993,7 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
IF ( rqst_dset .EQ. unspecified_int4) THEN
CALL WARN('Unknown data set: '
. //show_str(:TM_LENSTR1(show_str)))
- RETURN
+ GOTO 4030
ENDIF
ENDIF
ELSE
@@ -1216,6 +1228,8 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
risc_buff = '</global>'
CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
ENDIF
+ 4030 CONTINUE
+ IF (sho_file .GT. 0) CLOSE( UNIT = show_lun, ERR = 5000 )
IF ( limited_show ) RETURN
@@ -1284,9 +1298,17 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
* SHOW MEMORY
1200 show_str = TM_FMT( FLOAT(mem_blk_size) *
. FLOAT(max_mem_blks) / 1.E6, 3, 12, len)
+
+#ifdef double_p
+ WRITE (risc_buff, *)
+ . 'Current size of FERRET memory cache: '
+ . //show_str(:len)//' MegaWords (1 word = 8 bytes)'
+#else
WRITE (risc_buff, *)
. 'Current size of FERRET memory cache: '
. //show_str(:len)//' MegaWords (1 word = 4 bytes)'
+#endif
+
CALL SPLIT_LIST(pttmode_explct, show_lun, risc_buff, 0)
risc_buff = ' '
IF ( qual_given( slash_mem_free ) .GT. 0 ) THEN
@@ -1306,7 +1328,7 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
sxml = qual_given( slash_grid_xml ) .GT. 0
-* SHOW GRID/FILE=[/APPEND][/CLOBBER]
+* SHOW GRID/OUTFILE=[/APPEND][/CLOBBER]
sho_file = qual_given( slash_show_grid_file )
clobber = qual_given( slash_show_grid_clobber ) .GT. 0
append = qual_given( slash_show_grid_append ) .GT. 0
@@ -1440,6 +1462,8 @@ c . (line.GE.num_clim_1 .AND. line.LE.num_clim_n) )
IF ( status .NE. ferr_ok ) GOTO 5000
* successful completion
+ IF (sho_file .GT. 0) CLOSE( UNIT = show_lun, ERR = 5000 )
+
1390 RETURN
* SHOW VIEWPORT view1,view2,...
diff --git a/ferretmagic.py b/ferretmagic.py
index 94d1a33..2cc75fc 100644
--- a/ferretmagic.py
+++ b/ferretmagic.py
@@ -29,12 +29,23 @@ Usage
{ferret_PUTDATA_DOC}
+``%ferret_lock``
+
+{ferret_LOCK_DOC}
+
+``%ferret_unlock``
+
+{ferret_UNLOCK_DOC}
+
"""
#-----------------------------------------------------------------------------
# Patrick.Brockmann at lsce.ipsl.fr
# Started 2013/08/28 then put on github.com 2013/09/06
+# https://github.com/PBrockmann/ipython-ferretmagic
#
+# Lock functions are taken from ipythonPexpect magic
+# https://cdcvs.fnal.gov/redmine/projects/ipython_ext/repository/revisions/master/raw/ipythonPexpect.py
#-----------------------------------------------------------------------------
import os.path
@@ -75,6 +86,9 @@ class ferretMagics(Magics):
except ExceptionPexpect:
raise ferretMagicError('pyferret cannot be started')
+ self._shell = shell
+ self._shell.ferret_locked = False
+
#----------------------------------------------------
def ferret_run_code(self, args, code):
"""
@@ -90,7 +104,8 @@ class ferretMagics(Magics):
# Redirect stdout and stderr to file
out_filename = temp_dir + '/output.txt'
- (errval, errmsg) = pyferret.run('set redirect /clobber /file="%s" stdout stderr' % out_filename)
+ if not(args.quiet):
+ (errval, errmsg) = pyferret.run('set redirect /clobber /file="%s" stdout' % out_filename)
# Filename for saving the final plot (if any)
if args.plotname:
@@ -127,17 +142,14 @@ class ferretMagics(Magics):
# Set window size with the required aspect ratio;
# always anti-alias with windows of these sizes
+ canvas_width = math.sqrt(plot_width * plot_height / plot_aspect)
if args.bigger:
- # Double the size (both width and height) of the standard window
- # and add some extra (0.5) thickness to lines
- canvas_width = 2.0 * math.sqrt(10.5 * 8.5 / plot_aspect)
- line_thicken = 2.0
- else:
- # Use a standard-size window with usual line thickness
- canvas_width = math.sqrt(10.5 * 8.5 / plot_aspect)
- line_thicken = 1.0
- (errval, errmsg) = pyferret.run('set window /xinches=%f /thick=%f /aspect=%f 1' % \
- (canvas_width, line_thicken, plot_aspect))
+ # Double the width and height of the window, but the image will
+ # be saved at the original requested size.
+ # Reducing the raster image when saving it sharpens the image.
+ canvas_width *= 2.0
+ (errval, errmsg) = pyferret.run('set window /xpixel=%f /aspect=%f 1' % \
+ (canvas_width, plot_aspect))
# Run code
pyferret_error = False
@@ -147,12 +159,13 @@ class ferretMagics(Magics):
input = unicode_to_str(input)
(errval, errmsg) = pyferret.run(input)
if errval != pyferret.FERR_OK:
+ errmsg = errmsg.replace('\\', '<br />')
publish_display_data(_PUBLISH_KEY, {'text/html':
'<pre style="background-color:#F79F81; border-radius: 4px 4px 4px 4px; font-size: smaller">' +
'yes? %s\n' % input +
- '** (LAST) ERROR MESSAGE: %s' % errmsg +
+ '%s' % errmsg +
'</pre>'
- })
+ })
pyferret_error = True
break
@@ -170,7 +183,8 @@ class ferretMagics(Magics):
(errval, errmsg) = pyferret.run('cancel window 1')
# Close the stdout and stderr redirect file
- (errval, errmsg) = pyferret.run('cancel redirect')
+ if not(args.quiet):
+ (errval, errmsg) = pyferret.run('cancel redirect')
#-------------------------------
@@ -223,6 +237,10 @@ class ferretMagics(Magics):
# Delete temporary directory - PNG encoded in the string
rmtree(temp_dir)
+ # Error in ferret code - Delete temporary directory
+ else:
+ rmtree(temp_dir)
+
# Publication
for source, data in display_data:
publish_display_data(source, data)
@@ -240,13 +258,17 @@ class ferretMagics(Magics):
)
@argument(
'-b', '--bigger', default=False, action='store_true',
- help='Produce a sharper plot by doubling the standard plot window size before scaling'
+ help='Produce a sharper plot by doubling the standard plot window size before scaling.'
)
@argument(
'-p', '--pdf', default=False, action='store_true',
help='Generate the output plot as a PDF file.'
)
@argument(
+ '-q', '--quiet', default=False, action='store_true',
+ help='Do not display stdout.'
+ )
+ @argument(
'-f', '--plotname',
help='Name of the image file to create. If not given, a name will be generated.'
)
@@ -278,13 +300,17 @@ class ferretMagics(Magics):
)
@argument(
'-b', '--bigger', default=False, action='store_true',
- help='Produce a sharper plot by doubling the standard plot window size before scaling'
+ help='Produce a sharper plot by doubling the standard plot window size before scaling.'
)
@argument(
'-p', '--pdf', default=False, action='store_true',
help='Generate the output plot as a PDF file.'
)
@argument(
+ '-q', '--quiet', default=False, action='store_true',
+ help='Do not display stdout.'
+ )
+ @argument(
'-f', '--plotname',
help='Name of the image file to create. If not given, a name will be generated.'
)
@@ -292,8 +318,9 @@ class ferretMagics(Magics):
'string',
nargs='*'
)
+ @needs_local_scope
@line_magic
- def ferret_run(self, line):
+ def ferret_run(self, line, local_ns=None):
'''
Line-level magic to run a command in ferret.
@@ -302,7 +329,8 @@ class ferretMagics(Magics):
'''
args = parse_argstring(self.ferret_run, line)
- code = [self.shell.ev(" ".join(args.string))]
+ #code = [self.shell.ex(" ".join(args.string))]
+ code = [eval(" ".join(args.string), local_ns)]
self.ferret_run_code(args, code)
#----------------------------------------------------
@@ -331,7 +359,7 @@ class ferretMagics(Magics):
args = parse_argstring(self.ferret_getdata, line)
- code = unicode_to_str(args.code[0])
+ code = unicode_to_str(''.join(args.code))
pythonvariable = code.split('=')[0]
ferretvariable = code.split('=')[1]
exec('%s = pyferret.getdata("%s", %s)' % (pythonvariable, ferretvariable, args.create_mask) )
@@ -383,13 +411,66 @@ class ferretMagics(Magics):
'</pre>'
})
+ @line_magic
+ def ferret_lock(self, line):
+ '''
+ Lock the notebook to send EVERY executed cell through pyferret
+
+ Do %ferret_unlock to unlock
+
+ '''
+
+ self._shell.ferret_locked = True
+
+ print 'WARNING: All future cell execution will be processed through pyferret!'
+ print 'To return to IPython, issue %ferret_unlock'
+
+ @line_magic
+ def ferret_unlock(self, line):
+ '''
+ Unlock the notebook to return to regular IPython
+ '''
+
+
+ self._shell.ferret_locked = False
+
+ print 'Notebook will use IPython'
+
+# Let's rewrite InteractiveShell.run_cell to do automatic processing with pyferret,
+# if desired
+from IPython.core.interactiveshell import InteractiveShell
+
+# Let's copy the original "run_cell" method (we do this only once so we can reload)
+if not getattr(InteractiveShell, "run_cell_a", False):
+ InteractiveShell.run_cell_a = InteractiveShell.run_cell
+
+# Now rewrite run_cell
+def run_cell_new(self, raw_cell, store_history=False, silent=False, shell_futures=True):
+
+ # Are we locked in pyferret?
+ if getattr(self, "ferret_locked", False):
+
+ # Don't alter cells that start with %%ferret or with %ferret_unlock
+ if raw_cell[:8] == '%%ferret' or raw_cell[:15] == '%ferret_unlock':
+ pass
+ else:
+ # We're going to add a %%ferret to the top
+ raw_cell = "%%ferret\n" + raw_cell
+
+ self.run_cell_a(raw_cell, store_history, silent, shell_futures)
+
+# And assign it
+InteractiveShell.run_cell = run_cell_new
+
#----------------------------------------------------
__doc__ = __doc__.format(
ferret_DOC = ' '*8 + ferretMagics.ferret.__doc__,
ferret_RUN_DOC = ' '*8 + ferretMagics.ferret_run.__doc__,
ferret_GETDATA_DOC = ' '*8 + ferretMagics.ferret_getdata.__doc__,
- ferret_PUTDATA_DOC = ' '*8 + ferretMagics.ferret_putdata.__doc__
+ ferret_PUTDATA_DOC = ' '*8 + ferretMagics.ferret_putdata.__doc__,
+ ferret_LOCK_DOC = ' '*8 + ferretMagics.ferret_lock.__doc__,
+ ferret_UNLOCK_DOC = ' '*8 + ferretMagics.ferret_unlock.__doc__
)
def load_ipython_extension(ip):
diff --git a/fmt/cmn/tmap_errors.parm b/fmt/cmn/tmap_errors.parm
index 1612b16..a67991a 100644
--- a/fmt/cmn/tmap_errors.parm
+++ b/fmt/cmn/tmap_errors.parm
@@ -18,6 +18,7 @@
* V600 7/06 *acm* New merr_nc_open for errors opening NC datasets
* V604 6/07 *acm* New merr_remote_open for errors opening remote datasets
* V683 10/10*acm* New merr_read_interrupt for user-interrupt reading netCDF/OPeNDAP data
+* V692 10/14*acm* New merr_time_string for errors in tm_secs_to_date
* internally used PARAMETERS:
INTEGER num_special,num_regular,pspecial,pregular,
@@ -25,7 +26,7 @@
. pcdferr, pcdferrmax, nf_interrupt
CHARACTER*1 no_errstring
PARAMETER (num_special = 3,
- . num_regular = 47,
+ . num_regular = 48,
. pspecial = 2, ! avoid 0,1 as too special
. pregular = 200,
. pcdferr = 1000,
@@ -60,7 +61,8 @@
. merr_varform, merr_varmtch, merr_badtimedef,
. merr_dsetnf, merr_stepnf, merr_badcolmn,
. merr_attalready, merr_badfileatt, merr_nc_open,
- . merr_remote_open, merr_chunk_spec, merr_read_interrupt
+ . merr_remote_open, merr_chunk_spec, merr_read_interrupt,
+ . merr_time_string
PARAMETER (merr_notsupport = 1 + pregular,
. merr_filpos = 1 + merr_notsupport,
. merr_tstep = 1 + merr_filpos,
@@ -107,5 +109,6 @@
. merr_badfileatt = 1 + merr_attalready,
. merr_nc_open = 1 + merr_badfileatt,
. merr_remote_open = 1 + merr_nc_open,
- . merr_chunk_spec = 1 + merr_remote_open,
- . merr_read_interrupt = 1 + merr_chunk_spec)
+ . merr_chunk_spec = 1 + merr_remote_open,
+ . merr_read_interrupt = 1 + merr_chunk_spec,
+ . merr_time_string = 1 + merr_read_interrupt)
diff --git a/fmt/src/SOURCE_FILES b/fmt/src/SOURCE_FILES
index 388d087..641aa8e 100644
--- a/fmt/src/SOURCE_FILES
+++ b/fmt/src/SOURCE_FILES
@@ -15,6 +15,7 @@ cd_conventions_out.F\
cd_defer_coord_write.F\
cd_delete_attribute.F\
cd_dods_control.F\
+cd_dim_only.F\
cd_dset_remoteok.F\
cd_encode_url.F\
cd_get_1_axis.F\
@@ -98,6 +99,7 @@ cd_write_grid.F\
cd_write_strdim.F\
cd_write_var.F\
encode_strings_data.F\
+ez_count_dset.F\
ez_init_dset.F\
ez_init_permute.F\
ez_mod_dset.F\
diff --git a/fmt/src/cd_conventions_out.F b/fmt/src/cd_conventions_out.F
index 17af6fc..f141e88 100644
--- a/fmt/src/cd_conventions_out.F
+++ b/fmt/src/cd_conventions_out.F
@@ -63,26 +63,74 @@
* local variable declarations:
- INTEGER TM_LENSTR1, clen, slen
- LOGICAL CD_GET_ATTRIB, got_it, do_warn
+ INTEGER TM_LENSTR1, STR_SAME, TM_LOC_STRING,
+ . clen, slen, ioc, loc, appnd
+ LOGICAL CD_GET_ATTRIB, got_it, do_warn, append_flag
PARAMETER (do_warn = .TRUE. )
CHARACTER*132 buff
+ CHARACTER*1 nl
* initialize
slen = MIN( TM_LENSTR1(string), 120 )
+
+* append flag will be set as follows:
+c appnd = 1 ! to append
+c appnd = 0 ! to write the string sent in
+c appnd = -1 ! to write altered history string
+
+ appnd = 0
+ append_flag = .TRUE.
+
* update (or create) conventions record
got_it = CD_GET_ATTRIB( cdfid, NCGLOBAL, 'Conventions',
. .NOT.do_warn, ' ', buff, clen, 132 )
-* is the last conventions stamp the same as this ?
+* is the last conventions attribute the same as this ?
IF ( clen .GE. slen ) THEN
IF ( buff(clen-slen+1:clen) .EQ. string(:slen) ) RETURN
ENDIF
+
+* is the last conventions attribute just a "CF-xx?
+* If so just replace with the current string ...
+ append_flag = append
+ IF ( STR_SAME (buff(1:3), 'CF-') .EQ.0 .AND.
+ . clen .LE. 12 ) THEN
+ appnd = 0
+ append_flag = .FALSE.
+
+ ELSE
+
+* does the last history end with a CF-xx ?
+* If so just replace with the current CF-xx...
+
+ append_flag = append
+ ioc = 0
+ loc = TM_LOC_STRING(buff,'CF-',ioc)
+ IF ( loc .GT. 1 ) THEN
+ buff = buff(:loc-1)//', '//string(:slen)
+ appnd = -1
+ append_flag = .FALSE.
+ ENDIF
+ ENDIF
+
+* Insert new CF conventions text
+* If there is a conventions att, append current one.
+* For conventions, just add it with a comma.
+
+ IF (appnd .EQ. 1) THEN
+ CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, 'Conventions',
+ . ', '//string(:slen),
+ . append_flag, status )
+ ELSE IF (appnd .EQ. 0) THEN
+ CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, 'Conventions', string(:slen),
+ . append_flag, status )
+ ELSE IF (appnd .EQ. -1) THEN
+ slen = TM_LENSTR1(buff)
+ CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, 'Conventions', buff(:slen),
+ . append_flag, status )
+ ENDIF
-* insert new attribute
- CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, 'Conventions',
- . string(:slen), append, status )
IF ( status .NE. merr_ok ) GOTO 5000
* successful completion
diff --git a/fmt/src/cd_dim_only.F b/fmt/src/cd_dim_only.F
new file mode 100755
index 0000000..f78cde3
--- /dev/null
+++ b/fmt/src/cd_dim_only.F
@@ -0,0 +1,40 @@
+ SUBROUTINE CD_DIM_ONLY (cdfid, name, nlen, dim_only)
+
+* include files
+
+ include 'netcdf.inc'
+
+ INTEGER cdfid, nlen
+ LOGICAL dim_only
+ CHARACTER*(*) name
+
+ INTEGER cdfstat, dimid, axid
+
+
+ dim_only = .FALSE.
+
+#ifdef usingDODSf2cUnderscore
+ cdfstat = NF_INQ_DIMID_( cdfid, name(:nlen), dimid)
+#else
+ cdfstat = NF_INQ_DIMID( cdfid, name(:nlen), dimid)
+#endif
+
+* already defined ? (limited consistency checking)
+ IF ( cdfstat .EQ. NF_NOERR ) THEN
+
+* ... is there a coordinate variable by the same name ?
+#ifdef usingDODSf2cUnderscore
+ cdfstat = NF_INQ_VARID_( cdfid, name(:nlen), axid )
+#else
+ cdfstat = NF_INQ_VARID( cdfid, name(:nlen), axid )
+#endif
+
+* The dimension matches but there is no coord var.
+* This lets us append variables to a DSG file.
+
+ dim_only = cdfstat .EQ. nf_enotvar
+
+ ENDIF
+
+ RETURN
+ END
diff --git a/fmt/src/cd_get_1_axis.F b/fmt/src/cd_get_1_axis.F
index d13c68e..9402482 100644
--- a/fmt/src/cd_get_1_axis.F
+++ b/fmt/src/cd_get_1_axis.F
@@ -178,6 +178,9 @@
* V685 *acm* 11/13 REALLY make the check for axis length in single precision when the
* coordinate variable came in as a single-precision variable.
* V6.87 4/14 *acm* ticket 2146: if invalid bounds, make the bounds a dependent variale.
+* V691 4/41 *acm* Ticket 2170: bub with invalid bounds when point-spacing=true attribute.
+* Ticket 2172: If the axis is actually too long, reset the modulo flags
+* so it is treated as not modulo.
* argument definitions:
* cdfid - netCDF id number for already opened CDF file (to go away with new attr. hanling)
@@ -408,6 +411,11 @@
. do_warn, vname(:vlen), maxlen,
. attlen, attoutflag, ename, val)
+* We will be checking bounds or edges. Read the coords too
+* in case we are going to mark the axis as irregular.
+
+ IF (got_edges .OR. got_bnds) line_regular(iaxis) = .FALSE.
+
* optional "true_size" parameter for 2 point representations of even axes
IF ( line_regular(iaxis) ) THEN
@@ -1157,37 +1165,39 @@ c IF ( status .NE. merr_ok ) GOTO 1000 ! 3/99 soft error
. '" or bounds 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) )
+ IF (.NOT.line_regular(iaxis) ) CALL TM_IRREGAX_MID(
+ . next_line_mem_pos, line_dim (iaxis) )
bad_bndsid = bndid
- ENDIF
+ 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(iaxis)) THEN
+ IF (TM_CHECK_BNDS_CENTERED(iaxis)) 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)
+ IF (.NOT. line_regular(iaxis)) THEN
+ line_regular(iaxis) = .TRUE.
+ line_start (iaxis) = line_mem(ipt1)
+ IF (npts .GT. 1) THEN
+ line_delta (iaxis) =
+ . (line_mem(ipte)-line_mem(ipt1))/DBLE(npts-1)
+ ELSE
+ ibx1 = ipt1 + npts
+ line_delta(iaxis) = line_mem(ibx1+1)-line_mem(ibx1)
+ ENDIF
+ line_subsc1 (iaxis) = unspecified_int4
+ last_coord = line_start(iaxis) +
+ . DBLE(npts-1)*line_delta(iaxis)
+ firs_coord = line_start(iaxis)
ENDIF
- line_subsc1 (iaxis) = unspecified_int4
- last_coord = line_start(iaxis) +
- . DBLE(npts-1)*line_delta(iaxis)
- firs_coord = line_start(iaxis)
+ ELSE
+ line_regular(iaxis) = .FALSE.
ENDIF
- ELSE
- line_regular(iaxis) = .FALSE.
- ENDIF
+
+ ENDIF ! valid bounds, also checked centered
600 CONTINUE
@@ -1263,6 +1273,9 @@ c secsperyear = cals_yeardays(cal_id)* 24*60*60
* double coordinate storage. If coords are single precision do the
* check in single precision.
+* Ticket 2172: If the axis is actually too long, reset the modulo flags
+* so it is treated as not modulo.
+
IF (line_modulo(iaxis).AND.line_modulo_len(iaxis).NE.0.D0) THEN
IF (line_modulo_len(iaxis) .LT. axwwlen) THEN
c line_modulo_len(iaxis) = 0.0D0
@@ -1274,10 +1287,13 @@ c line_modulo_len(iaxis) = 0.0D0
IF (vartype.NE.ncdouble) delta = r4delta
ok = TM_FPEQ(delta, lm_len)
ENDIF
- IF (.NOT. ok)
- . CALL TM_NOTE(
+ IF (.NOT. ok) THEN
+ line_modulo_len(iaxis) = 0
+ line_modulo(iaxis) = .FALSE.
+ CALL TM_NOTE(
. 'Ignored modulo length exceeding axis length: '
. //vname(:vlen), tt )
+ ENDIF
ENDIF
ENDIF
diff --git a/fmt/src/cd_get_line_direction.F b/fmt/src/cd_get_line_direction.F
index 2e54a87..894a710 100644
--- a/fmt/src/cd_get_line_direction.F
+++ b/fmt/src/cd_get_line_direction.F
@@ -37,6 +37,8 @@
* code to determine the direction of a coordinate axis. Pulled out of cd_get_1_axis
* V683 ACM 9/2012
*
+* V692 ACM 7/2014 A cf_role attribute indicates the E direction.
+*
* include files:
IMPLICIT NONE
@@ -160,6 +162,20 @@
ENDIF
ENDIF
+* ... check for a cf_role attribute, if still undetermined.
+* Put these axes in the E direction. This attribute may
+* be on a non-coordinate varable. Those are found in
+* cd_get_generic_grids.
+
+ IF (line_direction(iaxis) .EQ. 'NA') THEN
+
+ maxlen = 20
+ got_it = NC_GET_ATTRIB(dset, ivar, 'cf_role',
+ . do_warn, vname(:vlen), maxlen, attlen,
+ . attoutflag, buff, val)
+ IF (got_it) line_direction(iaxis) = 'EE'
+ ENDIF
+
* ... check for a _CoordinateAxisType attribute, if still undetermined
IF (line_direction(iaxis) .EQ. 'NA') THEN
diff --git a/fmt/src/cd_make_var.F b/fmt/src/cd_make_var.F
index 5412e1c..9707e3a 100644
--- a/fmt/src/cd_make_var.F
+++ b/fmt/src/cd_make_var.F
@@ -87,6 +87,8 @@
* from the original dataset on output.
* V687 3/14 *acm* Fix ticket 1750. Write Ferret-internal axis names to cdf files, unless
* the user has said /KEEP_AXISNAMES
+* V69+ 4/14 *acm* After the above fix, need a tweak to be able to append to files having
+* dimensions that are not coordinate variables
* argument definitions:
* cdfid - netCDF id number for already opened CDF file
@@ -136,8 +138,9 @@
* local variable declarations:
LOGICAL TM_ABSTRACT_AXIS, CD_USE_RECDIM,
- . itsa_slab, need_child(nferdims), itsa_strvar, name_from_grid(nferdims)
- INTEGER TM_LENSTR1, CD_ISIT_RECDIM, CD_WRITE_STRDIM,
+ . itsa_slab, need_child(nferdims), itsa_strvar,
+ . name_from_grid(nferdims), dim_only(nferdims)
+ INTEGER TM_LENSTR1, CD_ISIT_RECDIM, CD_WRITE_STRDIM, STR_SAME,
. dimid(8), iaxis, cdfstat, dims, idim, varid, vartyp,
. nvdims, vdims(8), nvatts, nlen, glen, vlen, ax_type,
. lo2(nferdims), hi2(nferdims), what_recdim, strdim, dimsize,
@@ -266,7 +269,8 @@
CALL CD_WRITE_AXIS( cdfid, dset, grid, idim, .FALSE.,
. lo(idim), hi(idim), pcdf_child_span,
. .FALSE., .FALSE., mode_upcase_output,
- . keepax_flag, name_from_grid(idim), status)
+ . keepax_flag, name_from_grid(idim), dim_only(idim),
+ . status)
IF ( status .NE. merr_ok ) GOTO 5900
ENDIF
250 CONTINUE
@@ -275,6 +279,7 @@
ELSE
* 1/95 - create the full-span or sub-span axes as appropriate
DO 260 idim = 1, nferdims
+ dim_only(idim) = .FALSE.
IF ( grid_line(idim, grid) .NE. mpsnorm
. .AND. lo(idim) .NE. unspecified_int4 ) THEN
IF (need_child(idim)) THEN
@@ -286,7 +291,7 @@
. idim.EQ.recdim, lo(idim), hi(idim),
. ax_type, edges_flag, do_bounds,
. mode_upcase_output, keepax_flag,
- . name_from_grid(idim), status )
+ . name_from_grid(idim), dim_only(idim), status )
IF ( status .NE. merr_ok ) GOTO 5900
ENDIF
260 CONTINUE
@@ -318,7 +323,20 @@
buff = line_name(iaxis)
ENDIF
lname = buff
- IF (mode_upcase_output) CALL STR_UPCASE( lname, buff)
+ IF (mode_upcase_output) THEN
+ CALL STR_UPCASE( lname, buff)
+ ELSE
+ IF (STR_SAME(CD_AXIS_NAME(dset, grid, idim, nlen),
+ . CD_AXIS_OUTNAME(dset, grid, idim, nlen)) .EQ. 0) THEN
+ buff = CD_AXIS_OUTNAME(dset, grid, idim, nlen)
+ lname = buff
+ ENDIF
+ ENDIF
+
+ IF (dim_only(idim)) THEN
+ buff = CD_AXIS_OUTNAME(dset, grid, idim, nlen)
+ lname = buff
+ ENDIF
IF ( iaxis .EQ. mpsnorm
. .OR. lo(idim) .EQ. unspecified_int4 ) GOTO 300
diff --git a/fmt/src/cd_stamp_out.F b/fmt/src/cd_stamp_out.F
index 662524a..fdfb09c 100644
--- a/fmt/src/cd_stamp_out.F
+++ b/fmt/src/cd_stamp_out.F
@@ -66,14 +66,25 @@
* local variable declarations:
* *kob* explicit definitions not allowed on decl line in linux...
* moved it to parameter line 10/96
- INTEGER TM_LENSTR1, STR_SAME, hlen, slen
+ INTEGER TM_LENSTR1, STR_SAME, TM_LOC_STRING,
+ . hlen, slen, ioc, loc, appnd
LOGICAL CD_GET_ATTRIB, got_it, do_warn, append_flag
PARAMETER (do_warn = .TRUE. )
CHARACTER*2048 history
+ CHARACTER*1 nl
+ PARAMETER( nl = CHAR(10) )
* initialize
slen = MIN( TM_LENSTR1(string), 120 )
+* append flag will be set as follows:
+c appnd = 1 ! to append
+c appnd = 0 ! to write the string sent in
+c appnd = -1 ! to write altered history string
+
+ appnd = 0
+ append_flag = .TRUE.
+
* update (or create) history record
got_it = CD_GET_ATTRIB( cdfid, NCGLOBAL, 'history',
. .NOT.do_warn, ' ', history, hlen, 2048 )
@@ -86,13 +97,39 @@
* is the last history stamp just a FERRET Vxx date?
* If so just replace with the current FERRET Vxxx ...
- append_flag = append
+
IF ( STR_SAME (history(1:8), 'FERRET V') .EQ.0 .AND.
- . hlen .LE. 30 ) append_flag = .FALSE.
+ . hlen .LE. 30 ) THEN
+ appnd = 0
+ append_flag = .FALSE.
+ ELSE
-* insert new signature
- CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, 'history', string(:slen),
+* does the last history end with a FERRET Vxx date?
+* If so just replace with the current FERRET Vxxx ...
+
+ ioc = 0
+ loc = TM_LOC_STRING(history,'FERRET V',ioc)
+ IF ( loc .GT. 1 ) THEN
+ history = history(:loc-1)//string(:slen)
+ appnd = -1
+ append_flag = .FALSE.
+ ENDIF
+ ENDIF
+
+* Replace or append to signature.
+
+ IF (appnd .EQ. 1) THEN
+ CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, 'history',
+ . ','//nl(:1)//' '//string(:slen),
+ . append_flag, status )
+ ELSE IF (appnd .EQ. 0) THEN
+ CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, 'history', string(:slen),
. append_flag, status )
+ ELSE IF (appnd .EQ. -1) THEN
+ slen = TM_LENSTR1(history)
+ CALL CD_WRITE_ATTRIB(cdfid, pcdf_global, 'history', history(:slen),
+ . append_flag, status )
+ ENDIF
IF ( status .NE. merr_ok ) GOTO 5000
* successful completion
diff --git a/fmt/src/cd_write_axis.F b/fmt/src/cd_write_axis.F
index 63e58b9..63eb378 100644
--- a/fmt/src/cd_write_axis.F
+++ b/fmt/src/cd_write_axis.F
@@ -1,7 +1,8 @@
SUBROUTINE CD_WRITE_AXIS ( cdfid, dset, grid, idim, recdim,
. loss, hiss, ax_type, edges_flag,
. do_bounds, mode_upcase_output,
- . keepax_flag, name_from_grid, status )
+ . keepax_flag, name_from_grid, dim_only,
+ . status )
* This software was developed by the Thermal Modeling and Analysis
@@ -100,6 +101,13 @@
* a NOTE. They just clutter things up.
* V687 3/14 *acm* Fix ticket 1750. Write Ferret-internal axis names to cdf files, unless
* the user has said /KEEP_AXISNAMES
+* V69+ 4/14 *acm* After the above fix, need a tweak to be able to append to files having
+* dimensions that are not coordinate variables
+* V69+ 7/14 *acm* Further fix to 1750. Ticket 2182: Keep case of axis name consistent when
+* creating and writing axis bounds.
+* V69+ 7/14 *acm* Ticket 1863: When output-flag was reset on an attribute, wasn't being applied
+* if the variable wasn't associated with the dataset where that axis lives.
+
* argument definitions:
* dset - dset (if netcdf file, for getting name and attribute
@@ -145,7 +153,7 @@
LOGICAL TM_ABSTRACT_AXIS, TM_DATE_OK, MATCH_NAME, NC_GET_ATTRIB,
. abstract, do_warn, got_modulo, got_calendar, got_units,
. got_positive, got_spacing, got_axis, got_cartesian, got_it,
- . coordvar, do_off, do_scale
+ . coordvar, do_off, do_scale, dim_only
PARAMETER (do_warn = .TRUE. )
INTEGER TM_LENSTR1, CD_AXLEN, STR_SAME, STR_DNCASE,
. dimid, iaxis, axid, cdfstat, lo, hi,
@@ -153,7 +161,7 @@
INTEGER TM_GET_CALENDAR_ID, CD_WRITE_BNDSDIM, cal_id, varid,
. llen, vartype, nvdims, nvatts, iatt, attype, attlen,
. attoutflag, istat, maxlen, vdims(8), newid, all_outflag,
- . attid, dset_num, outtype, axis_packed, dlen, vlen
+ . attid, dset_num, outtype, axis_packed, dlen, vlen, iset
REAL vals(100)
! LOGICAL condensed
@@ -164,7 +172,8 @@
CHARACTER CD_CHILDAX_NAME*128, CD_AXIS_NAME*128, CD_AXIS_OUTNAME*128,
. TM_FMT*12,
. name*128, name_in*128, units*48, datebuff*40,
- . buff*140, buff2*140, attname*128, dimstr*12, varstr*12
+ . buff*140, buff2*140, attname*128, dimstr*12, varstr*12,
+ . name_bnds*140
! REAL*8 val8_cdf, val8_tmap
* 12/97
@@ -174,15 +183,33 @@
* initialize
iaxis = grid_line(idim, grid)
dset_num = dset
+ dim_only = .FALSE.
name = CD_AXIS_NAME( dset_num, grid, idim, nlen )
IF (keepax_flag .EQ. 1) name = CD_AXIS_OUTNAME( dset_num, grid, idim, nlen )
name_in = name
+
+ name_from_grid = .FALSE.
+
+* If the datset is user-variable or unknown, see if the axis is from a dataset. The
+* OUTFLAG information for writing attributes is in the datset linked-list structure.
+
+ IF (dset .LE. 0) THEN
+ buff2 = name
+ DO 50 iset = 1, maxdsets
+ IF (ds_name(iset) .NE. char_init1024) THEN
+ CALL CD_GET_VAR_ID (iset, buff2, varid, status)
+ IF (status .EQ. merr_ok) THEN
+ dset_num = iset
+ GOTO 60
+ ENDIF
+ ENDIF
+ 50 CONTINUE
+ 60 CONTINUE
+ ENDIF
npts = line_dim(iaxis)
abstract = TM_ABSTRACT_AXIS( iaxis )
-
- name_from_grid = .FALSE.
* If mode upcase_output is set, then upcase both name and name_in which is
* being stored for later use.
@@ -190,8 +217,16 @@
IF (mode_upcase_output) THEN
CALL STR_UPCASE( name_in, name)
CALL STR_UPCASE( name, name_in)
- ENDIF
+* If not mode upcase_output, then keep the incoming case.
+ ELSE
+ name = CD_AXIS_NAME( dset_num, grid, idim, nlen )
+ name_in = CD_AXIS_OUTNAME( dset_num, grid, idim, llen )
+ IF (STR_SAME(name, name_in) .EQ. 0) THEN
+ name = name_in
+ nlen = llen
+ ENDIF
+ ENDIF
* determine lo/hi limits of the axis to be written
IF ( abstract ) THEN
@@ -214,6 +249,15 @@
nlen = MIN(nlen,maxchildlen)
ENDIF
+* Is it just a dimension, not a coordinate variable
+
+ buff = CD_AXIS_OUTNAME( dset_num, grid, idim, llen )
+ CALL CD_DIM_ONLY (cdfid, buff, llen, dim_only)
+ IF (dim_only) THEN
+ name = buff
+ GOTO 1000
+ ENDIF
+
#ifdef usingDODSf2cUnderscore
cdfstat = NF_INQ_DIMID_( cdfid, name(:nlen), dimid)
#else
@@ -230,20 +274,6 @@
cdfstat = NF_INQ_VARID( cdfid, name(:nlen), axid )
#endif
-* The dimension matches but there is no coord var. Just return.
-* This lets us append variables to a DSG file.
-
- IF (cdfstat .EQ. nf_enotvar) THEN
- name = line_name_orig(iaxis)
- nlen = TM_LENSTR1( name )
-
- ! Do we want this warning?
-c CALL WARN ('Dimension '//name(:nlen)//
-c . ' found. No corresponding coordinate variable.'//
-c . ' Writing with dimension only.')
- GOTO 1000
- ENDIF
-
IF ( cdfstat .NE. NF_NOERR ) GOTO 5300
IF (.NOT. recdim) THEN
slen = CD_AXLEN( cdfid, dimid, status )
@@ -437,13 +467,16 @@ c . ' Writing with dimension only.')
* If the user has not asked for bounds and if its a regular axis then
* do not write bounds attribute. (The bounds themselves arent written.)
- IF ( (STR_SAME(attname, 'bounds') .EQ. 0) .AND.
+ IF ( (STR_SAME(attname, 'bounds') .EQ. 0) .AND.
. ((line_regular(iaxis)) .AND. do_bounds.LE.0) )
. attoutflag = 0
* If they asked for /NOBOUNDS, dont write bounds even if the axis is irregular.
- IF ( (STR_SAME(attname, 'bounds') .EQ. 0) .AND.
- . ( do_bounds.LT.0) ) attoutflag = 0
+ IF ( STR_SAME(attname, 'bounds') .EQ. 0) THEN
+ name_bnds = name(:nlen)//'_bnds'
+ IF (name_bnds.NE.buff) buff = name_bnds
+ IF ( do_bounds.LT.0) attoutflag = 0
+ ENDIF
* If there is a _FillValue attributes on axes, refuse to write it.
@@ -914,8 +947,17 @@ c . ' Writing with dimension only.')
. .AND. ( edges_flag .EQ. 0)
. .AND. ( attoutflag .NE. 2) ) THEN
- name = name(:nlen)//'_bnds'
- elen = nlen + 5
+* bounds attribute may already be set up. If so use it, otherwise define bounds.
+ got_it = NC_GET_ATTRIB ( dset_num, varid, attname,
+ . do_warn, name_in, maxlen, attlen, attoutflag,
+ . buff, vals)
+ IF (got_it) THEN
+ name = name_bnds
+ elen = TM_LENSTR1(name)
+ ELSE
+ name = name(:nlen)//'_bnds'
+ elen = nlen + 5
+ ENDIF
* ... define the first dimension of bounds variable (what about record axis??)
diff --git a/fmt/src/cd_write_grid.F b/fmt/src/cd_write_grid.F
index 7814493..fe076bf 100644
--- a/fmt/src/cd_write_grid.F
+++ b/fmt/src/cd_write_grid.F
@@ -67,6 +67,8 @@
* V685 6/13 *acm* Dont add SAVE/NOCOORDS
* V687 3/14 *acm* Fix ticket 1750. Write Ferret-internal axis names to cdf files, unless
* the user has said /KEEP_AXISNAMES
+* V69+ 4/14 *acm* After the above fix, need a tweak to be able to append to files having
+* dimensions that are not coordinate variables
* argument definitions:
* cdfid - netCDF id number for already opened CDF file
@@ -99,7 +101,7 @@
CHARACTER*(*) gname
* local variable declarations:
- LOGICAL gmod, name_from_grid
+ LOGICAL gmod, name_from_grid, dim_only
INTEGER TM_LENSTR1,
. defid, defdim, nlen, slen, cdfstat, iaxis, idim, glen, i
CHARACTER CD_CHILDAX_NAME*132, CD_AXIS_OUTNAME*132, CD_AXIS_NAME*132,
@@ -203,7 +205,7 @@
. idim.EQ.recdim,
. lo(idim), hi(idim), pcdf_full_span,
. edges_flag, do_bounds, mode_upcase_output,
- . keepax_flag, name_from_grid, status )
+ . keepax_flag, name_from_grid, dim_only, status )
IF ( status .NE. merr_ok ) GOTO 5900
ENDIF
diff --git a/fmt/src/cd_write_var.F b/fmt/src/cd_write_var.F
index af5d9f7..8669a24 100644
--- a/fmt/src/cd_write_var.F
+++ b/fmt/src/cd_write_var.F
@@ -74,6 +74,9 @@
* V685 6/13 *acm* Dont add SAVE/NOCOORDS
* V687 3/14 *acm* Fix ticket 1750. Write Ferret-internal axis names to cdf files, unless
* the user has said /KEEP_AXISNAMES
+* V69+ 7/14 *acm* Further fix to 1750. Ticket 2182: Keep case of axis name consistent when
+* creating and writing axis bounds.
+* V69+ *acm* 9/14 Ticket 1758. Memory request uses number of blocks not words
* argument definitions:
* cdfid - netCDF id number for already opened CDF file
@@ -115,12 +118,12 @@
* local variable declarations:
* *kob* explicit definitions not allowed on decl line in linux...
* moved it to parameter line 10/96
- INTEGER TM_LENSTR1,
+ INTEGER TM_LENSTR1, STR_SAME,
. start(nferdims), count(nferdims), idim, iaxis, cdfstat, vlen,
. slab_min(nferdims), slab_max(nferdims), tmrecax, cdrecax, dims, varid,
. hilim, i100, i, j, k, l, m, n, recaxvar, lorec, hirec, rectyp,
. vartyp, nvdim, vdims(8), nvatts, bndstart(2), bndcount(2),
- . mblk1, nblks, npts, savecount
+ . mblk1, nblks, npts, savecount, llen, grid_blocks
LOGICAL CD_GET_BOUNDS, TM_ABSTRACT_AXIS, TM_DFPEQ,
. got_it, scaled, writebounds
CHARACTER*13 TM_STRING
@@ -326,7 +329,10 @@ c EQUIVALENCE (r100_8, r100_4)
* allocate memory for missing-data
- CALL GET_MEMORY( npts*4, mblk1, nblks, status )
+* COMPUTE # BLOCKS NEEDED
+ grid_blocks = ( npts*4 + mem_blk_size - 1 ) / mem_blk_size
+
+ CALL GET_MEMORY( npts*4, grid_blocks, mblk1, nblks, status )
IF ( status .NE. merr_ok ) GOTO 5900
CALL CD_GET_MISSING_FLAG (cdfid, varid, vname, .TRUE.,
@@ -402,12 +408,21 @@ c EQUIVALENCE (r100_8, r100_4)
name = CD_AXIS_NAME( dset, grid, tmrecax, nlen )
IF (keepax_flag .EQ. 1) name = CD_AXIS_OUTNAME( dset, grid, tmrecax, nlen )
-
-* If mode upcase_output is set, then upcase axis name.
+
+* If mode upcase_output is set, then upcase the name
IF (mode_upcase_output) THEN
CALL STR_UPCASE( buff, name)
name = buff
+
+* If not mode upcase_output, then keep the incoming case.
+ ELSE
+ name = CD_AXIS_NAME( dset, grid, tmrecax, nlen )
+ buff = CD_AXIS_OUTNAME( dset, grid, tmrecax, llen )
+ IF (STR_SAME(name, buff) .EQ. 0) THEN
+ name = buff
+ nlen = llen
+ ENDIF
ENDIF
name = name(:nlen)//'_bnds'
diff --git a/fmt/src/ez_count_dset.F b/fmt/src/ez_count_dset.F
new file mode 100644
index 0000000..5e74cff
--- /dev/null
+++ b/fmt/src/ez_count_dset.F
@@ -0,0 +1,242 @@
+ SUBROUTINE EZ_COUNT_DSET ( dset, ezform, nread, 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.
+*
+* Ansley Manke 7/2014
+*
+* Subroutine opens an EZ data set (ASCII and unformatted non_TMAP data files)
+* and returns a count count the records in the datset, minus the number of
+* records skipped. Addressing ticket 2182.
+*
+
+* Arguments:
+* dset - data set number
+* ezform - file format
+* nread - (output) number of data records in file
+*
+ INTEGER*4 dset, nread, status
+ CHARACTER*(*) ezform
+
+*
+* Include files
+ include 'ez_lib.parm'
+ include 'tmap_dims.parm'
+#include "tmap_dset.parm"
+ include 'tmap_errors.parm'
+ include 'xez_info.cmn_text'
+ external xez_info_data
+ include 'xez_order.cmn_text'
+ include 'xdset_info.cmn_text'
+ external xdset_info_data
+ include 'xstep_files.cmn_text'
+ external xstep_files_data
+*
+*internal parameter declarations *kob* 4apr94
+ CHARACTER*1 cr,lf
+#ifdef NO_INTRINSIC_IN_PARAMETER
+ PARAMETER ( cr = o'015',
+ . lf = o'012')
+#else
+ PARAMETER ( cr = CHAR(13),
+ . lf = CHAR(10))
+#endif
+
+* Local definitions
+ CHARACTER*11 file_format
+ CHARACTER*80 errbuff
+ CHARACTER*99 in_format
+ INTEGER*4 sfcnt, lunit, scnt, rcnt
+ INTEGER*4 skip_in, read_in, nout
+ INTEGER*4 itemp, i, irec, ierr
+ LOGICAL unformatted, file_exists, file_open, stream
+ REAL buff
+
+* Does data set exist?
+ IF (ds_name(dset) .EQ. char_init1024) GOTO 9300
+*
+* Locate Step file entry
+ DO 10 sfcnt = 1,maxstepfiles
+ IF (sf_setnum(sfcnt) .EQ. dset) GOTO 20
+ 10 CONTINUE
+ GOTO 9400
+
+* Initialize
+ 20 nread = 0
+
+* get file format
+ stream = ezform(:3) .EQ. 'STR'
+ unformatted = ezform(:3) .EQ. 'UNF'
+ IF ( unformatted ) THEN
+ file_format = 'UNFORMATTED'
+ ELSE
+ file_format = 'FORMATTED'
+ in_format = ezform ! Run time format info
+ ENDIF
+
+* set up ASSIGN statements (for GOTO variable statements)
+ IF ( unformatted ) THEN
+ ASSIGN 400 TO skip_in ! Goes to UNFORMATTED read
+ ASSIGN 500 TO read_in ! Goes to UNFORMATTED read
+ ELSEIF ( in_format(:4) .EQ. 'FREE' ) THEN
+ ASSIGN 450 TO skip_in ! Goes to FORMATTED read
+ ASSIGN 610 TO read_in ! Goes to FORMATTED read
+ ELSEIF ( stream ) THEN ! "STREAM" direct access binary
+ ASSIGN 499 TO skip_in
+ ASSIGN 620 TO read_in
+ irec = sf_skip(sfcnt) + 1 ! /SKIP=words
+ ELSE
+ ASSIGN 450 TO skip_in ! Goes to FORMATTED read
+ ASSIGN 600 TO read_in ! Goes to FORMATTED read
+ ENDIF
+
+* Check file validity if necessary
+ 160 IF (.NOT. sf_valid(sfcnt)) THEN
+! INQUIRE ( FILE = sf_name(sfcnt), ! sf_name is too short 10/89
+ INQUIRE ( FILE = ds_des_name(dset),
+ . RECL = itemp, ! temporary var needed by DEC/RISC
+ . EXIST = file_exists,
+ . OPENED = file_open,
+ . ERR = 9000)
+ IF (.NOT. file_exists) GOTO 9100
+* calculate RECL in longwords for unformatted (if not open)
+ IF (.NOT. file_open .AND. unformatted )
+ . sf_reclen(sfcnt) = sf_reclen(sfcnt)/4
+ ENDIF
+*
+* get free VMS logical unit #
+ CALL LIB_GET_LUN (lunit)
+*
+* open the file
+
+ IF ( stream ) THEN ! 5/94
+ OPEN (UNIT = lunit,
+ . FILE = ds_des_name(dset),
+ . FORM = 'UNFORMATTED',
+ . ACCESS = 'DIRECT',
+#ifdef reclen_in_bytes
+ . RECL = 4,
+#else
+ . RECL = 1,
+#endif
+ . STATUS = 'OLD',
+ . ERR = 9000)
+ ELSE
+* added ifdef for READONLY_ALLOWED for IBM port *kob* 4apr94
+ OPEN (UNIT = lunit,
+ . FILE = ds_des_name(dset),
+ . FORM = file_format,
+ . ACCESS = 'SEQUENTIAL',
+ . STATUS = 'OLD',
+#ifdef READONLY_ALLOWED
+ . READONLY,
+#endif
+ . ERR = 9000)
+ ENDIF
+
+*
+* read "SKIP" records and initialize records read counter
+ GOTO skip_in
+ 400 DO 425 scnt = 1,sf_skip(sfcnt)
+ 425 READ (lunit,END=9200,ERR=9000)
+ GOTO 499
+ 450 DO 475 scnt = 1,sf_skip(sfcnt)
+ 475 READ (lunit,'(1X)',END=9200,ERR=9000)
+ 499 nout = 0 ! is number of values (per var) read so far
+*
+* Read depending on format, nrec counts number of records read
+ GOTO read_in
+* ... binary data
+
+ 500 READ (lunit,END=800,ERR=9500)
+
+ GOTO 690
+* ... fixed format data
+ 600 READ (lunit,*,END=800,ERR=9500)
+ GOTO 690
+
+* ... free format data
+ 610 READ (lunit,*,END=800,ERR=9500)
+ GOTO 690
+
+* ... stream
+ 620 READ (lunit,rec=irec,ERR=9600) buff
+ irec = irec + 1
+
+ 690 nout = nout + 1
+ GOTO read_in
+*
+* Finished, store records read and then exit
+ 800 nread = nout
+ status = merr_ok
+ GOTO 9950
+*
+* Error message
+ 9000 CALL TM_ERRMSG( merr_erreq, status, 'EZ_COUNT',
+ . dset, sfcnt, 'during SKIP reads',
+ . no_errstring, *9999 )
+
+ 9100 CALL TM_ERRMSG( merr_notmounted, status, 'EZ_COUNT',
+ . dset, sfcnt, 'DATAFILE NOT FOUND',
+ . no_errstring, *9999 )
+
+ 9200 CALL TM_ERRMSG( merr_eof, status, 'EZ_COUNT',
+ . dset, sfcnt,
+ . 'during SKIP reads', no_errstring, *9950 )
+
+ 9300 CALL TM_ERRMSG( merr_dsetnf, status, 'EZ_COUNT',
+ . no_descfile, no_stepfile,
+ . no_errstring, no_errstring, *9999)
+
+ 9400 CALL TM_ERRMSG( merr_stepnf, status, 'EZ_COUNT',
+ . dset, no_stepfile,
+ . no_errstring, no_errstring, *9999)
+
+ 9500 BACKSPACE lunit
+ READ (lunit,'(A)') errbuff
+ CALL TM_ERRMSG( merr_erreq, status, 'EZ_COUNT',
+ . dset, sfcnt,
+ . 'Last or next-to-last record read:'//cr//lf//errbuff,
+ . no_errstring, *9999 )
+
+ 9600 CALL TM_ERRMSG( merr_erreq, status, 'EZ_COUNT',
+ . dset, no_stepfile,
+ . 'error reading STREAM file', no_errstring, *9999)
+
+*
+* Close file and free lunit
+ 9950 CLOSE (lunit, ERR=9990)
+ 9990 CALL LIB_FREE_LUN (lunit)
+ sf_lunit(sfcnt) = file_not_open ! *sh* added 5/91
+ 9999 RETURN
+ END
diff --git a/fmt/src/tm_fmt.F b/fmt/src/tm_fmt.F
index 9886b29..20430cc 100644
--- a/fmt/src/tm_fmt.F
+++ b/fmt/src/tm_fmt.F
@@ -325,6 +325,7 @@
ind = INDEX(outstring, '0E')
ENDDO
ENDIF
+ str_len = TM_LENSTR1( outstring )
TM_FMT = outstring
RETURN
diff --git a/fmt/src/tm_secs_to_date.F b/fmt/src/tm_secs_to_date.F
index c7b274b..0a01975 100644
--- a/fmt/src/tm_secs_to_date.F
+++ b/fmt/src/tm_secs_to_date.F
@@ -56,7 +56,9 @@
* *ACm* 4/24/01 INT(tot_days/366. + 307./366.) is 0 under linux,
* when the expression is 1. Use simple IF test on
* tot_days instead to see if we're before or after day 59.
-* V63 *acm* 10/09 Changes for gfortran build
+* V692 *acm* 10/14 Trap errors in year, month, day etc before making the string
+* V693 *acm* 11/13 back off previous change. Out-of-range time info is handled
+* elsewhere (Prev. change caused ticket 2116).
* Argument definitions
REAL*8 num_secs
@@ -317,6 +319,7 @@ c acm tmp_days = tot_days - leapadj*INT(tot_days/366. + 307./366.)
END IF
* Put it in a string
+
WRITE (tempstr,1000,ERR=5000) day, month_names(month),
. year, hour, minute, second
@@ -328,6 +331,7 @@ c acm tmp_days = tot_days - leapadj*INT(tot_days/366. + 307./366.)
5000 CALL TM_ERRMSG (merr_erreq, status, 'TM_SECS_TO_DATE',
. no_descfile, no_stepfile,
. no_errstring, no_errstring, *9000)
+
9000 STOP
* finished
diff --git a/fmt/src/xerror_text_data.F b/fmt/src/xerror_text_data.F
index 2cd0fe9..86086db 100644
--- a/fmt/src/xerror_text_data.F
+++ b/fmt/src/xerror_text_data.F
@@ -157,4 +157,6 @@
. /'error opening remote data file '/,
. msg_regular(merr_chunk_spec-pregular)
. /'error specifying chunk sizes '/
+ . msg_regular(merr_time_string-pregular)
+ . /'error creating time string '/
END
diff --git a/jnls/contrib/regressxy.jnl b/jnls/contrib/regressxy.jnl
deleted file mode 100644
index 0c2a65e..0000000
--- a/jnls/contrib/regressxy.jnl
+++ /dev/null
@@ -1,46 +0,0 @@
-\CANCEL MODE VERIFY
-! Contributed by Andreas Schmittner 31 Oct 2001
-! Corrections by Jian Ma 08 Aug 2009
-!
-!
-! Description: define FERRET variables for regression along the X and Y axis
-
-say ... Linear Regression In the XY Plane
-say ... Instructions:
-say Use the LET command to define new variables
-say Define the variable P as your independent (X) variable
-say Define the variable Q as your dependent (Y) variable
-say Results will be variables "SLOPE", "INTERCEP" and "RSQUARE"
-say QHAT will be the regression estimate
-say Note: If "Y" is your independent variable then
-say ... "SET GRID Q" after defining Q.
-say ...
-
-let pq = p*q
-let pqmask = pq-pq ! 0 or "missing" so all variables share the same
-missing
-let pmasked = p + pqmask
-let qmasked = q + pqmask
-let pp = pmasked*pmasked
-let qq = qmasked*qmasked
-
-let pave = pmasked[x=@ave,y=@ave]
-let qave = qmasked[x=@ave,y=@ave]
-let pqave = pq[x=@ave,y=@ave]
-let ppave = pp[x=@ave,y=@ave]
-let qqave = qq[x=@ave,y=@ave]
-
-let pvar = ppave - pave*pave
-let qvar = qqave - qave*qave
-let pqvar = pqave - pave*qave
-
-let slope = pqvar / pvar
-let intercep = qave - slope*pave
-let qhat = slope*p + intercep
-let rsquare = (pqvar*pqvar) / (pvar*qvar)
-let corr = pqvar/(pvar*qvar)^0.5
-
-SET MODE/LAST VERIFY
-
-
-
diff --git a/jnls/go/polymark.jnl b/jnls/go/polymark.jnl
index 21df7fd..5681154 100644
--- a/jnls/go/polymark.jnl
+++ b/jnls/go/polymark.jnl
@@ -26,7 +26,7 @@
! examples
! GO polymark polygon/over/key lon lat sst diamond
-
+!
! In detail, set cruise track and plot on a map:
! yes? LET xpts = 180 + 50*COS(2*3.14*I[I=1:50]/60)
! yes? LET ypts = 15 + 20*SIN(2*3.14*I[I=1:50]/60)
@@ -35,7 +35,12 @@
! yes? GO basemap x=120:250 Y=25s:65n 20
!
! yes? GO polymark polygon/over/key/title="SST" xpts,ypts,sst,ex, 0.5
-
+!
+! NOTE: This script will fail if the polygon command contains a comma.
+! To specify multiple options, i.e. /key=cont,horiz put the qualifier's
+! arguments in quotes:
+!
+! yes? GO polymark polygon/over/key="center,horiz" xpts,ypts,var
! argument check
QUERY/IGNORE $1"<usage: yes? GO polymark polygon_command xpts ypts [values] [shape] [scale]"
diff --git a/palettes/QC_V3_by_level.spk b/palettes/QC_V3_by_level.spk
new file mode 100644
index 0000000..6d7197c
--- /dev/null
+++ b/palettes/QC_V3_by_level.spk
@@ -0,0 +1,16 @@
+RGB_Mapping By_Level
+
+! Level Red Green Blue
+
+ 1 0 0 100 ! blue A
+ 2 0 60 30 ! green B
+ 3 100 90 0 ! yellow C
+ 4 100 0 0 ! bright red D
+ 5 77 68 52 ! tan E Experimental
+ 6 70 0 100 ! purple F
+ 7 80 90 10 ! light green N New
+ 8 100 70 100 ! pink Q Conflicting
+ 9 0 100 100 ! cyan U Updated
+ 10 100 70 0 ! orange S Suspended
+ 11 20 20 20 ! Dk Gray X Excluded
+
diff --git a/palettes/QC_regions.spk b/palettes/QC_regions.spk
new file mode 100644
index 0000000..57c7b3f
--- /dev/null
+++ b/palettes/QC_regions.spk
@@ -0,0 +1,14 @@
+RGB_Mapping By_level
+
+! Level Red Green Blue
+ 1 100 10 0 ! bright red
+ 2 0 0 100 ! blue
+ 3 50 100 10 ! light green
+ 4 100 90 0 ! yellow
+ 5 85 0 100 ! purple
+ 6 0 100 100 ! light blue
+ 7 90 88 69 ! Lt tan
+ 8 100 70 00 ! orange 100 50 0
+ 9 0 60 30 ! green
+
+
diff --git a/palettes/brown_soft.spk b/palettes/brown_soft.spk
new file mode 100644
index 0000000..86e4f83
--- /dev/null
+++ b/palettes/brown_soft.spk
@@ -0,0 +1,2 @@
+ 0 74 60 48
+100 74 60 48
diff --git a/palettes/coralreefwatch_dhw.spk b/palettes/coralreefwatch_dhw.spk
new file mode 100644
index 0000000..54a4896
--- /dev/null
+++ b/palettes/coralreefwatch_dhw.spk
@@ -0,0 +1,18 @@
+RGB_Mapping By_Value
+ 0.00 0.0 0.0 0.0
+ 1.00 39.2 39.2 100.0
+ 2.00 39.2 39.2 78.4
+ 3.00 39.2 39.2 58.8
+ 4.00 0.0 54.9 0.0
+ 5.00 58.8 66.7 0.0
+ 6.00 78.4 78.4 0.0
+ 7.00 58.8 78.4 0.0
+ 8.00 78.4 100.0 47.1
+ 9.00 100.0 100.0 0.0
+ 10.00 100.0 78.4 0.0
+ 11.00 100.0 62.7 0.0
+ 12.00 100.0 49.0 0.0
+ 13.00 78.4 19.6 39.2
+ 14.00 68.6 19.6 29.4
+ 15.00 58.8 0.0 58.8
+ 16.00 78.4 0.0 78.4
diff --git a/palettes/coralreefwatch_dhw_pct_white.spk b/palettes/coralreefwatch_dhw_pct_white.spk
new file mode 100644
index 0000000..d5795e5
--- /dev/null
+++ b/palettes/coralreefwatch_dhw_pct_white.spk
@@ -0,0 +1,21 @@
+RGB_Mapping Percent
+ 0.00 98.0 98.0 98.0
+ 0.01 98.0 98.0 98.0
+ 6.25 39.2 39.2 100.0
+ 12.50 39.2 39.2 78.4
+ 18.75 39.2 39.2 58.8
+ 25.00 0.0 54.9 0.0
+ 31.25 58.8 66.7 0.0
+ 37.50 78.4 78.4 0.0
+ 43.75 58.8 78.4 0.0
+ 50.00 78.4 100.0 47.1
+ 56.25 100.0 100.0 0.0
+ 62.50 100.0 78.4 0.0
+ 68.75 100.0 62.7 0.0
+ 75.00 100.0 49.0 0.0
+ 81.25 78.4 19.6 39.2
+ 87.50 68.6 19.6 29.4
+ 93.75 58.8 0.0 58.8
+ 99.00 78.4 0.0 78.4
+ 100.00 75 75 75
+
\ No newline at end of file
diff --git a/palettes/coralreefwatch_dhw_percent.spk b/palettes/coralreefwatch_dhw_percent.spk
new file mode 100644
index 0000000..73da0ad
--- /dev/null
+++ b/palettes/coralreefwatch_dhw_percent.spk
@@ -0,0 +1,21 @@
+RGB_Mapping Percent
+ 0.00 0.0 0.0 0.0
+ 0.01 0.0 0.0 0.0
+ 6.25 39.2 39.2 100.0
+ 12.50 39.2 39.2 78.4
+ 18.75 39.2 39.2 58.8
+ 25.00 0.0 54.9 0.0
+ 31.25 58.8 66.7 0.0
+ 37.50 78.4 78.4 0.0
+ 43.75 58.8 78.4 0.0
+ 50.00 78.4 100.0 47.1
+ 56.25 100.0 100.0 0.0
+ 62.50 100.0 78.4 0.0
+ 68.75 100.0 62.7 0.0
+ 75.00 100.0 49.0 0.0
+ 81.25 78.4 19.6 39.2
+ 87.50 68.6 19.6 29.4
+ 93.75 58.8 0.0 58.8
+ 99.00 78.4 0.0 78.4
+ 100.00 75 75 75
+
\ No newline at end of file
diff --git a/palettes/coralreefwatch_hotspot.spk b/palettes/coralreefwatch_hotspot.spk
new file mode 100644
index 0000000..4f12027
--- /dev/null
+++ b/palettes/coralreefwatch_hotspot.spk
@@ -0,0 +1,127 @@
+ 0.39 100.0 100.0 100.0
+ 1.18 100.0 98.0 98.0
+ 1.96 100.0 96.5 96.9
+ 2.75 100.0 94.9 96.1
+ 3.53 100.0 93.3 95.7
+ 4.31 100.0 91.8 95.3
+ 5.10 100.0 90.2 95.3
+ 5.88 100.0 88.2 95.7
+ 6.67 100.0 86.7 96.5
+ 7.45 100.0 85.1 97.6
+ 8.24 100.0 83.5 98.8
+ 9.02 99.2 82.0 100.0
+ 9.80 97.3 80.4 100.0
+ 10.59 94.5 78.4 100.0
+ 11.37 92.2 76.9 100.0
+ 12.16 89.4 75.3 100.0
+ 12.94 86.3 73.7 100.0
+ 13.73 82.7 72.2 100.0
+ 14.51 79.2 70.6 100.0
+ 15.29 74.1 68.6 100.0
+ 16.08 69.8 67.1 100.0
+ 16.86 65.9 66.3 100.0
+ 17.65 64.3 67.8 100.0
+ 18.43 62.7 69.8 100.0
+ 19.22 61.2 72.2 100.0
+ 20.00 100.0 84.7 12.9
+ 20.78 100.0 84.7 12.9
+ 21.57 100.0 84.7 12.9
+ 22.35 100.0 84.7 12.9
+ 23.14 100.0 82.7 12.5
+ 23.92 100.0 82.7 12.5
+ 24.71 100.0 82.7 12.5
+ 25.49 100.0 80.4 12.2
+ 26.27 100.0 80.4 12.2
+ 27.06 100.0 80.4 12.2
+ 27.84 100.0 78.4 11.8
+ 28.63 100.0 78.4 11.8
+ 29.41 100.0 78.4 11.8
+ 30.20 100.0 76.1 11.4
+ 30.98 100.0 76.1 11.4
+ 31.76 100.0 76.1 11.4
+ 32.55 100.0 76.1 11.4
+ 33.33 100.0 74.1 11.0
+ 34.12 100.0 74.1 11.0
+ 34.90 100.0 74.1 11.0
+ 35.69 100.0 71.8 10.6
+ 36.47 100.0 71.8 10.6
+ 37.25 100.0 71.8 10.6
+ 38.04 100.0 69.8 10.2
+ 38.82 100.0 69.8 10.2
+ 39.61 100.0 69.8 10.2
+ 40.39 100.0 67.5 9.8
+ 41.18 100.0 67.5 9.8
+ 41.96 100.0 67.5 9.8
+ 42.75 100.0 65.1 9.4
+ 43.53 100.0 65.1 9.4
+ 44.31 100.0 65.1 9.4
+ 45.10 100.0 65.1 9.4
+ 45.88 100.0 62.7 9.0
+ 46.67 100.0 62.7 9.0
+ 47.45 100.0 62.7 9.0
+ 48.24 100.0 60.8 8.6
+ 49.02 100.0 60.8 8.6
+ 49.80 100.0 60.8 8.6
+ 50.59 100.0 58.4 8.2
+ 51.37 100.0 58.4 8.2
+ 52.16 100.0 58.4 8.2
+ 52.94 100.0 58.4 8.2
+ 53.73 100.0 56.1 7.8
+ 54.51 100.0 56.1 7.8
+ 55.29 100.0 56.1 7.8
+ 56.08 100.0 53.7 7.5
+ 56.86 100.0 53.7 7.5
+ 57.65 100.0 53.7 7.5
+ 58.43 100.0 51.4 7.1
+ 59.22 100.0 51.4 7.1
+ 60.00 100.0 51.4 7.1
+ 60.78 100.0 49.0 6.7
+ 61.57 100.0 49.0 6.7
+ 62.35 100.0 49.0 6.7
+ 63.14 100.0 46.7 6.3
+ 63.92 100.0 46.7 6.3
+ 64.71 100.0 46.7 6.3
+ 65.49 100.0 46.7 6.3
+ 66.27 100.0 44.3 5.9
+ 67.06 100.0 44.3 5.9
+ 67.84 100.0 44.3 5.9
+ 68.63 100.0 42.0 5.5
+ 69.41 100.0 42.0 5.5
+ 70.20 100.0 42.0 5.5
+ 70.98 100.0 39.2 5.1
+ 71.76 100.0 39.2 5.1
+ 72.55 100.0 39.2 5.1
+ 73.33 100.0 36.9 4.7
+ 74.12 100.0 36.9 4.7
+ 74.90 100.0 36.9 4.7
+ 75.69 100.0 34.5 4.3
+ 76.47 100.0 34.5 4.3
+ 77.25 100.0 34.5 4.3
+ 78.04 100.0 34.5 4.3
+ 78.82 100.0 31.8 5.1
+ 79.61 100.0 31.8 5.1
+ 80.39 100.0 31.8 5.1
+ 81.18 100.0 29.4 3.5
+ 81.96 100.0 29.4 3.5
+ 82.75 100.0 29.4 3.5
+ 83.53 100.0 27.1 3.1
+ 84.31 100.0 27.1 3.1
+ 85.10 100.0 27.1 3.1
+ 85.88 100.0 24.3 2.7
+ 86.67 100.0 24.3 2.7
+ 87.45 100.0 24.3 2.7
+ 88.24 100.0 22.0 2.4
+ 89.02 100.0 22.0 2.4
+ 89.80 100.0 22.0 2.4
+ 90.59 100.0 22.0 2.4
+ 91.37 100.0 19.2 2.0
+ 92.16 100.0 19.2 2.0
+ 92.94 100.0 19.2 2.0
+ 93.73 100.0 16.5 1.6
+ 94.51 100.0 16.5 1.6
+ 95.29 100.0 16.5 1.6
+ 96.08 100.0 14.1 1.2
+ 96.86 100.0 14.1 1.2
+ 97.65 100.0 14.1 1.2
+ 98.43 100.0 11.4 0.8
+ 99.22 100.0 11.4 0.8
diff --git a/palettes/coralreefwatch_sst.spk b/palettes/coralreefwatch_sst.spk
new file mode 100644
index 0000000..ed37852
--- /dev/null
+++ b/palettes/coralreefwatch_sst.spk
@@ -0,0 +1,127 @@
+ 0.39 0.0 0.0 0.0
+ 1.18 3.5 0.0 2.7
+ 1.96 7.1 0.0 5.5
+ 2.75 10.6 0.0 9.0
+ 3.53 14.1 0.0 12.5
+ 4.31 17.6 0.0 16.9
+ 5.10 21.2 0.0 20.8
+ 5.88 23.9 0.0 24.7
+ 6.67 26.7 0.0 28.2
+ 7.45 28.2 0.0 31.8
+ 8.24 30.2 0.0 35.7
+ 9.02 31.4 0.0 39.2
+ 9.80 32.5 0.0 42.7
+ 10.59 32.9 0.0 46.3
+ 11.37 34.1 0.0 49.8
+ 12.16 33.7 0.0 53.3
+ 12.94 34.1 0.0 56.9
+ 13.73 33.3 0.0 60.4
+ 14.51 32.9 0.0 63.9
+ 15.29 32.5 0.0 67.8
+ 16.08 30.6 0.0 71.4
+ 16.86 29.8 0.0 74.9
+ 17.65 27.5 0.0 78.4
+ 18.43 25.9 0.0 82.0
+ 19.22 22.7 0.0 85.5
+ 20.00 20.8 0.0 89.0
+ 20.78 16.9 0.0 92.5
+ 21.57 14.1 0.0 96.1
+ 22.35 9.8 0.0 100.0
+ 23.14 6.3 0.0 100.0
+ 23.92 1.6 0.0 100.0
+ 24.71 0.0 1.6 100.0
+ 25.49 0.0 6.3 100.0
+ 26.27 0.0 9.8 100.0
+ 27.06 0.0 14.9 100.0
+ 27.84 0.0 18.0 100.0
+ 28.63 0.0 21.6 100.0
+ 29.41 0.0 26.3 100.0
+ 30.20 0.0 29.8 100.0
+ 30.98 0.0 34.9 100.0
+ 31.76 0.0 38.0 100.0
+ 32.55 0.0 43.1 100.0
+ 33.33 0.0 46.7 100.0
+ 34.12 0.0 51.4 100.0
+ 34.90 0.0 54.9 100.0
+ 35.69 0.0 59.6 100.0
+ 36.47 0.0 63.1 100.0
+ 37.25 0.0 68.2 100.0
+ 38.04 0.0 71.4 100.0
+ 38.82 0.0 76.5 100.0
+ 39.61 0.0 79.6 100.0
+ 40.39 0.0 84.7 100.0
+ 41.18 0.0 88.2 100.0
+ 41.96 0.0 91.4 100.0
+ 42.75 0.0 96.5 100.0
+ 43.53 0.0 100.0 100.0
+ 44.31 0.0 100.0 94.9
+ 45.10 0.0 100.0 91.4
+ 45.88 0.0 100.0 86.3
+ 46.67 0.0 100.0 83.1
+ 47.45 0.0 100.0 78.0
+ 48.24 0.0 100.0 74.9
+ 49.02 0.0 100.0 69.8
+ 49.80 0.0 100.0 66.7
+ 50.59 0.0 100.0 61.6
+ 51.37 0.0 100.0 58.0
+ 52.16 0.0 100.0 52.9
+ 52.94 0.0 100.0 49.8
+ 53.73 0.0 100.0 44.7
+ 54.51 0.0 100.0 41.6
+ 55.29 0.0 100.0 38.0
+ 56.08 0.0 100.0 32.9
+ 56.86 0.0 100.0 29.8
+ 57.65 0.0 100.0 24.7
+ 58.43 0.0 100.0 21.6
+ 59.22 0.0 100.0 16.5
+ 60.00 0.0 100.0 13.3
+ 60.78 0.0 100.0 8.2
+ 61.57 0.0 100.0 4.7
+ 62.35 0.0 100.0 0.0
+ 63.14 3.1 100.0 0.0
+ 63.92 8.2 100.0 0.0
+ 64.71 11.4 100.0 0.0
+ 65.49 16.5 100.0 0.0
+ 66.27 20.0 100.0 0.0
+ 67.06 24.7 100.0 0.0
+ 67.84 28.2 100.0 0.0
+ 68.63 31.4 100.0 0.0
+ 69.41 36.5 100.0 0.0
+ 70.20 39.6 100.0 0.0
+ 70.98 44.7 100.0 0.0
+ 71.76 48.2 100.0 0.0
+ 72.55 52.9 100.0 0.0
+ 73.33 56.5 100.0 0.0
+ 74.12 61.6 100.0 0.0
+ 74.90 64.7 100.0 0.0
+ 75.69 69.8 100.0 0.0
+ 76.47 73.3 100.0 0.0
+ 77.25 78.0 100.0 0.0
+ 78.04 81.6 100.0 0.0
+ 78.82 86.7 100.0 0.0
+ 79.61 89.8 100.0 0.0
+ 80.39 94.9 100.0 0.0
+ 81.18 98.0 100.0 0.0
+ 81.96 100.0 98.0 0.0
+ 82.75 100.0 93.3 0.0
+ 83.53 100.0 89.8 0.0
+ 84.31 100.0 84.7 0.0
+ 85.10 100.0 81.6 0.0
+ 85.88 100.0 76.5 0.0
+ 86.67 100.0 73.3 0.0
+ 87.45 100.0 68.2 0.0
+ 88.24 100.0 64.7 0.0
+ 89.02 100.0 60.0 0.0
+ 89.80 100.0 56.5 0.0
+ 90.59 100.0 51.4 0.0
+ 91.37 100.0 48.2 0.0
+ 92.16 100.0 43.1 0.0
+ 92.94 100.0 40.0 0.0
+ 93.73 100.0 34.9 0.0
+ 94.51 100.0 31.4 0.0
+ 95.29 100.0 28.2 0.0
+ 96.08 100.0 23.1 0.0
+ 96.86 100.0 20.0 0.0
+ 97.65 100.0 14.9 0.0
+ 98.43 100.0 11.4 0.0
+ 99.22 100.0 6.7 0.0
diff --git a/palettes/coralreefwatch_sstanomaly.spk b/palettes/coralreefwatch_sstanomaly.spk
new file mode 100644
index 0000000..9f0eb24
--- /dev/null
+++ b/palettes/coralreefwatch_sstanomaly.spk
@@ -0,0 +1,128 @@
+ 0.39 0.0 0.0 0.0
+ 1.18 3.5 0.0 2.7
+ 1.96 7.1 0.0 5.5
+ 2.75 10.6 0.0 9.0
+ 3.53 12.2 0.0 11.0
+ 4.31 15.7 0.0 14.9
+ 5.10 19.6 0.0 18.8
+ 5.88 21.2 0.0 20.8
+ 6.67 23.9 0.0 24.7
+ 7.45 26.7 0.0 28.2
+ 8.24 28.2 0.0 31.8
+ 9.02 29.0 0.0 33.7
+ 9.80 31.0 0.0 37.3
+ 10.59 32.2 0.0 40.8
+ 11.37 33.3 0.0 44.3
+ 12.16 32.9 0.0 46.3
+ 12.94 34.1 0.0 49.8
+ 13.73 33.7 0.0 53.3
+ 14.51 34.1 0.0 56.9
+ 15.29 34.1 0.0 58.8
+ 16.08 32.9 0.0 62.4
+ 16.86 32.9 0.0 65.9
+ 17.65 32.5 0.0 67.8
+ 18.43 30.6 0.0 71.4
+ 19.22 29.8 0.0 74.9
+ 20.00 27.5 0.0 78.4
+ 20.78 26.7 0.0 80.0
+ 21.57 23.5 0.0 83.9
+ 22.35 21.6 0.0 87.5
+ 23.14 18.0 0.0 91.0
+ 23.92 16.9 0.0 92.5
+ 24.71 14.1 0.0 96.1
+ 25.49 9.8 0.0 100.0
+ 26.27 6.3 0.0 100.0
+ 27.06 4.7 0.0 100.0
+ 27.84 0.0 0.0 100.0
+ 28.63 0.0 3.1 100.0
+ 29.41 0.0 6.3 100.0
+ 30.20 0.0 9.8 100.0
+ 30.98 0.0 14.9 100.0
+ 31.76 0.0 18.0 100.0
+ 32.55 0.0 20.0 100.0
+ 33.33 0.0 24.7 100.0
+ 34.12 0.0 28.2 100.0
+ 34.90 0.0 32.9 100.0
+ 35.69 0.0 34.9 100.0
+ 36.47 0.0 38.0 100.0
+ 37.25 0.0 43.1 100.0
+ 38.04 0.0 46.7 100.0
+ 38.82 0.0 49.8 100.0
+ 39.61 0.0 52.9 100.0
+ 40.39 0.0 56.5 100.0
+ 41.18 0.0 59.6 100.0
+ 41.96 0.0 63.1 100.0
+ 42.75 0.0 68.2 100.0
+ 43.53 0.0 71.4 100.0
+ 44.31 0.0 73.3 100.0
+ 45.10 0.0 78.0 100.0
+ 45.88 0.0 81.6 100.0
+ 46.67 0.0 86.3 100.0
+ 47.45 0.0 88.2 100.0
+ 48.24 0.0 91.4 100.0
+ 49.02 0.0 96.5 100.0
+ 49.80 0.0 100.0 100.0
+ 50.20 94.9 100.0 0.0
+ 50.59 94.9 100.0 0.0
+ 51.37 94.9 100.0 0.0
+ 52.16 96.5 100.0 0.0
+ 52.94 98.0 100.0 0.0
+ 53.73 100.0 100.0 0.0
+ 54.51 100.0 98.0 0.0
+ 55.29 100.0 98.0 0.0
+ 56.08 100.0 94.9 0.0
+ 56.86 100.0 93.3 0.0
+ 57.65 100.0 91.4 0.0
+ 58.43 100.0 89.8 0.0
+ 59.22 100.0 89.8 0.0
+ 60.00 100.0 86.7 0.0
+ 60.78 100.0 84.7 0.0
+ 61.57 100.0 83.1 0.0
+ 62.35 100.0 81.6 0.0
+ 63.14 100.0 81.6 0.0
+ 63.92 100.0 78.0 0.0
+ 64.71 100.0 76.5 0.0
+ 65.49 100.0 74.9 0.0
+ 66.27 100.0 73.3 0.0
+ 67.06 100.0 73.3 0.0
+ 67.84 100.0 69.8 0.0
+ 68.63 100.0 68.2 0.0
+ 69.41 100.0 66.7 0.0
+ 70.20 100.0 64.7 0.0
+ 70.98 100.0 64.7 0.0
+ 71.76 100.0 63.1 0.0
+ 72.55 100.0 60.0 0.0
+ 73.33 100.0 58.0 0.0
+ 74.12 100.0 56.5 0.0
+ 74.90 100.0 56.5 0.0
+ 75.69 100.0 54.9 0.0
+ 76.47 100.0 51.4 0.0
+ 77.25 100.0 49.8 0.0
+ 78.04 100.0 48.2 0.0
+ 78.82 100.0 48.2 0.0
+ 79.61 100.0 46.7 0.0
+ 80.39 100.0 43.1 0.0
+ 81.18 100.0 41.6 0.0
+ 81.96 100.0 40.0 0.0
+ 82.75 100.0 40.0 0.0
+ 83.53 100.0 38.0 0.0
+ 84.31 100.0 34.9 0.0
+ 85.10 100.0 33.3 0.0
+ 85.88 100.0 31.4 0.0
+ 86.67 100.0 31.4 0.0
+ 87.45 100.0 29.8 0.0
+ 88.24 100.0 28.2 0.0
+ 89.02 100.0 24.7 0.0
+ 89.80 100.0 23.1 0.0
+ 90.59 100.0 23.1 0.0
+ 91.37 100.0 21.6 0.0
+ 92.16 100.0 20.0 0.0
+ 92.94 100.0 16.5 0.0
+ 93.73 100.0 14.9 0.0
+ 94.51 100.0 14.9 0.0
+ 95.29 100.0 13.3 0.0
+ 96.08 100.0 11.4 0.0
+ 96.86 100.0 8.2 0.0
+ 97.65 100.0 6.7 0.0
+ 98.43 100.0 6.7 0.0
+ 99.22 100.0 4.7 0.0
diff --git a/palettes/fifteen_by_levels.spk b/palettes/fifteen_by_levels.spk
new file mode 100644
index 0000000..5eaa0ee
--- /dev/null
+++ b/palettes/fifteen_by_levels.spk
@@ -0,0 +1,18 @@
+RGB_Mapping By_level
+
+! Level Red Green Blue
+ 1 0 100 0 ! light green
+ 2 100 100 0 ! yellow
+ 3 100 0 0 ! bright red
+ 4 0 0 100 ! blue
+ 5 100 85 10 ! gold 100 85 0
+ 6 100 0 100 ! magenta
+ 7 60 0 25 ! dark red
+ 8 0 100 100 ! turquoise
+ 9 100 50 0 ! orange
+ 10 60 0 100 ! purple
+ 11 60 80 100 ! light blue
+ 12 0 60 15 ! green
+ 13 100 60 70 ! pink
+ 14 80 73 59 ! tan
+ 15 66 56 10 ! olive
diff --git a/palettes/green_pine.spk b/palettes/green_pine.spk
new file mode 100644
index 0000000..fc11172
--- /dev/null
+++ b/palettes/green_pine.spk
@@ -0,0 +1,2 @@
+ 0 0 30 20
+ 100 0 30 20
diff --git a/palettes/pale_green_blue.spk b/palettes/pale_green_blue.spk
new file mode 100644
index 0000000..a4da0fc
--- /dev/null
+++ b/palettes/pale_green_blue.spk
@@ -0,0 +1,9 @@
+! based on yellow_green_blue, with darker green at start
+ 0.0 92.6 96.9 69.1
+ 10.0 77.7 91.0 70.3
+ 20.5 49.6 80.1 73.0
+ 50.0 25.4 71.1 76.6
+ 62.5 11.3 56.6 75.0
+ 75.0 13.3 36.7 65.6
+ 87.5 10.5 20.3 57.8
+ 100.0 3.1 11.3 34.4
diff --git a/palettes/ten2_levels.spk b/palettes/ten2_levels.spk
new file mode 100644
index 0000000..5b479ed
--- /dev/null
+++ b/palettes/ten2_levels.spk
@@ -0,0 +1,13 @@
+RGB_Mapping By_level
+
+! Level Red Green Blue
+ 1 100.0 10.0 0.0 ! bright red
+ 2 0.0 0.0 100.0 ! blue
+ 3 0.0 60.0 30.0 ! green
+ 4 100.0 90.0 0.0 ! yellow
+ 5 70.0 0.0 100.0 ! purple
+ 6 70.0 0.0 0.0 ! dark red
+ 7 0.0 100.0 100.0 ! light blue
+ 8 100.0 55.0 0.0 ! orange 100.0 50.0 0.0
+ 9 50.0 100.0 10.0 ! light green
+ 10 66.0 56.0 10.0 ! olive
diff --git a/palettes/ten_bright_levels.spk b/palettes/ten_bright_levels.spk
new file mode 100644
index 0000000..2d4d158
--- /dev/null
+++ b/palettes/ten_bright_levels.spk
@@ -0,0 +1,15 @@
+RGB_Mapping By_level
+
+! Level Red Green Blue
+ 1 100 10 0 ! bright red
+ 2 0 0 100 ! blue
+ 3 50 100 10 ! light green
+ 4 100 90 0 ! yellow
+ 5 85 0 100 ! purple
+ 6 100 88 92 ! pink
+ 7 0 100 100 ! light blue
+ 8 90 88 69 ! Lt tan
+ 9 100 70 00 ! orange 100 50 0
+ 10 0 60 30 ! green
+
+
diff --git a/palettes/woce.spk b/palettes/woce.spk
new file mode 100644
index 0000000..090b971
--- /dev/null
+++ b/palettes/woce.spk
@@ -0,0 +1,7 @@
+RGB_Mapping By_value
+
+! Level Red Green Blue
+ 2 0 100 0 ! light green
+ 3 100 85 10 ! gold 100 85 0
+ 4 100 0 0 ! bright red
+
diff --git a/platform_specific.mk.i386-linux b/platform_specific.mk.i386-linux
index 5f68d3f..d026ff9 100644
--- a/platform_specific.mk.i386-linux
+++ b/platform_specific.mk.i386-linux
@@ -90,7 +90,7 @@ endif
# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
LD = $(shell which gfortran)
LD_DYN_FLAGS = -m32 -fPIC -shared -rdynamic -Xlinker --no-undefined \
- -L $(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
+ -L$(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
## cancel the default rule for .f -> .o to prevent objects from being built
## from .f files that are out-of-date with respect to their corresponding .F file
diff --git a/platform_specific.mk.i386-linux-gnu b/platform_specific.mk.i386-linux-gnu
index 2124329..614d8a0 100644
--- a/platform_specific.mk.i386-linux-gnu
+++ b/platform_specific.mk.i386-linux-gnu
@@ -46,8 +46,7 @@ endif
$(CAIRO_INCLUDE) \
-I/usr/include/pango-1.0 \
-I/usr/include/glib-2.0 \
- -I/usr/lib/glib-2.0/include \
- -I/usr/lib/i386-linux-gnu/glib-2.0/include \
+ -I/usr/lib/i386-linux-gnu/glib-2.0/include \
-I$(NETCDF4_DIR)/include
MYDEFINES = -Dcrptd_cat_argument \
@@ -91,7 +90,7 @@ endif
# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
LD = $(shell which gfortran)
LD_DYN_FLAGS = -m32 -fPIC -shared -rdynamic -Xlinker --no-undefined \
- -L $(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
+ -L$(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
## cancel the default rule for .f -> .o to prevent objects from being built
## from .f files that are out-of-date with respect to their corresponding .F file
diff --git a/platform_specific.mk.intel-mac b/platform_specific.mk.intel-mac
index 7fee2d4..8d06d0f 100644
--- a/platform_specific.mk.intel-mac
+++ b/platform_specific.mk.intel-mac
@@ -71,9 +71,8 @@
-ffixed-line-length-132 -fno-second-underscore -fno-backslash
# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
- LD = $(shell which gfortran)
- LD_DYN_FLAGS = -m64 -fPIC -shared -Wl,-bundle \
- -L $(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
+ LD = echo
+ LD_DYN_FLAGS =
## cancel the default rule for .f -> .o to prevent objects from being built
## from .f files that are out-of-date with respect to their corresponding .F file
@@ -91,5 +90,5 @@
$(FC) $(FFLAGS) -c $*.F -o $*.o
#
-# End of platform_specific.mk.x86_64-linux
+# End of platform_specific.mk.intel-mac
#
diff --git a/platform_specific.mk.x86_64-linux b/platform_specific.mk.x86_64-linux
index 2dcf35d..0c5ee85 100644
--- a/platform_specific.mk.x86_64-linux
+++ b/platform_specific.mk.x86_64-linux
@@ -94,8 +94,8 @@ endif
# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
LD = $(shell which gfortran)
LD_DYN_FLAGS = -m64 -fPIC -shared -rdynamic -Xlinker --no-undefined \
- -L $(DIR_PREFIX)/pyferret_install/lib64/$(PYTHON_EXE)/site-packages/pyferret \
- -L $(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
+ -L$(DIR_PREFIX)/pyferret_install/lib64/$(PYTHON_EXE)/site-packages/pyferret \
+ -L$(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
## cancel the default rule for .f -> .o to prevent objects from being built
## from .f files that are out-of-date with respect to their corresponding .F file
diff --git a/platform_specific.mk.x86_64-linux-gnu b/platform_specific.mk.x86_64-linux-gnu
index a7cf5bf..fb315ed 100644
--- a/platform_specific.mk.x86_64-linux-gnu
+++ b/platform_specific.mk.x86_64-linux-gnu
@@ -50,8 +50,7 @@ endif
$(CAIRO_INCLUDE) \
-I/usr/include/pango-1.0 \
-I/usr/include/glib-2.0 \
- -I/usr/lib64/glib-2.0/include \
- -I/usr/lib/x86_64-linux-gnu/glib-2.0/include \
+ -I/usr/lib/x86_64-linux-gnu/glib-2.0/include \
-I$(NETCDF4_DIR)/include
MYDEFINES = -Dcrptd_cat_argument \
@@ -95,8 +94,8 @@ endif
# LD and LD_DYN_FLAGS only used for generating ferret_ef_mem_subsc.so
LD = $(shell which gfortran)
LD_DYN_FLAGS = -m64 -fPIC -shared -rdynamic -Xlinker --no-undefined \
- -L $(DIR_PREFIX)/pyferret_install/lib64/$(PYTHON_EXE)/site-packages/pyferret \
- -L $(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
+ -L$(DIR_PREFIX)/pyferret_install/lib64/$(PYTHON_EXE)/site-packages/pyferret \
+ -L$(DIR_PREFIX)/pyferret_install/lib/$(PYTHON_EXE)/site-packages/pyferret
## cancel the default rule for .f -> .o to prevent objects from being built
## from .f files that are out-of-date with respect to their corresponding .F file
diff --git a/ppl/complot/symbel.F b/ppl/complot/symbel.F
index 14e1b82..933186a 100644
--- a/ppl/complot/symbel.F
+++ b/ppl/complot/symbel.F
@@ -70,6 +70,8 @@ C *ACM* 6/02 When there is a period or decimal point in the text, make
C a GKS dot there too, so it'll show up in small labels.
C *acm* 7/02 Take out the MARKER calls that made dots. This caused trouble
C when making encapsulated postscript from postscript.
+C *acm* 10/14 Ticket 2203: on the 64-bit machines, the \\ for backspace
+C should be \ .
C
C CALL SYMBEL(X,Y,DEGRES,HEIGHT,NCHAR,STRING)
C
@@ -274,6 +276,14 @@ C
IF(.NOT.ASCFNT.AND.(ICHR.EQ.'@'.OR.
* (ICHR.GE.'\'.AND.ICHR.LE.'_')))GOTO 80
#endif
+
+* Some compliers store '\\' as a single character, others see it
+* as '\'.
+
+ IF (KBKSP.NE.'\\') THEN
+ IF(.NOT.ASCFNT.AND.(ICHR.EQ.'@'.OR.
+ * (ICHR.GE.'\'.AND.ICHR.LE.'_')))GOTO 80
+ ENDIF
C
C CALCULATE POINTER
C
diff --git a/ppl/include/PLT.INC b/ppl/include/PLT.INC
index 9aa9e15..fb96eee 100644
--- a/ppl/include/PLT.INC
+++ b/ppl/include/PLT.INC
@@ -11,13 +11,14 @@ C**
C***********************************************************************
C**
C**
+* v691 5/14 *acm* Change name MOD to TEKMOD
c
- COMMON/PLT/ ICODE,WIDTH,HEIGHT,MOD,IR,LUN
+ COMMON/PLT/ ICODE,WIDTH,HEIGHT,TEKMOD,IR,LUN
c
c icode plot type
c width plot width (inches)
c height plot height (inches)
-c mod tek model number
+c tekmod tek model number
c ir baud rate
c lun output unit number (unused?)
c
diff --git a/ppl/plot/daxis.F b/ppl/plot/daxis.F
index 603901a..1c99f3c 100644
--- a/ppl/plot/daxis.F
+++ b/ppl/plot/daxis.F
@@ -59,6 +59,9 @@ C *acm* 10/09 Fix bug 1708: YAXIS2 call for log plots caused the tics for the
C *acm* 5/12 Only draw the axis labels the first time the axes are made.
C Axes are repeated so axis lines and graticule lines are on top
C of other plot elements but the labels dont need to be.
+C *acm* 10/14 bug 2205. Polygon plots have extra calls because polygons can get
+C drawn on topof axes. This(?) causes the main label to not get
+C finished. For polygon plots only, draw the main label twice.
C**
C** @(#)daxis.F 1.1 3/10/88
C**
@@ -132,7 +135,6 @@ C SETUP AXIS
LXB = 0
ENDIF
noylab = (ylab .EQ. ' ')
-
C
C DRAW AXIS, LEFT, RIGHT Y AXIS THEN TOP, BOTTOM XAXIS
C
@@ -224,6 +226,7 @@ C
C DRAW AXIS LABELS
C
1000 CONTINUE
- IF (mainlab .EQ. 1) CALL LABDRW(XF,YF,IFX,IFY)
+ IF (mainlab .GE. 1) CALL LABDRW(XF,YF,IFX,IFY)
+ CALL PPLGFLUSH
RETURN
END
diff --git a/ppl/plot/daxis2.F b/ppl/plot/daxis2.F
index ee2087e..c107873 100644
--- a/ppl/plot/daxis2.F
+++ b/ppl/plot/daxis2.F
@@ -48,6 +48,7 @@ C**
* MOD *JD* 10.91 to eliminate PLOT COMPLETE msg if in ferret
* MOD *sh* 6/99 with changes to IGRNPT call
* v552 *acm* 3/03 Changes for multi-line labels.
+* V69+ 5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
INCLUDE 'PARAMPL5.DAT'
INCLUDE 'AXIS.INC'
@@ -101,8 +102,8 @@ c line_spacing = 1.4
fontprefix = ""
penprefix = ""
DO 20 j = 1, numlines
- CALL getlabfonts (labs(i), lnbeg, lnend, j, npnew, nfnew,
- . newfont, newpen, ncr)
+ CALL getlabfonts (labs(i), lnbeg, lnend, j, fontprefix,
+ . npnew, nfnew, newfont, newpen, ncr)
NCR = lnend(j) - lnbeg(j) + 1
XMN=SYMWID(HLB,NCR+npen+nfont,
diff --git a/ppl/plot/labdrw.F b/ppl/plot/labdrw.F
index d1b8de1..4d5e906 100644
--- a/ppl/plot/labdrw.F
+++ b/ppl/plot/labdrw.F
@@ -47,6 +47,7 @@ C**
C *kob* 04/07/96 passed in character strings had to be declared
C with "*(*)" for the linux port
C *acm* v552 3/03 Longer strings and changes for multi-line labels.
+* V69+ 5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
INCLUDE 'PARAMPL5.DAT'
INCLUDE 'AXIS.INC'
@@ -95,8 +96,8 @@ C Y label. center each line
fontprefix = ""
penprefix = ""
DO 10 j = 1, numlines
- CALL getlabfonts (ylab, lnbeg, lnend, j, npnew, nfnew,
- . newfont, newpen, nchr)
+ CALL getlabfonts (ylab, lnbeg, lnend, j, fontprefix,
+ . npnew, nfnew, newfont, newpen, nchr)
YL=YLO+(YLEN-SYMWID(HYLAB, NCHR+npen+nfont,
. penprefix(1:npen)//fontprefix(1:nfont)//
@@ -145,8 +146,8 @@ cc For fixing bug 1582: missing label on horizontal axis.
cc This crept in with multi-line labels. no need for IF(LABELX.LT.0) here.
cc IF(LABELX.LT.0)THEN
- CALL getlabfonts (xlab, lnbeg, lnend, j, npnew, nfnew,
- . newfont, newpen, nchr)
+ CALL getlabfonts (xlab, lnbeg, lnend, j, fontprefix,
+ . npnew, nfnew, newfont, newpen, nchr)
XL=XLO+(XLEN-SYMWID(HXLAB,NCHR+npen+nfont,
. penprefix(1:npen)//fontprefix(1:nfont)//
@@ -209,8 +210,8 @@ C Determine starting y position of main label
penprefix = ""
DO 50 j = 1, numlines
- CALL getlabfonts (lab1, lnbeg, lnend, j, npnew, nfnew,
- . newfont, newpen, nchr)
+ CALL getlabfonts (lab1, lnbeg, lnend, j, fontprefix,
+ . npnew, nfnew, newfont, newpen, nchr)
XL=XLO+(XLEN-
. SYMWID(htnew,NCHR,lab1(lnbeg(j):lnend(j))))*.5/XF
diff --git a/ppl/plot/lev.F b/ppl/plot/lev.F
index f4bb4a1..363dd48 100644
--- a/ppl/plot/lev.F
+++ b/ppl/plot/lev.F
@@ -15,6 +15,8 @@ C**
INCLUDE 'PARAMPL5.DAT'
INCLUDE 'cont_inc.decl'
INCLUDE 'CONT.INC'
+ INCLUDE 'shade_vars.cmn'
+
CHARACTER PRSE*2048
@@ -72,6 +74,9 @@ C**
* (Lavelle examples)
* v686 *acm* 1/14 Fix ticket 2123: labeling color bar when there is just one level
* v686 *acm* 2/14 Fix ticket 2124: Do the above fix only in the subroutine KEY.
+* v692 *acm* 7/14 For centered key labels add a level to corresp to the upper bound
+* of the top color on thecolorbar, excluding the inf triangle.
+
parameter (epsilon = 1e-6)
@@ -80,7 +85,6 @@ C**
INTEGER ntop
LOGICAL TM_FPEQ_SNGL
-
IF(LABEL.EQ.' ')THEN
NLEV=NLEV_DFLT
IAUTOC=1
@@ -148,6 +152,7 @@ C
CALL CMDERR(11,STRING,ISLEN,IERR)
RETURN
ENDIF
+
DO 100 I=1,NL
J=NLEV+I
@@ -261,5 +266,12 @@ C
400 CONTINUE
ENDIF
GOTO 200
-10 RETURN
+10 CONTINUE
+
+ IF (center_key_labels) THEN
+ dz = zlev(nlev) - zlev(nlev-1)
+ nlev = nlev + 1
+ zlev(nlev) = zlev(nlev-1) + dz
+ ENDIF
+ RETURN
END
diff --git a/ppl/plot/opnppl.F b/ppl/plot/opnppl.F
index 40bdfe4..0d02a05 100644
--- a/ppl/plot/opnppl.F
+++ b/ppl/plot/opnppl.F
@@ -39,7 +39,7 @@
* Mod to not reference "getlog" routine for linux port *kob* 3.11.97
* Mod to set SYM='*PPL$PLTNME' to value of meta_file *js* 7.25.97
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
-
+* v691 5/14 *acm* Change name MOD to TEKMOD
C**
C** @(#)opnppl.F 1.1 3/10/88
C**
@@ -183,11 +183,11 @@ C
#endif
IF(TYPE(1:LEN).EQ.'TEK41XX'.OR.TYPE(1:LEN).EQ.'TEK4105')THEN
- MOD=4107
- CALL TKTYPE(MOD)
+ TEKMOD=4107
+ CALL TKTYPE(TEKMOD)
ELSE IF(TYPE(1:LEN).EQ.'TEK4014')THEN
- MOD=4014
- CALL TKTYPE(MOD)
+ TEKMOD=4014
+ CALL TKTYPE(TEKMOD)
ENDIF
C
C OPEN ECHO FILE
diff --git a/ppl/plot/plotxy_ribbon.F b/ppl/plot/plotxy_ribbon.F
index a346347..069a6c6 100644
--- a/ppl/plot/plotxy_ribbon.F
+++ b/ppl/plot/plotxy_ribbon.F
@@ -61,6 +61,10 @@ C
* argument for setting up metafile plots.
* ACM 2/2013 ticket 2141. Fix the modulo operation when the longitude
* range is over 360.
+* ACM 5/2014 Fixes for changes of color in combination with handling
+* modulo longitude data
+* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+*
include 'xinterrupt.cmn' ! 1/89 *sh*
include 'ppl_in_ferret.cmn'
@@ -99,7 +103,7 @@ C
REAL datum, xlast, ylast, frac, dx, dy, xi, yi, xhalf, yhalf
INTEGER xpolybase, ypolybase, zpolybase, polysizemax, nl,
- . nvertex, low_index, colr_ndx, last_colr_ndx,
+ . nvertex, low_index, colr_ndx, last_colr_ndx, ncolors,
. line_ndx, thick_offset, nseg, iseg, indx, inc
INTEGER GET_NDX, ibase, iline2
@@ -164,9 +168,12 @@ C Set the contour/color levels
* IPEN contains the thickness setting.
+ ncolors = shd_levels
+ if (rgb_mapping .eq. by_level) ncolors = ncl
+
thick_offset = 0
- IF (ipen(i) .EQ. 2) thick_offset = (shd_levels+1)
- IF (ipen(i) .EQ. 3) thick_offset = 2*(shd_levels+1)
+ IF (ipen(i) .EQ. 2) thick_offset = (ncolors+1)
+ IF (ipen(i) .EQ. 3) thick_offset = 2*(ncolors+1)
C SET PLOT MODE
@@ -206,12 +213,15 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
last_bad = .FALSE.
colr_ndx = GET_NDX (X(IY+J+ILINE2),colr_ndx)
+ CALL SET_RIBBON_NDX (colr_ndx)
line_ndx = colr_ndx + thick_offset + low_index - 1
IF (colr_ndx .EQ. -999) THEN
colr_ndx = bad_ribbon_ndx
line_ndx = colr_ndx + low_index - 1
last_bad = .TRUE.
+ ELSE
+ nothing = 0
ENDIF
CALL COLOR (line_ndx)
@@ -251,7 +261,7 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
IDN=0
ELSE
- CALL PLOT(XT,YT,IDN,0)
+ CALL PLOT(XT,YT,IDN,0)
datx = X(K)
@@ -285,15 +295,19 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
CALL TRANS(I,datx,daty,XT,YT)
xaddlast = xadd
- xhalf = xlast + (xt - xlast)/2
- yhalf = ylast + (yt - ylast)/2
-
- IF (RIBBON_FAST .OR. last_bad .AND.(.NOT.new_branch)) THEN
-! go halfway between the last point and this one, using previous color.
- IF (last_bad .AND. bad_blank) THEN
- CALL PLOT(xhalf,yhalf,0,0)
- ELSE
- CALL PLOT(xhalf,yhalf,IDN,0)
+! in LINE/FAST mode go halfway between the last point and this one, using previous color.
+ IF (ITYPE(I).NE.3) THEN
+ xhalf = xlast + (xt - xlast)/2
+ yhalf = ylast + (yt - ylast)/2
+
+ IF ((.NOT.new_branch)) THEN
+ IF (RIBBON_FAST .OR. last_bad) THEN
+ IF (last_bad .AND. bad_blank) THEN
+ CALL PLOT(xhalf,yhalf,0,0)
+ ELSE
+ CALL PLOT(xhalf,yhalf,IDN,0)
+ ENDIF
+ ENDIF
ENDIF
ENDIF
@@ -301,6 +315,7 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
IF (datum .EQ. -3.E33) datum = CMZGE ! This value set in pplldx.
colr_ndx = GET_NDX (datum,colr_ndx)
+ CALL SET_RIBBON_NDX (colr_ndx)
line_ndx = colr_ndx + thick_offset + low_index - 1
IF (colr_ndx .EQ. -999 .AND.(.NOT.new_branch)) THEN
@@ -308,13 +323,16 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
colr_ndx = bad_ribbon_ndx
line_ndx = colr_ndx + low_index - 1
- IF (bad_blank .AND. .NOT.last_bad) CALL PLOT(xhalf,yhalf,IDN,0)
+ IF ((bad_blank .AND. .NOT.last_bad) .AND.
+ . (ITYPE(I).NE.3)) CALL PLOT(xhalf,yhalf,IDN,0)
IF (bad_blank) IDN = 0
- ENDIF
+ ELSE
+ nothing = 0
+ ENDIF
IF (line_ndx .LT. 1) line_ndx = 1
- IF (colr_ndx .NE. last_colr_ndx) THEN
+ IF ( colr_ndx.NE.last_colr_ndx) THEN
* In default (not fast) mode, draw sub-segments filling in all the colors
* corresponding to the index range between the color at this point and the
@@ -323,7 +341,8 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
IF (.NOT.RIBBON_FAST .AND.
. .NOT.isbad .AND. .NOT.last_bad .AND.
. ABS(colr_ndx-last_colr_ndx) .GT. 1 .AND.
- . (.NOT.new_branch)) THEN
+ . (.NOT.new_branch) .AND. ITYPE(I).NE.3) THEN
+
nseg = ABS(colr_ndx-last_colr_ndx)
frac = 1./FLOAT(nseg)
dx = (xt-xlast)
@@ -345,12 +364,13 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
80 CONTINUE
XT = xi ! should already be??
YT = yi
- ELSEIF (.NOT.new_branch) THEN
- CALL PLOT(xhalf,yhalf,IDN,0)
- CALL COLOR (line_ndx)
- CALL PLOT(xhalf,yhalf,IDN,0)
- CALL PLOT(XT,YT,IDN,0)
+ ELSEIF (.NOT.new_branch) THEN
+ IF (ITYPE(I).NE.3) CALL PLOT(xhalf,yhalf,IDN,0)
+ IF (colr_ndx.NE.last_colr_ndx) CALL COLOR (line_ndx)
+ IF (ITYPE(I).NE.3) CALL PLOT(xhalf,yhalf,IDN,0)
+ IF (.NOT.new_branch) CALL PLOT(XT,YT,IDN,0)
ENDIF
+ IF (colr_ndx.NE.last_colr_ndx) CALL COLOR (line_ndx)
ENDIF
CALL PLOT(XT,YT,IDN,0)
@@ -400,9 +420,14 @@ C CHECK POINTS FOR OUT OF RANGE (CM)
CALL COLOR(1)
* DO THE KEY
- IF (do_key .AND. .NOT.interrupted) CALL key ! 1/89 - *sh*
- CALL shade_key_cont(0)
-
+C Generate a color/gray scale key.
+C Restore standard key style afterward (do this here, to
+C catch both plot and plot/set calls).
+C
+ if (do_key .AND. .NOT.interrupted) THEN
+ call key ! 1/89 - *sh*
+ CALL SHADE_KEY_CONT (0)
+ ENDIF
RETURN
END
diff --git a/ppl/plot/pplcmd_f.F b/ppl/plot/pplcmd_f.F
index e50dc3a..089498f 100644
--- a/ppl/plot/pplcmd_f.F
+++ b/ppl/plot/pplcmd_f.F
@@ -126,6 +126,8 @@ C do not make small tics by default.
* V6.8 *acm* 7/9/2012 For batch graphics on RHEL6, change ITS_BATCH_GRAPHICS
* from logical to integer, then batch = ITS_BATCH_GRAPHICS().NE.0
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* v691 5/14 *acm* Change name MOD to TEKMOD
+* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
c
c fromi command file or device (/dev/tty or TT: for terminal)
@@ -486,7 +488,7 @@ C More brain dead mods:
GOTO 10
ENDIF
CALL PLTYPE(ICODE)
- CALL TKTYPE(MOD)
+ CALL TKTYPE(TEKMOD)
GOTO 10
C SIZE
700 WIDTH=P(1)
@@ -501,8 +503,8 @@ C SMOOTH
CALL SMOOTH(pplmem,NX,NY,NX,NY,IFIX(P(1)))
GOTO 10
C TKTYPE
-1000 MOD=IFIX(P(1))
- CALL TKTYPE(MOD)
+1000 TEKMOD=IFIX(P(1))
+ CALL TKTYPE(TEKMOD)
GOTO 10
C XLAB
1100 XLAB=LABEL
@@ -711,7 +713,7 @@ C
ENDIF
CALL BAUD(IR)
CALL PLTYPE(ICODE)
- CALL TKTYPE(MOD)
+ CALL TKTYPE(TEKMOD)
GOTO 10
4301 IF(.NOT.QUIETF)WRITE(LTTOUT,'(1X,A30,'' NOT FOUND'')')LABEL
GOTO 10
@@ -1673,16 +1675,16 @@ c
ENDIF
GOTO 10
C SHAKEY
-9160 call shade_key
+9160 call shade_key (-1)
goto 10
C SHASET
9170 call shade_set
goto 10
-C S_KEY (continuous color key)
+C S_KEY (continuous color key, center labels, horizontal)
9165 ICODE=IFIX(P(1))
- call shade_key_cont (ICODE)
- call shade_key
+ IF (ICODE .LE. 1) call shade_key_cont (ICODE)
+ call shade_key (ICODE)
goto 10
C SHADE_CELL (use cellarray call for shade)
diff --git a/ppl/plot/ppldata.F b/ppl/plot/ppldata.F
index d6dc2ed..1bd85ca 100644
--- a/ppl/plot/ppldata.F
+++ b/ppl/plot/ppldata.F
@@ -60,6 +60,7 @@ C for compatibility with Ferret use of symbols.
* If this is changed, also change it in fer/dat/xprog_state_data.F
* V62 2/08 *acm*increase default number of contour levels to NLEV=30 (MODE NLEVELS)
* If this is changed, also change it in fer/dat/xprog_state_data.F
+* v691 5/14 *acm* Change name MOD to TEKMOD
INCLUDE 'PARAMPL5.DAT'
include 'axis_inc.decl'
@@ -184,7 +185,8 @@ C
DATA MNX,MNY,IMULT,IMCNT,DXM,DYM/4*0,10*1.4,10*1.2/
DATA XLENM,YLENM,IXM,IYM,MXBOT,MYLEF/10*5.5,10*4.,2*0,2*0/
C
- DATA ICODE,WIDTH,HEIGHT,MOD,IR,LUN/3,10.0,8.0,4010,110,8/
+ DATA ICODE,WIDTH,HEIGHT,IR,LUN/
+ . 3,10.0,8.0,110,8/
C
DATA IBASE,PBUF/1,0/
C
diff --git a/ppl/plot/prmtiv.F b/ppl/plot/prmtiv.F
index 80595ab..f77edb9 100644
--- a/ppl/plot/prmtiv.F
+++ b/ppl/plot/prmtiv.F
@@ -54,6 +54,8 @@ C (axis data was read as double precision and converted to single
C after applying an offset.)
* V683 12/12 *acm* Fix for applying a font setting in multiple line labels
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
+* V69+ 5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
+
C**
C**
C***********************************************************************
@@ -304,8 +306,8 @@ C
fontprefix = ""
penprefix = ""
DO 20 j = 1, numlines
- CALL getlabfonts (xlab, lnbeg, lnend, j, npnew, nfnew,
- . newfont, newpen, nchr)
+ CALL getlabfonts (xlab, lnbeg, lnend, j, fontprefix,
+ . npnew, nfnew, newfont, newpen, nchr)
IF(IPOS.LT.0)THEN
YL=Y-(XWID+2.0*HXLAB)/YFF
@@ -436,8 +438,8 @@ c ENDIF
fontprefix = ""
penprefix = ""
DO 30 j = 1, numlines
- CALL getlabfonts (ylab, lnbeg, lnend, j, npnew, nfnew,
- . newfont, newpen, nchr)
+ CALL getlabfonts (ylab, lnbeg, lnend, j, fontprefix,
+ . npnew, nfnew, newfont, newpen, nchr)
IF(IPOS.LT.0)THEN
XL=XX-(YWID+HYLAB)/XFF
@@ -629,12 +631,12 @@ C
fontprefix = ""
penprefix = ""
DO 40 j = 1, numlines
- CALL getlabfonts (label, lnbeg, lnend, j, npnew, nfnew,
- . newfont, newpen, nchr)
+ CALL getlabfonts (label, lnbeg, lnend, j, fontprefix,
+ . npnew, nfnew, newfont, newpen, nchr)
+ XMN=SYMWID(CHSIZE,NCHR+npen+nfont,
+ . penprefix(1:npen)//fontprefix(1:nfont)//
+ . label(lnbeg(j):lnend(j)))
- XMN=SYMWID(CHSIZE,NCHR+npen+nfont,
- . penprefix(1:npen)//fontprefix(1:nfont)//
- . label(lnbeg(j):lnend(j)))
SHFT=0.0
IF(IPOS.GT.0)THEN
SHFT=-XMN
@@ -677,3 +679,4 @@ C
RETURN
END
+c!!!!!!!!!!!!!!!!!!!!!
diff --git a/ppl/plot/vecfld.F b/ppl/plot/vecfld.F
index ecf345b..d38fa91 100644
--- a/ppl/plot/vecfld.F
+++ b/ppl/plot/vecfld.F
@@ -75,6 +75,7 @@ C**
* V686 *acm* 11/13 Allow symbol names to be up to 120 characters long
* V687 *acm* 3/14 tickets 2151 and 2147: allow missing coordinate data in 3-arg
* and 4-arg plot commands.
+* Patrick's example with vector drawn across branch cut.
C ARRAY X HOLD 2 GRIDS, U(X) IN THE FIRST
C NX BY NY GRID AND V(Y) IN THE SECOND
@@ -109,13 +110,15 @@ C
real xfuser,yfuser,xlousr,ylousr,zave,xt,yt
real xx2,yy2,zz,vfact,xtm,ytm,xtx,ytx,xx1,yy1,vx,vy,vclen
- real thfact,xn,yn,xl,yl,dy,dx, alen, big,lmin,lmax, xadd
+ real thfact,xn,yn,xl,yl,dy,dx, alen, big,lmin,lmax, xadd, tol
logical done_nleft, done_nright
integer ic,i,j,lnblk,iln, overedge
integer TM_LENSTR1, slen, i1, i2
CHARACTER VECLAB*2048, buff*80, symbuff*120
+
+ parameter (tol = 140.)
C
C VECTOR,X,Y,VFACT,LABEL
@@ -207,6 +210,9 @@ C
DO 100 I=1,NX,VSKPX
DO 100 J=1,NY,VSKPY
+ IF (i.eq.52 .AND. j.eq.76) THEN
+ slen = 1
+ ENDIF
IF (IPT .GT. maxdot) THEN
CALL doit_makedot(IPT,XDOT,YDOT)
@@ -333,7 +339,13 @@ C draw an arrow head.
60 CONTINUE
70 CONTINUE
- CALL PLOT(xxc+xadd,yyc,1,0)
+
+C Has the vector crossed a branch cut? If so don't draw across the plot...
+ IF ( ABS((xxc+xadd)-(xx1+xadd)).GT.tol .AND. units_degrees) THEN
+ CALL PLOT(xxc+xadd,yyc,0,0)
+ ELSE
+ CALL PLOT(xxc+xadd,yyc,1,0)
+ ENDIF
IF (xadd .EQ. 0) THEN
lmin = MIN(lmin, xxc)
lmax = MAX(lmax, xxc)
diff --git a/ppl/tmap_inc/plt_inc.decl b/ppl/tmap_inc/plt_inc.decl
index 00ec74a..06b06c5 100644
--- a/ppl/tmap_inc/plt_inc.decl
+++ b/ppl/tmap_inc/plt_inc.decl
@@ -2,11 +2,12 @@
* COMMON for PLOT+ with all variables declared
* created for TMAP usage by Steve Hankin 7/88
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
+* v691 5/14 *acm* Change name MOD to TEKMOD
INTEGER ICODE
REAL*4 WIDTH
REAL*4 HEIGHT
- INTEGER MOD
+ INTEGER TEKMOD
INTEGER IR
INTEGER LUN
* requires: INCLUDE 'PPLV11INC:PLT.INC'
diff --git a/ppl/tmap_inc/shade_vars.cmn b/ppl/tmap_inc/shade_vars.cmn
index 7d41652..c9d9748 100644
--- a/ppl/tmap_inc/shade_vars.cmn
+++ b/ppl/tmap_inc/shade_vars.cmn
@@ -18,6 +18,8 @@
* KUSER_LOC indicates whether user key locations are to be used
* ANNOTATE_KEY Flag: annotate min/max data field when open-ended levels used
* CUSTOM_COLORS determines whether a custom color map is to be defined
+* CENTERED_LABELS determines whether colorbar labels are made between lines,
+* or if not set, on the lines between colors
* SHD_MIN,SHD_MAX are the minimum and maximum data values shaded
* SHD_LEVELS is the number of levels to use in shading
@@ -77,6 +79,8 @@
* ribbon_miss rgb codes for the missing-value rep. on ribbon plots.
* PyFr *kms* 5/13 Add alpha channel (opaque) variables SA,MSA
* PyFr *kms* 7/13 Add overriding_alpha for overriding alpha/opacity (/OPACITY=)
+* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+
integer spec_size,max_windows,pattern_num
parameter (spec_size=250,max_windows=12,pattern_num=50)
@@ -104,7 +108,7 @@
REAL*4 overriding_alpha
logical fill_missing,even_histo,do_key,area_bundles
- logical vertical_key,kuser_loc(4),custom_colors
+ logical vertical_key,kuser_loc(4),custom_colors,center_key_labels
logical protect_used_colors
logical buffer_empty, upperflg, upper_first
@@ -118,7 +122,7 @@
. x_lo,x_hi,y_lo,y_hi,
. bad_val, bad_ribbon_ndx,
. fill_missing,even_histo,do_key,vertical_key,
- . kuser_loc,custom_colors,
+ . kuser_loc,custom_colors,center_key_labels,
. shd_min,shd_max,shd_levels,
. kx_lo,kx_hi,ky_lo,ky_hi,
. klab_size,klab_dig,klab_len,klab_incr,
diff --git a/ppl/tmapadds/SOURCE_FILES b/ppl/tmapadds/SOURCE_FILES
index 86feac6..0cdd0df 100644
--- a/ppl/tmapadds/SOURCE_FILES
+++ b/ppl/tmapadds/SOURCE_FILES
@@ -57,6 +57,7 @@ set_open_levels.F\
set_override_opacity.F\
set_pat_size.F\
set_regular_plot.F\
+set_ribbon_ndx.F\
set_window_size.F\
setax_syms.F\
setfont.F\
diff --git a/ppl/tmapadds/compute_histo_bins.F b/ppl/tmapadds/compute_histo_bins.F
index fd4cbb1..6278515 100644
--- a/ppl/tmapadds/compute_histo_bins.F
+++ b/ppl/tmapadds/compute_histo_bins.F
@@ -41,6 +41,7 @@
* the fine structure in the data.
* V630 *acm* 9/09 Introduction of syntax for variance-based and histogram levels
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
+* V691 *acm* 5/14 Define symbols containing histogram levels
IMPLICIT NONE
include 'parampl5_dat.decl'
@@ -66,6 +67,10 @@
INTEGER i, ngood, ibin, n_per_bin
+ CHARACTER ppl_buff*2048, TM_FMT_SNGL*10, buff*10
+ INTEGER TM_LENSTR1, ier, ilen, slen, ist
+ LOGICAL TM_FPEQ_SNGL
+
ngood = 0
DO i = 1, nsize
wrk(i) = z(i)
@@ -91,9 +96,29 @@
zlev(1) = wrk(1)
zlev(nlev2) = wrk(ngood)
-! ... could smooth these some.
+* ... could smooth these some.
IAUTOC = 0 ! levels are already set so dont do it in set_levels.
+ USE_HIST = .TRUE.
+
+* Define the LEV_HISTO_LEVELS symbol here. It may be wanted in a PLOT/SET command
+* before setlab_syms would be executed.
+
+ IF (USE_HIST) THEN
+ ppl_buff = 'LEV_HISTO_LEVELS '
+ ilen = TM_LENSTR1(ppl_buff)+1
+ DO 200 i =1, nlev2
+ buff = TM_FMT_SNGL(zlev(i), -2, 10, slen)
+ ppl_buff = ppl_buff(:ilen)//buff(:slen)
+ ilen = TM_LENSTR1(ppl_buff)
+ IF (i.LT.nlev2) ppl_buff = ppl_buff(:ilen)//','
+ ilen = TM_LENSTR1(ppl_buff)
+ 200 CONTINUE
+ ier = 0
+ ist = 0
+ CALL SETSYM (ppl_buff, ilen, ier, ist)
+ ENDIF
+
RETURN
END
diff --git a/ppl/tmapadds/compute_mnstd.F b/ppl/tmapadds/compute_mnstd.F
index 72193f3..f373d1e 100644
--- a/ppl/tmapadds/compute_mnstd.F
+++ b/ppl/tmapadds/compute_mnstd.F
@@ -43,7 +43,7 @@ C**
* V666: 1/11 - fix bug 1778: missing data not treated correctly. Dont use CMZGE,
* so variance result is the same as other Ferret variance calculations
* V68 *acm* 1/12 changes for double-precision ferret, single-precision pplus
-
+* V69+ *acm* 7/14 ticket 2186: more-robust mean and std deviation if big outliers
IMPLICIT NONE
include 'parampl5_dat.decl'
include 'PARAMPL5.DAT'
@@ -54,8 +54,6 @@ C**
include 'miss_inc.decl'
include 'MISS.INC'
-
-
* calling argument declarations:
LOGICAL need_std
INTEGER nsize, status
@@ -67,13 +65,13 @@ C**
* internal variable declarations:
#ifdef double_p
- REAL*8 sum, dev, sumsq_dev, variance
+ REAL*8 sum, dev, sumsq_dev, variance, tol_lo, tol_hi, zmean2
#else
- REAL sum, dev, sumsq_dev, variance
+ REAL sum, dev, sumsq_dev, variance, tol_lo, tol_hi, zmean2
#endif
REAL*8 x, xmean, sum2, sumc, variance_c, xdelta
- INTEGER i, n
+ INTEGER i, n, n2
c Already have zmin, zmax
@@ -125,7 +123,95 @@ c Compute data mean.
variance_c = sum2/FLOAT(n - 1)
zstd = SQRT(variance_c)
- ENDIF
+* Ignore any data outside 3 STD
+
+ tol_lo = zmean - 3.*zstd
+ tol_hi = zmean + 3.*zstd
+
+c Recompute data mean.
+
+ sum = 0.0
+ n2 = 0
+ DO 200 i = 1, nsize
+ x = z(i)
+ IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
+ sum = sum + Z(i)
+ n2 = n2 + 1
+ ENDIF
+ 200 CONTINUE
+
+ IF (n2 .EQ. 0) GOTO 5000
+ IF (n2 .EQ. n) GOTO 4900
+
+#ifdef double_p
+ zmean2 = sum/DBLE(n2)
+#else
+ zmean2 = sum/FLOAT(n2)
+#endif
+ n2 = 0
+ xmean = 0.D0
+ sum2 = 0.D0
+
+ DO i = 1, nsize
+ x = Z(i)
+ IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
+ n2 = n2 + 1
+ x = x - zmean2
+ xdelta = x - xmean
+ xmean = xmean + xdelta/FLOAT(n2)
+ sum2 = sum2 + xdelta*(x - xmean) ! This expression uses the new value of mean
+ ENDIF
+ ENDDO
+
+ IF (FLOAT(n2)/FLOAT(n) .GT. 0.9) THEN
+ zmean = zmean2
+ variance_c = sum2/FLOAT(n2 - 1)
+ zstd = SQRT(variance_c)
+ ENDIF
+
+c Once more.
+ tol_lo = zmean - 3.*zstd
+ tol_hi = zmean + 3.*zstd
+
+ sum = 0.0
+ n2 = 0
+ DO 300 i = 1, nsize
+ x = z(i)
+ IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
+ sum = sum + Z(i)
+ n2 = n2 + 1
+ ENDIF
+ 300 CONTINUE
+ IF (n2 .EQ. 0) GOTO 5000
+#ifdef double_p
+ zmean2 = sum/DBLE(n2)
+#else
+ zmean2 = sum/FLOAT(n2)
+#endif
+ n2 = 0
+ xmean = 0.D0
+ sum2 = 0.D0
+
+ DO i = 1, nsize
+ x = Z(i)
+ IF ( x.NE.badz .AND. x.GT.tol_lo .AND. x.LT.tol_hi) THEN
+ n2 = n2 + 1
+ x = x - zmean2
+ xdelta = x - xmean
+ xmean = xmean + xdelta/FLOAT(n2)
+ sum2 = sum2 + xdelta*(x - xmean) ! This expression uses the new value of mean
+ ENDIF
+ ENDDO
+
+ IF (FLOAT(n2)/FLOAT(n) .GT. 0.9) THEN
+ zmean = zmean2
+ variance_c = sum2/FLOAT(n2 - 1)
+ zstd = SQRT(variance_c)
+ ENDIF
+
+ ENDIF ! need_std
+
+ 4900 CONTINUE
* If user is resetting the mean, do that here
IF (centered) zmean = 0.
diff --git a/ppl/tmapadds/getlabfonts.F b/ppl/tmapadds/getlabfonts.F
index 1adfe28..98e872d 100644
--- a/ppl/tmapadds/getlabfonts.F
+++ b/ppl/tmapadds/getlabfonts.F
@@ -1,5 +1,5 @@
- SUBROUTINE getlabfonts (lab, lnbeg, lnend, jln, npnew, nfnew,
- . newfont, newpen, nchr)
+ SUBROUTINE getlabfonts (lab, lnbeg, lnend, jln, fontprefix,
+ . npnew, nfnew, newfont, newpen, nchr)
*
*
* This software was developed by the Thermal Modeling and Analysis
@@ -40,70 +40,114 @@
* one line to the next in multi-line lables, allow for
* @Cnnn syntax.
* V683 12/12 *acm* Fix for applying a font setting in multiple line labels
+* V69+ 5/14 *acm* Fix for ascii font in multi-line labels, ticket 2176
* Argument declarations
IMPLICIT NONE
- CHARACTER*(*) lab, newfont, newpen
+ CHARACTER*(*) lab, newfont, newpen, fontprefix
INTEGER lnbeg(*), lnend(*), npnew, nfnew, nchr, jln
* Local variable definitions
- CHARACTER*1 fcode, fnext
- INTEGER TM_LOC_STRING, ioc, loc, nloc
- LOGICAL digit, isc
+ CHARACTER*1 fcode, fnext, ichr
+ INTEGER TM_LOC_STRING, ioc, loc, ii, nloc, eloc
+ LOGICAL digit, isc, ascfnt
npnew = 0
nfnew = 0
newfont = ""
newpen = ""
+* Is the current setting an ASCII font
+ ascfnt = (fontprefix(1:2).EQ.'@A' .OR. fontprefix(1:2).EQ.'@a')
+
nchr = lnend(jln) - lnbeg(jln) + 1
ioc = 0
loc = TM_LOC_STRING(lab(lnbeg(jln):lnend(jln)),"@",ioc)
IF ( loc .GT. 0) THEN
- fcode = lab(lnbeg(jln)+loc:lnbeg(jln)+loc)
- fnext = lab(lnbeg(jln)+loc+1:lnbeg(jln)+loc+1)
-
- digit = (fcode .EQ. 'C' .OR. fcode .EQ. 'c')
- digit = ( fnext .GE. '0' .AND. fnext .LE. '9')
- isc = ((fcode .EQ. 'C' .OR. fcode .EQ. 'c') .AND.digit)
-
- IF (fcode .EQ. 'P' .OR. fcode .EQ. 'p') THEN
- newpen(1:3) = lab(lnbeg(jln)+loc-1:lnbeg(jln)+loc+1)
- npnew = 3
- ELSE IF ((fcode .EQ. 'C' .OR. fcode .EQ. 'c') .AND.digit) THEN
- newpen(1:5) = lab(lnbeg(jln)+loc-1:lnbeg(jln)+loc+3)
- npnew = 5
- ELSE
- newfont(1:3) = lab(lnbeg(jln)+loc-1:lnbeg(jln)+loc+1)
- nfnew = 3
-
- ENDIF
+
+* Is the ASCII font escaped before the first font/pen setting?
+ DO ii = lnbeg(jln), lnbeg(jln)+loc
+ ichr = lab(ii:ii)
+ IF (ichar(ichr) .eq.27 .AND. ii .LT. lnbeg(jln)+loc+1) THEN
+ ascfnt = .FALSE.
+ eloc = ii
+ GOTO 100
+ ENDIF
+ ENDDO
+ 100 CONTINUE
+
+* Font/pen settings are only applied if it's not the ascii font or
+* the @ was escaped.
+
+ IF (.NOT. ascfnt) THEN
+ fcode = lab(lnbeg(jln)+loc:lnbeg(jln)+loc)
+ fnext = lab(lnbeg(jln)+loc+1:lnbeg(jln)+loc+1)
+
+ digit = (fcode .EQ. 'C' .OR. fcode .EQ. 'c')
+ digit = ( fnext .GE. '0' .AND. fnext .LE. '9')
+ isc = ((fcode .EQ. 'C' .OR. fcode .EQ. 'c') .AND.digit)
+
+ IF (fcode .EQ. 'P' .OR. fcode .EQ. 'p') THEN
+ newpen(1:3) = lab(lnbeg(jln)+loc-1:lnbeg(jln)+loc+1)
+ npnew = 3
+ ELSE IF ((fcode .EQ. 'C' .OR. fcode .EQ. 'c') .AND.digit) THEN
+ newpen(1:5) = lab(lnbeg(jln)+loc-1:lnbeg(jln)+loc+3)
+ npnew = 5
+ ELSE
+ newfont(1:3) = lab(lnbeg(jln)+loc-1:lnbeg(jln)+loc+1)
+ nfnew = 3
+
+ ENDIF
+ ENDIF
nloc = loc
+* Is the current setting an ASCII font
+ ascfnt = (fontprefix(1:2).EQ.'@A' .OR. fontprefix(1:2).EQ.'@a')
+
! Save the last pen and font change on this line.
DO WHILE (nloc .NE. 0)
ioc = ioc + 1
nloc = TM_LOC_STRING(lab(lnbeg(jln):lnend(jln)),"@",ioc)
IF (nloc .GT. 0) THEN
- fcode = lab(lnbeg(jln)+nloc:lnbeg(jln)+nloc)
- IF (fcode .EQ. 'P' .OR. fcode .EQ. 'p') THEN
- newpen(1:3) = lab(lnbeg(jln)+nloc-1:lnbeg(jln)+nloc+1)
- npnew = 3
- ELSE IF (fcode .EQ. 'C' .OR. fcode .EQ. 'c') THEN
- newpen(1:5) = lab(lnbeg(jln)+nloc-1:lnbeg(jln)+nloc+3)
- npnew = 5
- ELSE
-
- newfont(1:3) = lab(lnbeg(jln)+nloc-1:lnbeg(jln)+nloc+1)
- nfnew = 3
- ENDIF
- ENDIF
- ENDDO
- ENDIF
+
+* Is the ASCII font escaped before the first font/pen setting?
+ DO ii = eloc+1, lnbeg(jln)+nloc+1
+ ichr = lab(ii:ii)
+ IF (ichar(ichr) .eq.27 .AND. ii .LT. lnbeg(jln)+nloc+1) THEN
+ ascfnt = .FALSE.
+ GOTO 200
+ ENDIF
+ ENDDO
+ 200 CONTINUE
+
+* Font/pen settings are only applied if it's not the ascii font or
+* the @ was escaped.
+
+ IF (.NOT. ascfnt) THEN
+ fcode = lab(lnbeg(jln)+nloc:lnbeg(jln)+nloc)
+ IF (fcode .EQ. 'P' .OR. fcode .EQ. 'p') THEN
+ newpen(1:3) = lab(lnbeg(jln)+nloc-1:lnbeg(jln)+nloc+1)
+ npnew = 3
+ ELSE IF (fcode .EQ. 'C' .OR. fcode .EQ. 'c') THEN
+ newpen(1:5) = lab(lnbeg(jln)+nloc-1:lnbeg(jln)+nloc+3)
+ npnew = 5
+ ELSE
+
+ newfont(1:3) = lab(lnbeg(jln)+nloc-1:lnbeg(jln)+nloc+1)
+ nfnew = 3
+ ENDIF
+
+ ENDIF ! .not.ascfnt
+
+ ENDIF ! nloc.gt.0
+
+ ENDDO ! while nloc eq 0
+
+ ENDIF ! loc gt 0
RETURN
END
diff --git a/ppl/tmapadds/key.F b/ppl/tmapadds/key.F
index 8189b16..b219982 100644
--- a/ppl/tmapadds/key.F
+++ b/ppl/tmapadds/key.F
@@ -111,8 +111,12 @@
* don't let them run over each other. Locate the horizontal colorbar close to
* the plot with labels above them. Behavior of args to SHAKEY is unchanged.
* v686 *acm* 2/14 Fix ticket 2124: Do the fix for 2124 only here, not in subr. LEV.
+* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
+* For centered labels add a level to corresp to the upper bound of
+* the top color on thecolorbar, excluding any upper inf triangle.
IMPLICIT NONE
+
include 'parampl5_dat.decl'
include 'PARAMPL5.DAT'
include 'cont_inc.decl'
@@ -136,14 +140,15 @@
include 'gkspar.inc'
- integer ndx,str_len,max_len,incr,lab_digits, nhi, ncount,
- . lab_add, nlab, i, kount, lev1, levn, nspace
+ integer ndx,str_len,max_len,incr,lab_digits, nhi, ncount,
+ . lab_add, nlab, i, kount, lev1, levn, nspace, shd_lev_hi
real x_inc,y_inc,px(4),py(4),rem,kpx(5),kpy(5),flaty(5),flatx(5)
real xmaxx,ymaxx,vwidth,vheight,karht, ksiz_test
real xx,yy,xxx,yyy, xx1, xxn, xxlen
real kx_lo_def, kx_hi_def, ky_lo_def, ky_hi_def,
- . val, del, x_inc_inf, y_inc_inf, frac, fixx, inc_min
+ . val, del, x_inc_inf, y_inc_inf, frac, fixx, inc_min,
+ . center_add
real*8 val_n, val_last
character*12 text, TM_FMT_SNGL, TM_FMT_SNGL_DIGITS,
. txt_out, blanks
@@ -165,6 +170,9 @@
cont_key_keep = cont_key
+ center_add = 0.
+ if (center_key_labels) center_add = 0.5
+
* Decide whether to check for small numeric values in the key labels.
* If delta is large, we dont want 0.000005 to be labelled in an exponential
* format (it is zero with a bit of noise). But if all the numbers are
@@ -245,8 +253,8 @@
kx_lo_def = 1000.0 * xorg
kx_hi_def = 1000.0 * (xorg + xlen)
- ky_lo_def = 1000.0 * (yorg + ylen)
- ky_hi_def = 1000.0 * (yorg + ylen + 0.16*rem)
+ ky_lo_def = 1000.0 * (yorg + ylen + 0.05)
+ ky_hi_def = 1000.0 * (yorg + ylen + 0.05 + 0.16*rem)
else
rem = height - (ylen + yorg)
@@ -441,7 +449,11 @@ C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
IF (incr .GT. 0) THEN
- do 20 ndx = lev1,shd_levels+1,incr
+ shd_lev_hi = shd_levels+1
+ IF (center_key_labels) shd_lev_hi = shd_levels
+ IF (center_key_labels .AND. posinf) shd_lev_hi = shd_lev_hi-1
+
+ do 20 ndx = lev1,shd_lev_hi,incr
* WRITE OUT CORRESPONDING VALUE
@@ -453,7 +465,7 @@ C text = TM_FMT_SNGL_DIGITS (val,lab_digits,klab_len+lab_add,str_len)
IF (ndx .EQ. 1 .AND. neginf) text = " "
IF (ndx .EQ. shd_levels+1 .AND. posinf) text = " "
- xx = (kx_lo + x_inc*real(ndx-1))/1000.0
+ xx = (kx_lo + x_inc*(center_add+real(ndx-1)))/1000.0
. - karht*real(str_len)/2.0 - xorg
yy = (ky_hi - 5.0 * y_inc)/1000.0 - yorg - 1.5*karht
IF (kuser_loc(3) .OR. kuser_loc(4) )
@@ -663,7 +675,12 @@ c IF ( no_lines ) cont_key = .TRUE.
1010 continue
IF (incr .GT. 0) THEN
- do 1020 ndx = lev1,shd_levels+1,incr
+
+ shd_lev_hi = shd_levels+1
+ IF (center_key_labels) shd_lev_hi = shd_levels
+ IF (center_key_labels .AND. posinf) shd_lev_hi = shd_lev_hi-1
+
+ do 1020 ndx = lev1,shd_lev_hi,incr
* WRITE OUT CORRESPONDING VALUE
val = zlev(ndx)
IF (TM_FPEQ_SNGL(val,0.) .AND. check_0) val = 0.
@@ -697,8 +714,8 @@ c IF ( no_lines ) cont_key = .TRUE.
ENDIF
ENDIF
- yy = (ky_lo + y_inc*real (ndx-1))/1000.0 - yorg - 0.5*karht
-! yy = (ky_lo + y_inc*real (ndx-1))/1000.0 - yorg (this caused bug 1330!)
+ yy = ( ky_lo + y_inc* (center_add+ real(ndx-1)) )/1000.0 -
+ . yorg - 0.5*karht
* FILL AND SHADE USE DIFFERENT COORD SYSTEMS -- *jd* 6.4.93
diff --git a/ppl/tmapadds/set_fill_ndx.F b/ppl/tmapadds/set_fill_ndx.F
index 05859e8..2712ff7 100644
--- a/ppl/tmapadds/set_fill_ndx.F
+++ b/ppl/tmapadds/set_fill_ndx.F
@@ -1,5 +1,38 @@
SUBROUTINE SET_FILL_NDX (fill_ndx)
+
+* 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.
+*
* Sets fill index appropriately. DEC uses bundled indices,
* at this date ATC has too few to use them, so must use individual
* attributes.
diff --git a/ppl/tmapadds/set_levels_shade_fill.F b/ppl/tmapadds/set_levels_shade_fill.F
index e871eae..2fb4da5 100644
--- a/ppl/tmapadds/set_levels_shade_fill.F
+++ b/ppl/tmapadds/set_levels_shade_fill.F
@@ -54,12 +54,13 @@
include 'cont_inc.decl'
include 'CONT.INC'
include 'errmsg.parm'
+ include 'shade_vars.cmn'
* argument declarations
INTEGER status
* local declarations
- REAL dmin, dmax, dz, fm, znp, zmp, dzmax
+ REAL dmin, dmax, dz, fm, znp, zmp, dzmax, del
INTEGER i, m, jj
LOGICAL TM_FPEQ_SNGL
@@ -224,6 +225,23 @@ c NLEV2=0
ELSE
NLEV2=NLEV
IF (neginf) zlev(1) = MIN( zlev(1), zmin-1. )
+
+* For centered labels add a level to corresp to the upper bound of
+* the top color on thecolorbar, excluding the inf triangle.
+
+ IF (center_key_labels) THEN
+ IF (posinf) THEN
+ del = zlev(nlev-1) - zlev(nlev-2)
+ nlev = nlev + 1
+ zlev(nlev-1) = zlev(nlev-1) + del
+ ELSE
+ del = zlev(nlev) - zlev(nlev-1)
+ nlev = nlev + 1
+ zlev(nlev) = zlev(nlev-1) + del
+ ENDIF
+ nlev2 = nlev
+ ENDIF
+
IF (posinf) zlev(nlev) = MAX (zlev(nlev), zmax+1. )
C Compute the digits in the contour levels, and line characteristics
diff --git a/fer/ef_utility/ef_get_string_arg_element_sub.F b/ppl/tmapadds/set_ribbon_ndx.F
similarity index 64%
copy from fer/ef_utility/ef_get_string_arg_element_sub.F
copy to ppl/tmapadds/set_ribbon_ndx.F
index 3f4bc5f..8192e99 100644
--- a/fer/ef_utility/ef_get_string_arg_element_sub.F
+++ b/ppl/tmapadds/set_ribbon_ndx.F
@@ -1,7 +1,5 @@
-* ef_get_string_arg_element_sub.F
-*
-* acm 12/03 from ef_get_arg_string
-*
+ SUBROUTINE SET_RIBBON_NDX (colr_ndx)
+
* This software was developed by the Thermal Modeling and Analysis
* Project(TMAP) of the National Oceanographic and Atmospheric
* Administration's (NOAA) Pacific Marine Environmental Lab(PMEL),
@@ -34,30 +32,22 @@
* CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
*
-* This returns an element of the string array which was passed as an argument
-* to the function.
-*
-* Inside this subroutine arg is an array of pointers (cast as real*8),
-* and we can call GET_STRING_ELEMENT to get a string element.
-*
-* 3/12 *kms* Added E and F dimensions
+* Sets ribbon color index appropriately.
+
+ include 'shade_vars.cmn'
+ include 'gkscm1_inc.decl'
+ include 'GKSCM1.INC'
+ include 'gkspar.inc'
+
+ INTEGER colr_ndx
- SUBROUTINE EF_GET_STRING_ARG_ELEMENT_SUB( lox, hix, loy, hiy,
- . loz, hiz, lot, hit, loe, hie, lof, hif, arg,
- . i, j, k, l, m, n, max_line_len, slen, text )
+*******************************************************************************
- INTEGER i, j, k, l, m, n,
- . lox, hix, loy, hiy, loz, hiz,
- . lot, hit, loe, hie, lof, hif,
- . slen, max_line_len
- CHARACTER*(*) text
- REAL*8 arg(lox:hix, loy:hiy, loz:hiz, lot:hit, loe:hie, lof:hif)
+ IF (colr_ndx .EQ. -999) RETURN
- CHARACTER GET_STRING_ELEMENT*512
+* USE ATOMIC COLORS -- REUSE AS NECESSARY
+ if (rgb_mapping .eq. by_level) colr_ndx = mod(colr_ndx-2,ncl) + 2
- text = GET_STRING_ELEMENT(lox, hix, loy, hiy, loz, hiz,
- . lot, hit, loe, hie, lof, hif, arg,
- . i, j, k, l, m, n, max_line_len, slen)
+ return
+ end
- RETURN
- END
diff --git a/ppl/tmapadds/shade_key.F b/ppl/tmapadds/shade_key.F
index f4c9edd..4780811 100644
--- a/ppl/tmapadds/shade_key.F
+++ b/ppl/tmapadds/shade_key.F
@@ -1,4 +1,4 @@
- SUBROUTINE SHADE_KEY
+ SUBROUTINE SHADE_KEY (isetting)
*
*
@@ -45,6 +45,7 @@
* reset any of the four, and others will be filled in by making
* the key the default size in that direction. See key.F
* v581 *acm* 3/05 put flag cont_key into common CONT.INC
+* V6.92 *acm* 6/14 New color /key options: any of /key=horizontal,centerlabel
IMPLICIT NONE
include 'shade_vars.cmn'
@@ -59,7 +60,7 @@
include 'cont_inc.decl'
include 'CONT.INC'
- INTEGER i
+ INTEGER isetting, i
*******************************************************************************
@@ -74,6 +75,15 @@ c do_key = .true. ! Still initialize this in setup_defaults.F
kuser_loc(i) = .false.
100 continue
+ IF (isetting .EQ. 0) THEN
+ center_key_labels = .FALSE.
+ vertical_key = .TRUE.
+ ENDIF
+
+* Option centered_labels on key (e.g. on discrete color settings, by-levels.)
+
+ IF (isetting .EQ. 2) center_key_labels = .TRUE.
+
klab_size = 0.0
klab_dig = 3
klab_len = 9
@@ -91,6 +101,7 @@ c do_key = .true. ! Still initialize this in setup_defaults.F
. vertical_key = .false.
if (m .ge. 2 .and. iflg(2) .ne. 0 .and. p(2).eq.1.0)
. vertical_key = .TRUE.
+ IF (isetting .EQ. 3) vertical_key = .FALSE.
if (m .ge. 3 .and. iflg(3) .ne. 0) klab_size = p(3)
if (m .ge. 4 .and. iflg(4) .ne. 0) klab_incr = ifix (p(4))
diff --git a/ppl/tmapadds/ws_line_spectrum.F b/ppl/tmapadds/ws_line_spectrum.F
index 24cb1c0..cac977e 100644
--- a/ppl/tmapadds/ws_line_spectrum.F
+++ b/ppl/tmapadds/ws_line_spectrum.F
@@ -37,6 +37,7 @@
*
* Routine to set up the line bundles for color-line plots
* PyFr *kms* 5/13 Add alpha channel (opaque)
+* V691 *acm* 5/14 Fix when defining line bundles for a by-levels palette
IMPLICIT NONE
include 'pltcom_dat.decl'
@@ -69,8 +70,8 @@
data ltype/1,2,3,4,-3,-4/
#endif
- integer max_pline,max_pmark,max_text,max_fill_area
- integer max_pattern,max_color,error
+ integer max_pline, max_pmark, max_text, max_fill_area
+ integer max_pattern, max_color, error, ncolors
integer fktr, marktype, index, line_color_reserve,
. icolr, nthick, status, usable_colors, ndx
@@ -136,13 +137,16 @@
nthick = 3
low_index = MAX(num_line_colors* nthick + 2, lo_color_ndx(zwsid))
- do 20 j = 1, shd_levels
+
+ ncolors = shd_levels
+ if (rgb_mapping .eq. by_level) ncolors = ncl
+ do 20 j = 1, ncolors
do 10 fktr = 1,nthick ! thickness
- index = low_index + (fktr-1) * (shd_levels+1) + j
+ thickness = REAL(fktr)
icolr = j + lo_color_ndx(zwsid) - 1
- dotsize = 6.0 + fktr
+ index = low_index + (fktr-1) * (ncolors+1) + j
+ dotsize = 6.0 + thickness
CALL FGD_GSPMR(zwsid, index, marktype, dotsize, icolr)
- thickness = fktr
CALL FGD_GSPLR(zwsid, index, 1, thickness, icolr)
10 continue
20 continue
@@ -163,16 +167,16 @@
b_val = ribbon_miss(3)/100.
a_val = ribbon_miss(4)/100.
ENDIF
- ndx = lo_color_ndx(zwsid)+shd_levels
+ ndx = lo_color_ndx(zwsid)+ncolors
CALL FGD_GSCR(zwsid,ndx,r_val,g_val,b_val,a_val)
- do 40 j = shd_levels + 1, shd_levels + 1
+ do 40 j = ncolors + 1, ncolors + 1
do 30 fktr = 1,nthick ! thickness
- index = low_index + (fktr-1) * (shd_levels+1) + j
+ thickness = REAL(fktr)
icolr = j + lo_color_ndx(zwsid) - 1
- dotsize = 6.0 + fktr
+ index = low_index + (fktr-1) * (ncolors+1) + j
+ dotsize = 6.0 + thickness
CALL FGD_GSPMR(zwsid, index, marktype, dotsize, icolr)
- thickness = fktr
CALL FGD_GSPLR(zwsid, index, 1, thickness, icolr)
30 continue
40 continue
diff --git a/pviewmod/pipedviewerpq.py b/pviewmod/pipedviewerpq.py
index 1c99e57..d30d049 100644
--- a/pviewmod/pipedviewerpq.py
+++ b/pviewmod/pipedviewerpq.py
@@ -747,12 +747,14 @@ class PipedViewerPQ(QMainWindow):
# Set the image size
try:
# Set custom paper size to just fit around the image
- # printer.setPaperSize(QSizeF(imagewidth, imageheight),
- # QPrinter.Inch)
+ if ( imagewidth > imageheight ):
+ printer.setPaperSize(QSizeF(imageheight, imagewidth), QPrinter.Inch)
+ else:
+ printer.setPaperSize(QSizeF(imagewidth, imageheight), QPrinter.Inch)
# The above has issues with Qt 4.6 at GFDL -
# still puts it on the default letter size page.
# So just always use a letter size page.
- printer.setPaperSize(QPrinter.Letter)
+ # printer.setPaperSize(QPrinter.Letter)
except AttributeError:
# setPaperSize introduced in 4.4 and made setPageSize
# obsolete; but RHEL5 Qt4 is 4.2, so set to letter size
@@ -1328,8 +1330,8 @@ class PipedViewerPQ(QMainWindow):
except KeyError:
if ( mybrush == Qt.NoBrush ):
raise ValueError( self.tr('drawPolygon called without a Brush or Pen') )
- # Use a cosmetic Pen matching the brush
- mypen = QPen(mybrush, 0.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+ # Use a "cosmetic" Pen matching the brush
+ mypen = QPen(mybrush, 1.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
self.__activepainter.setBrush(mybrush)
self.__activepainter.setPen(mypen)
self.__activepainter.drawPolygon(mypolygon)
@@ -1383,8 +1385,8 @@ class PipedViewerPQ(QMainWindow):
except KeyError:
if ( mybrush == Qt.NoBrush ):
raise ValueError( self.tr('drawPolygon called without a Brush or Pen') )
- # Use a cosmetic Pen matching the brush
- mypen = QPen(mybrush, 0.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+ # Use a "cosmetic" Pen matching the brush
+ mypen = QPen(mybrush, 1.0, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
self.__activepainter.setBrush(mybrush)
self.__activepainter.setPen(mypen)
self.__activepainter.drawRect(myrect)
diff --git a/pyfermod/__init__.py b/pyfermod/__init__.py
index 1bd7ba5..76df873 100644
--- a/pyfermod/__init__.py
+++ b/pyfermod/__init__.py
@@ -128,8 +128,7 @@ def init(arglist=None, enterferret=True):
-help: print this help message and quit
- -quiet do not display the startup header or
- warning of import failures
+ -quiet do not display the startup header
-batch: draw to <filename> (default "ferret.png") instead of
displaying to the console. The file format will be
@@ -253,7 +252,9 @@ def init(arglist=None, enterferret=True):
# Create the list of standard ferret PyEFs to create
std_pyefs = [ ]
- # The stats_* functions - depend on scipy
+ # stats_* functions that do not need scipy
+ std_pyefs.append("stats.stats_histogram")
+ # stats_* functions that depend on scipy
try:
import scipy
std_pyefs.extend((
@@ -414,11 +415,11 @@ def init(arglist=None, enterferret=True):
"stats.stats_helper",
))
except ImportError:
- if not my_quiet:
- print >>sys.stderr, " WARNING: Unable to import scipy;\n" \
- " most stats_* Ferret functions will not be added."
- # stats_* functions that do not need scipy
- std_pyefs.append("stats.stats_histogram")
+ # if not my_quiet:
+ # print >>sys.stderr, " WARNING: Unable to import scipy;\n" \
+ # " most stats_* Ferret functions will not be added."
+ pass
+
# shapefile_* functions
try:
import shapefile
@@ -432,9 +433,11 @@ def init(arglist=None, enterferret=True):
"fershp.shapefile_writexyzval",
))
except ImportError:
- if not my_quiet:
- print >>sys.stderr, " WARNING: Unable to import shapefile;\n" \
- " shapefile_* Ferret functions will not be added."
+ # if not my_quiet:
+ # print >>sys.stderr, " WARNING: Unable to import shapefile;\n" \
+ # " shapefile_* Ferret functions will not be added."
+ pass
+
# regrid functions
try:
import ESMP
@@ -443,10 +446,11 @@ def init(arglist=None, enterferret=True):
"regrid.curv3srect",
))
except ImportError:
- if not my_quiet:
- print >>sys.stderr, " WARNING: Unable to import ESMP;\n" \
- " curv2rect* Ferret functions will not be added.\n" \
- " Use curv_to_rect* functions instead"
+ # if not my_quiet:
+ # print >>sys.stderr, " WARNING: Unable to import ESMP;\n" \
+ # " curv2rect* Ferret functions will not be added.\n" \
+ # " Use curv_to_rect* functions instead"
+ pass
# start ferret without journaling
start(memsize=my_memsize, journal=False, verify=my_verify,
diff --git a/site_specific.mk b/site_specific.mk
index 9479ceb..333e22f 100644
--- a/site_specific.mk
+++ b/site_specific.mk
@@ -3,7 +3,7 @@
## Full path name of the directory containing this file (the ferret root directory).
## Do not use $(shell pwd) since this is included in Makefiles in other directories.
-DIR_PREFIX = $(HOME)/pyferret-1.0.2-source
+DIR_PREFIX = $(HOME)/pyferret-1.1.0-source
## Machine type for which to build Ferret/PyFerret
## x86_64-linux for 64-bit RHEL
@@ -11,64 +11,66 @@ DIR_PREFIX = $(HOME)/pyferret-1.0.2-source
## i386-linux for 32-bit RHEL
## i386-linux-gnu for 32-bit Ubuntu and many "free" Linux systems
## i386-apple-darwin for MacOS
-BUILDTYPE = $(HOSTTYPE)
-# BUILDTYPE = x86_64-linux
-# BUILDTYPE = x86_64-linux-gnu
-# BUILDTYPE = i386-linux
-# BUILDTYPE = i386-linux-gnu
-# BUILDTYPE = i386-apple-darwin
-# BUILDTYPE = intel-mac
+BUILDTYPE = $(HOSTTYPE)
+# BUILDTYPE = x86_64-linux
+# BUILDTYPE = x86_64-linux-gnu
+# BUILDTYPE = i386-linux
+# BUILDTYPE = i386-linux-gnu
+# BUILDTYPE = i386-apple-darwin
+# BUILDTYPE = intel-mac
## Python 2.x executable to invoke for build and install.
-PYTHON_EXE = python2.6
-# PYTHON_EXE = python2.7
+PYTHON_EXE = python2.6
+# PYTHON_EXE = python2.7
## The assignment of PYTHONINCDIR should not need any modifications
PYTHONINCDIR := $(shell $(PYTHON_EXE) -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc()")
## Installation directory for built Ferret. Using the "install"
## Makefile target circumvents the need to create the fer_*.tar.gz
## files just for creating a Ferret installation.
-INSTALL_FER_DIR = $(FER_DIR)
+INSTALL_FER_DIR = $(FER_DIR)
## Installation directory for Cairo-1.8.8 static libraries
## (contains include and lib or lib64 subdirectories) for RHEL5.
## Do not give a location on other systems. For these systems
## the system-wide shared-object Cairo libraries which are also
## used by Qt4 must be used.
-# CAIRO_DIR =
-CAIRO_DIR = /usr/local/cairo_188
+CAIRO_DIR =
+# CAIRO_DIR = /usr/local/cairo_188
## Installation directory for HDF5 static libraries
## (contains include and lib or lib64 subdirectories)
## Do not give a location if linking to netcdf shared-object libraries
-# HDF5_DIR = /usr
-# HDF5_DIR = /usr/local
-HDF5_DIR = /usr/local/hdf5_189
-# HDF5_DIR = /usr/local/hdf5-1.8.9
-# HDF5_DIR =
+# HDF5_DIR = /usr
+# HDF5_DIR = /usr/local
+HDF5_DIR = /usr/local/hdf5-1.8.9
+# HDF5_DIR = /usr/local/hdf5_189
+# HDF5_DIR = /usr/local/hdf5_189_64
+# HDF5_DIR =
## Installation directory for NetCDF static or shared object libraries
## (contains include and lib or lib64 subdirectories)
## If HDF5_DIR (above) is empty, the shared-object netcdf libraries will be used.
-# NETCDF4_DIR = /usr
-# NETCDF4_DIR = /usr/local
-NETCDF4_DIR = /usr/local/netcdf_4311
-# NETCDF4_DIR = /usr/local/netcdf-4.3.1.1
+# NETCDF4_DIR = /usr
+# NETCDF4_DIR = /usr/local
+NETCDF4_DIR = /usr/local/netcdf-4.3.1.1
+# NETCDF4_DIR = /usr/local/netcdf_4311
+# NETCDF4_DIR = /usr/local/netcdf_4311_64
## Java home directory - this may be predefined
## from your shell environment. If JAVA_HOME is defined,
## $(JAVA_HOME)/bin/javac and $(JAVA_HOME)/bin/jar is
## called to build threddsBrowser.jar; otherwise, it just
## uses javac and jar (from the path).
-# JAVA_HOME = /usr/java/default
-# JAVA_HOME = /usr/java/latest
-# JAVA_HOME = /usr/lib/jvm/default-java
-# JAVA_HOME = /usr/lib/jvm/java-oracle
-# JAVA_HOME = /usr/lib/jvm/java-sun
-JAVA_HOME = /usr/lib/jvm/java
-# JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.7.jdk/Contents/Home
+# JAVA_HOME = /usr/java/default
+# JAVA_HOME = /usr/java/latest
+# JAVA_HOME = /usr/lib/jvm/default-java
+# JAVA_HOME = /usr/lib/jvm/java-oracle
+# JAVA_HOME = /usr/lib/jvm/java-sun
+JAVA_HOME = /usr/lib/jvm/java
+# JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.7.jdk/Contents/Home
# PyFerret version number - do not change this
-PYFERRET_VERSION = 1.0.2
+PYFERRET_VERSION = 1.1.0
##
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/pyferret.git
More information about the debian-science-commits
mailing list